Arquivo da categoria: Linux

Anatomia do Ext4

Cada release de kernel do Linux traz algumas surpresas e o release 2.6.28 de dezembro não é exceção. Ele
é o primeiro de um sistema de arquivos ext4 estável. Esta nova geração de sistema de arquivos estendidos
oferece escalabilidade e confiabilidade aprimoradas, além de novas e importantes funcionalidades. O
ext4 é tão escalável que o sistema de arquivos máximo consumiria um milhão de discos de 1 terabyte
(TB).
Uma Breve História do Sistema de Arquivos Estendidos
O primeiro sistema de arquivos suportado pelo Linux foi o
O Comutador do Sistema de Arquivo
Minix. Ele apresentava alguns problemas de desempenho
Virtual
significativos e, assim, foi criado outro sistema de arquivos,
especificamente para o Linux, denominado sistema de
O VFS é uma camada que abstrai os
arquivos estendidos. O primeiro sistema de arquivos
detalhes dos sistemas de arquivos
estendidos (ext) foi projetado por Remy Card e introduzido no
subjacentes a partir dos usuários do
Linux em abril de 1992. O sistema de arquivos ext foi o
sistema de arquivos da camada superior.
primeiro a utilizar o comutador do Sistema de Arquivo Virtual
Assim, o VFS permite que o Linux
(VFS) implementado no kernel 0.96c e nos sistemas de
ofereça suporte a vários sistemas de
arquivos suportados de até 2 gigabytes (GB).
arquivos—simultaneamente—em um
O segundo sistema de arquivos estendidos (ext2), também         determinado sistema Linux.
implementado por Remy Card, foi introduzido em janeiro de
1993. Ele trazia ideias avançadas de outros sistemas de
arquivos da época (como o Berkeley Fast File System [FFS]).
Os sistemas de arquivos estendidos suportados Ext2 chegavam a 2TB, embora os kernels 2.6 estendidos
apresentassem sistemas de arquivos ext2 com tamanho máximo de 32TB.
O terceiro sistema de arquivos estendidos (ext3) significou um avanço importante nos sistemas de
arquivos do Linux, embora seu desempenho ficasse aquém de alguns concorrentes. O sistema de arquivos
ext3 introduziu o conceito de registro de mudanças para aprimorar a confiabilidade do sistema de
arquivos quando o sistema sofria uma parada brusca. E apesar do melhor desempenho dos sistemas de
arquivos concorrentes (como o XFS da Silicon Graphics e o IBM® Journaled File System [JFS]), o ext3
suportava atualizações de sistemas que já utilizavam o ext2. O Ext3 foi apresentado em novembro de
2001 e implementado por Stephen Tweedie.
Temos agora o quarto sistema de arquivos estendidos (ext4). O Ext4 apresenta inúmeros novos
aprimoramentos quanto a desempenho, escalabilidade e confiabilidade. Mais especificamente, o ext4
suporta sistemas de arquivos de 1 exabyte. Ele foi implementado por uma equipe de desenvolvedores,
liderados por Theodore Tso (responsável pela manutenção do ext3) e introduzido no kernel 2.6.19.
Encontra-se agora estável no kernel 2.6.28 (desde dezembro de 2008).
O ext4 pega emprestado vários conceitos úteis de muitos sistemas de arquivos concorrentes. Por exemplo,
a abordagem de extensão até o gerenciamento de blocos foi implementada no JFS. Outro recurso relativo
ao gerenciamento de blocos (alocação com atraso) foi implementado tanto no XFS quanto no ZFS da Sun
Microsystems.
Funcionalidade
O ext4 inclui uma grande quantidade de funcionalidades novas, mas o mais importante é sua
compatibilidade com versões futuras e antigas como ext3 e os aprimoramentos nos registros de data e
hora que significam o futuro dos sistemas Linux de alto desempenho.
Compatibilidade com Versões Futuras e Antigas
Como atualmente o ext3 é um dos sistemas de arquivos mais populares em uso pelo Linux, migrar para o
ext4 é simples e fácil. Por isso, o ext4 foi elaborado para ser compatível com versões futuras e antigas (até
certo ponto). O ext4 apresenta compatibilidade com versões futuras pelo fato de você poder montar um
sistema de arquivos ext3 como um sistema de arquivos ext4. Para aproveitar o ext4 ao máximo, é
necessária uma migração do sistema de arquivos, a fim de converter e usufruir o novo formato ext4.
Também é possível montar um sistema de arquivos ext4 como ext3 (compatibilidade anterior), mas
somente se o sistema de arquivos ext4 não tiver extensões.
Figura 1. A Compatibilidade com Versões Futuras e Antigas do Ext4
Aprimorando a Resolução e o Intervalo do Registro de Data e Hora
Por incrível que pareça, os registros de data e hora na área do sistema de arquivos estendidos anteriores ao
ext4 eram baseados em segundos. Embora isso seja satisfatório em muitas configurações, à medida que os
processadores evoluem, com mais velocidade e integração maior (processadores com vários núcleos), e o
Linux encontra-se em outros domínios de aplicativos, como computadores de alto desempenho, na
simplicidade do registro de data e hora baseado em segundos falha. Essencialmente, o ext4 tem registros
de data e hora que resistem ao tempo, quando os expandimos para LSB em nanossegundos. O intervalo de
tempo também precisou ser estendido com dois bits adicionais, de modo a aumentar a vida útil em mais
500 anos.
Escalabilidade
Um dos aspectos mais importantes da evolução dos sistemas de arquivos é sua capacidade de escalação,
levando-se em conta as crescentes exigências sobre eles. O ext4 realiza isso de diversas formas,
superando os limites do ext3 e revolucionando as áreas de gerenciamento de meta-dados dos sistemas de
arquivos.
Estendendo os Limites do Sistema de Arquivos
Uma das primeiras diferenças visíveis do ext4 é o suporte aumentado para volumes do sistema de
arquivos, tamanhos de arquivos e limites de subdiretórios. O ext4 oferece suporte a sistemas de arquivos
de até 1 exabyte (1000 petabytes). Embora pareça muito para os padrões atuais, o consumo de
armazenamento continua a crescer; assim, o ext4 foi definitivamente desenvolvido pensando no futuro.
Os arquivos no ext4 podem chegar a 16TB (supondo-se blocos de 4KB), oito vezes o limite do ext3.
Por fim, o limite do subdiretório foi expandido com o ext4, dos diretórios de 32KB até os virtualmente
ilimitados. Pode parecer exagero, mas é preciso considerar a hierarquia do sistema de arquivos que
consome um exabyte de armazenamento. A indexação do diretório também foi otimizada para uma
estrutura B-tree em hash; portanto, embora os limites sejam bem maiores, o ext4 suporta tempos de
procura muito rápidos.
Extensões
Uma das desvantagens principais do ext3 era seu método de alocação. Os arquivos eram alocados por
meio de um mapa de bits de espaço livre, que não era muito rápido nem dimensionável. O formato do
ext3 é bastante eficiente com arquivos pequenos, mas muito ineficiente com arquivos grandes. O ext4
substitui o mecanismo do ext3 com extensões para aprimorar a alocação e oferecer suporte a uma
estrutura mais eficiente de armazenamento. Uma extensão é simplesmente uma forma de representar uma
seqüência adjacente de blocos. Com isso, os meta-dados diminuem, porque, em vez de manter as
informações sobre onde está armazenado um bloco, a extensão mantém as informações sobre onde está
armazenada uma lista grande de blocos adjacentes .
As extensões do ext4 adotam uma abordagem em camadas para representar arquivos pequenos com
eficiência, bem como árvores de extensão para representar arquivos grandes de forma eficiente. Por
exemplo, um único inode do ext4 tem espaço suficiente para fazer referência a quatro extensões (em que
cada uma representa um conjunto de blocos adjacentes). Para arquivos grandes (inclusive fragmentados),
um inode pode fazer referência a um nó de índice e cada um deles pode fazer referência a um nó folha
(fazendo referência a várias extensões). Essa árvore de extensão de profundidade constante oferece um
rico esquema de representação para arquivos grandes e potencialmente esparsos. Os nós também
apresentam mecanismos de auto-verificação para evitar, no futuro, que os sistema de arquivos sejam
corrompidos.
Desempenho
Um dos atributos mais importantes usados para mensurar novos sistemas de arquivos é seu desempenho
fundamental. É também uma das áreas de maior dificuldade; quando um sistema de arquivos chega a
dimensões muito extensas, espera-se que seja bastante confiável, e o desempenho pode ficar
comprometido. No entanto, mesmo que o ext4 trate de questões de escalabilidade e confiabilidade, ele
fornece inúmeros aprimoramentos de desempenho.
Pré-alocação de Nível de Arquivo
Alguns aplicativos, como bancos de dados ou fluxos de conteúdos, contam com arquivos armazenados
em blocos adjacentes (para explorar a otimização da leitura de blocos sequenciais das unidades, bem
como maximizar as taxas de leitura de comandos para blocos). Embora as extensões possam fornecer
segmentos de blocos adjacentes, outro método de força bruta é o de pré-alocação de seções muito grandes
de blocos adjacentes no tamanho desejado (como foi implementado no passado, com o XFS). O ext4
implementa isso por meio de uma nova chamada de sistema, que efetua a pré-alocação e inicializa um
arquivo de um determinado tamanho. Em seguida, é possível gravar os dados necessários e fornecer
desempenho de leitura limitado sobre os dados.
Atrasando a Alocação dos Blocos
Outra otimização baseada no tamanho dos arquivos é a alocação com atraso. Essa otimização no
desempenho atrasa a alocação dos blocos físicos no disco até que eles sejam sincronizados nele. O
segredo dessa otimização é que, atrasando a alocação dos blocos físicos até que estes precisem ser
gravados no disco, mais blocos são apresentados para alocar e gravar nos blocos adjacentes. Isso se
assemelha à pré-alocação persistente, com a diferença de que o sistema de arquivos efetua a tarefa
automaticamente. No entanto, se o tamanho do arquivo já for conhecido, a pré-alocação persistente será o
melhor caminho.
Alocação de Vários Blocos
Uma otimização final—novamente, relacionada ao bloco adjacente—é o alocador de blocos do ext4. No
ext3, o alocador de blocos trabalhava na alocação de um único bloco por vez. Quando eram necessários
vários blocos, era possível encontrar dados adjacentes em blocos não adjacentes. O ext4 estabelece isso
com um alocador de blocos que aloca vários blocos por vez, como ocorre em um disco. Como as
otimizações anteriores, esta reúne os dados relacionados no disco para melhorar a otimização de leitura
sequencial.
O outro aspecto da alocação de vários blocos é a quantidade de processamento exigida para a alocação
dos blocos. Lembre-se de que o ext3 alocava um bloco de cada vez. Nas unidades mais simples, essa
operação exigia uma chamada para a alocação de cada um dos blocos. Alocar vários blocos de uma só vez
exige muito menos chamadas para o alocador de blocos, resultando em uma alocação mais rápida e em
uma redução do processamento.
Confiabilidade
Conforme os sistemas de arquivos efetuam a escalação para possíveis tamanhos maiores com o ext4, sem
dúvida haverá preocupações quanto à confiabilidade. O ext4 inclui vários mecanismos de autoproteção e
auto-reparo que tratam disso.
Verificando a Soma do Diário do Sistema de Arquivos
Assim como o ext3, o ext4 é um sistema de arquivos com registro de mudanças. Registro de Mudanças é
o processo de registro de mudanças no sistema de arquivos por meio de um diário (um log circular
dedicado em uma região adjacente do disco). As alterações reais no armazenamento físico são, em
seguida, efetuadas partir do log, que pode implementá-las com mais confiabilidade e garantir a
consistência, mesmo se houver travamento do sistema ou faltar energia durante a operação. O resultado é
que reduzem-se as chances de que o sistema de arquivos seja corrompido.
Entretanto, mesmo com o registro de mudanças, a corrupção ainda será possível se entradas errôneas
forem inseridas no diário. Para enfrentar esse problema, o ext4 implementa a verificação de soma do
diário para certificar-se de que as alterações válidas cheguem ao sistema de arquivos subjacente. É
possível encontrar referências adicionais ao registro de mudanças —um importante aspecto do ext4 .
O ext4 oferece suporte a vários modos de registro de mudanças, dependendo das necessidades do usuário.
Por exemplo, o ext4 oferece suporte a um modo no qual somente metadados são submetidos ao registro
de mudanças (modo Nova Gravação), um modo no qual os metadados são submetidos ao registro de
mudanças, mas os dados são gravados como os metadados são gravados a partir do diário (modo
Ordenado) e um modo no qual tanto os metadados quanto os dados são submetidos ao registro de
mudanças (modo Diário —o modo mais confiável). Observe que o modo Diário, apesar de ser o melhor
para assegurar um sistema de arquivos consistente, também é o mais lento, pois todos os dados passam
pelo diário.
Desfragmentação On-line
Embora o ext4 incorpore recursos que reduzam a fragmentação no sistema de arquivos (extensões para a
alocação de blocos sequenciais), é impossível evitar uma determinada fragmentação quando um sistema
de arquivos existe por muito tempo. Por esse motivo, existe uma ferramenta on-line de desfragmentação
para desfragmentar o sistema de arquivos e os arquivos individuais para aprimorar o desempenho. O
desfragmentador on-line é uma ferramenta simples, que copia os arquivos em um inode novo do ext4 que
faça referência a extensões adjacentes.
Outro aspecto da desfragmentação on-line é o curto tempo exigido para a verificação de um sistema de
arquivos (fsck). O ext4 marca os grupos de blocos não utilizados na tabela do inode, permitindo que o
processo fsck ignore-os totalmente, para aumentar a velocidade do processo de verificação. Quando o
sistema operacional decide validar o sistema de arquivos por conta de corrupção interna (algo inevitável,
pois os sistemas de arquivos aumentam em tamanho e distribuição), o design geral do ext4 se reflete na
confiabilidade geral aprimorada.
O Que Vem a Seguir?
É óbvio que o sistema de arquivos estendidos apresenta uma história longa e valiosa dentro da Linux—
desde a primeira introdução ao ext, em 1992, ao ext4 em 2008. Ele foi o primeiro sistema de arquivos
elaborado especificamente para Linux e mostrou-se um dos sistemas de arquivos disponíveis mais
eficientes, estáveis e eficazes. O ext4 aprimorou-se com os avanços na pesquisa em sistema de arquivos,
incorporando ideias de outros sistemas de arquivos inovadores (como XFS, JFS, Reiser e as técnicas do
sistema de arquivos tolerante a falhas IRON). Embora seja muito cedo para saber o que virá com o ext5,
ele sem dúvida estará na vanguarda dos sistemas Linux para as empresas.

Comando apt-get = atualiza/instala pacotes no sistema

– Atualizar o banco de dados local do apt-get. Deve-se executar este comando frequentemente (eu executo diariamente) para que o apt-get busque sempre a lista de pacotes DEB mais recente
apt-get update

– Atualiza todos os pacotes que estão instalados no sistema
apt-get upgrade

– Atualiza apenas o pacote especificado
apt-get upgrade nome_do_pacote

– Checa a integridade dos pacotes do sistema, ou seja, verifica se não há dependências quebradas
apt-get check

– Instala um novo pacote solucionando automaticamente os pacotes dos quais o aplicativo a ser instalado depende. Caso o pacote algum-pacote já esteja instalado, o apt-get tentará atualizá-lo
apt-get install pacote

– Para reinstalar um pacote
apt-get install –reinstall nome_do_pacote

– Saber status do cache, como versões distintas, dependências
apt-cache stats

– Para procurar um pacote
apt-cache search nome_do_pacote

– Procurar pacotes apenas pelo nome
apt-cache search –names-only nomedopacote

– Faz uma busca pelo pacote e exibe alguns dados relacionados com o pacote
apt-cache show nome-do-pacote

– Exibe mais detalhes (dependências e versão) sobre um determinado pacote
apt-cache showpkg nome_do_pacote
EX:
apt-cache showpkg kmail

– Exibe apenas os pacotes que depende
apt-cache showpkg nome_do_pacote

EX:
apt-cache depends kmail

– Instala os pacotes básicos e tenta atualizar todo o sistema
apt-get dist-upgrade

– Remove o pacote e todas as suas dependencias criadas
apt-get remove nome-do-pacote

– Remove o pacote e todas as suas dependencias criadas incluindo arquivos de configuração
apt-get remove –purge nome-do-pacote

– Visualiza os pacotes que voce poderá atualizar
apt-get -s upgrade

– Verifica as dependências automaticamente
apt-get -f install

– Instala o kernel no sistema
apt-get -f install kernel

Com a observação do D.J.:

Citação:

E esses:
Citação:
– Instala o kernel no sistema
apt-get -f install kernel

– Tambem instala o kernel no sistema
apt-get -f install kernel#1:2.2.18-6cl

Não instalam o kernel, precisa especificar o nome do kernel, que dependendo da distro os nomes são linux-image-“versão sem aspas”, kernel-image-“versão sem aspas”(as vezes usado) e os headers do kernel, linux-headers-“versão sem aspas”.


– Apenas efetua o download do pacote para o diretório
‘/var/cache/apt/archives’ cabendo ao usuário instalá-lo posteriormente
apt-get install -d nome_do_pacote

– Tambem instala o kernel no sistema
apt-get -f install kernel#1:2.2.18-6cl

– Para reinstalar um pacote
apt-get install –reinstall nome_do_pacote

– Para apenas fazer o download de um pacote (A opção “-d” ou “–download-only” no apt-get faz apenas o dowload sem instalar nada)
apt-get –download-only install nome_do_pacote

– Qual pacote devo instalar pra ter o comando import?
apt-file search bin/import
imagemagick: usr/bin/import

– Adiciona o suporte ao apt para instalar pacotes via CD-ROM
apt-cdrom add

– Para remover arquivos de pacotes baixados pelo apt-get ou aptitude (que serão armazenados no diretório /var/cache/apt/archives/) digite:
apt-get clean
apt-get autoclean

– Para fazer o download do código-fonte de um pacote (OBS: será feito o download para o diretório atual)
apt-get source nome_do_pacote

note que serão copiados/baixados 3 arquivos .orig.tar.gz .dsc .diff.gz – Para descobrir o nome de um pacote (que não está instalado no sistema) que um arquivo pertence
apt-file search nome_do_arquivo

OBS1: Antes disso, por favor, execute o comando apt-file update para atualizar a base de dados dos arquivos que os pacotes contém.

OBS2: Este comando é similar ao ‘dpkg -S‘ mas exibirá os pacotes não instalados que contêm o arquivo. Pode ser usado também para procurar por um pacote que contém arquivos necessários que estejam faltando quando se compila alguns programas

– Para exibir o conteúdo de um pacote
apt-file list nome_do_pacote

Comando dpkg = ferramenta completa para gerenciamento de pacotes utilizando o Sistema de Pacotes Debian (Debian Package System)

– Para instalar um pacote no formato ‘deb’
dpkg -i nome_do_pacote.deb
ou

dpkg –install nome_do_pacote.deb

– Para remover um pacote no formato ‘deb’ mantendo os arquivos de configuração relacionados ao pacote
dpkg -r nome_do_pacote
ou

dpkg –remove nome_do_pacote

– Para remover um pacote no formato ‘deb’ removendo também todos os arquivos de configuração relacionados ao pacote
dpkg -P nome_do_pacote
ou

dpkg –purge nome_do_pacote

– Para exibir detalhes sobre um determinado pacote
dpkg -p nome_do_pacote
ou

dpkg –print-avail nome_do_pacote

– Para exibir todos os pacotes instalados no computador
dpkg -l
ou

dpkg –list

– Para exibir todos os pacotes que contenham em seu nome a palavra ‘mozilla’
dpkg -l | grep mozilla
ou

dpkg –list | grep mozilla

– Para exibir todos os pacotes que comecem com a palavra ‘postgre’
dpkg -l postgre*
ou

dpkg –list postgre*

– Para exibir os arquivos que um determinado pacote possui
dpkg -L nome_do_pacote
ou

dpkg -listfiles nome_do_pacote

– Para exibir o nome do pacote que contem os arquivos todos os ‘kmail_*.sh’
dpkg -S kmail_*.sh
ou

dpkg –search kmail_*.sh

– Para exibir uma descrição mais detalhada do pacote ‘postgresql’
dpkg -s postgresql

– Para exibir o conteúdo de um pacote DEB
dpkg -c nome_do_pacote.deb
dpkg -S /usr/include/locale.h libc6-dev: /usr/include/locale.h

– Para exibir todos os pacotes instalados no sistema
dpkg –get-selections > lista_de_pacotes.txt

– Para obter uma lista de pacotes instalados no sistema:
dpkg –get-selections > lista_de_pacotes.txt

Aprenda a instalar e usar o Windows dentro do Linux

O Linux é um sistema que tem avançado cada vez mais, e o Ubuntu sempre trazendo facilidades para os usuários, mas infelizmente ainda não chegamos num ponto onde podemos nos dar ao luxo de não ter o Windows instalado na máquina.

O mais comum é você ver os dois instalados normalmente no mesmo computador, mas com isso você precisa reiniciar o computador para trocar de um para o outro. Um meio mais prático de usar os dois é instalar o Windows dentro do Linux, assim pode até usar os dois ao mesmo tempo. Nós conseguiremos isto através do uso de uma máquina virtual chamada VirtualBox.

Instalando Virtual Box

Instalar a Virtual Box não é difícil. O primeiro passo é instalar o Automatix, um programa que facilita a instalação de muitos tipos de programas úteis no Ubuntu.

Abra o Automatix, selecione a categoria Virtualization e marque para instalar a Virtual Box. Clique em Start e aguarde o fim da instalação.

Criando um HD Virtual

Agora que temos a Virtual Box instalada no nosso sistema, nós vamos criar duas coisas que, juntas, vão fingir que são um computador para enganar o Windows. O objetivo do programa é fazer o windows achar que está sendo instalado em um computador vazio, e não dentro do Linux. Então, a primeira coisa a fazer, é criar um HD Virtual, que é um HD falso dentro da Virtual Box.

Abra a Virtual Box. No Ubuntu, o programa pode ser encontrado em Aplicações > Ferramentas de Sistema > Innotek Virtual Box. Veja abaixo a tela inicial do programa, sem nenhuma máquina virtual criada.

No menu Arquivo, selecione Gerenciador de Discos Virtuais. Na tela seguinte, clique no ícone “Novo” para criar um novo hd virtual. Clique em “Próximo“.

Agora será apresentada duas opções de hd virtual: tamanho fixo ou tamanho expansível. A diferença entre os dois tipos pode ser lida na própria tela do programa, mas recomendo selecionar a opção “Imagem Dinamicamente Expansível” a menos que você tenha algum motivo especifico para ficar com a outra opção.

Chegamos, então, à tela da imagem acima. Aqui, vamos dar um nome para o HD Virtual e vamos definir seu tamanho máximo. Para gente poder lembrar depois, coloque o nome do HD Virtual como a versão do windows que você vai instalar. No meu caso, Windows XP.

O tamanho máximo do HD depende do que você vai instalar nele, e o espaço que você tem disponível no seu HD verdadeiro. Isso porque, apesar de estarmos criando um “HD falso”, tudo que for colocado dentro dele estará ocupando espaço do seu HD verdadeiro. No meu caso, tenho um HD de 80gb e só vou usar o windows para usar o photoshop, então fiz meu HD virtual com apenas 4GB de espaço. Não coloque um valor abaixo de 3GB, porque a própria instalação do Windows ocupa quase 2GB.

Clique em Próximo, e então em Finalizar. Nosso hd virtual agora está pronto.

Criando a Máquina Virtual

Agora que temos nosso hd virtual criado, vamos criar nossa máquina virtual. Na tela inicial do Virtual Box, clique no ícone Novo. Começamos agora a criar a máquina virtual. Clique em Próximo.

Defina um nome para a máquina virtual. Novamente, é uma boa dar a ela o nome da versão do windows. No tipo de Sistema, selecione a versão do windows que pretende instalar. No meu caso, selecionei a opção Windows XP.

Agora, precisamos definir quanto de memória RAM estará disponível para nossa máquina virtual. Este momento é importante, porque quando iniciamos nossa máquina virtual, ela vai ocupar esta quantidade de RAM no nosso computador. Então, se colocar uma quantidade muito pequena, o windows não vai ter memória suficiente. Se colocar uma quantidade muito grande, sobre pouca RAM pro linux. Como uma recomendação, sugiro colocar metade do seu total de memória RAM. Se você tiver menos de 512Mb, sugiro não tentar usar uma máquina virtual.

Na tela seguinte, temos de informar à máquina virtual em que HD virtual ela será instalada. Selecione o hd que criamos anteriormente, e clique em Próximo.

Verifique as informações e clique em Finalizar. Sua máquina virtual está criada.

Configurações Finais e Instalação

Agora que temos nossa máquina virtual corretamente instalada, só precisamos dar a ela acesso ao drive de CD/DVD para instalar o Windows.

Novamente na tela inicial do Virtual Box, clique em Configurações. No menu da esquerda da nova tela que abriu, selecione CD/DVD ROM.

Marque a caixa “Montar Drive de CD/DVD“. Com isto, a máquina virtual terá acesso ao seu drive. Se quiser, você pode informar uma imagem de disco e ele fará com que a máquina virtual pense que esta imagem de disco é um CD ou DVD inserido no drive. Você pode baixar imagens de disco (formato ISO) na internet. Mas isso fica pra outro tutorial.

Inicie a máquina virtual, insira o CD/DVD do windows e siga todos os passos para sua instalação. Este tutorial não irá te ensinar a instalar o windows.

Com o fim da instalação, você está agora livre pra usar o windows como bem entender. Quando não quiser mais usar, é só fazer o processo de desligar o computador dentro do windows, e ele fechará a máquina virtual.