Monday, August 23, 2010

Ubuntu no VirtualBox sob Windows


Se você quer rodar o Ubuntu numa Virtual Machine (aqui, VirtualBox) instalada no Windows, e compilar o kernel, esta é a fórmula perfeita.
Isso é bom pra você se acostumar com um SO novo, fazer suas experiências malucas de compilação de kernel - sem medo de danificar logicamente, pois é só um SO virtual (que redundante, não?).
Infelizmente estou sem espaço no meu disco a ponto de criar uma partição, então essa foi a melhor saída que encontrei, além disso, me possibilita rodar os dois SOs ao mesmo tempo e ficar me divertindo, até que eu migre para o Linux.

Passos para compilar o kernel linux-2.6.35.3.tar.bz2 dentro do Ubuntu (ubuntu-10.04.1-desktop-i386.iso) com VirtualBox 3.2.8 rodando no Windows como host (VM).
  1. Baixe o VirtualBox e instale (http://www.virtualbox.org/wiki/Downloads);
  2. Baixe a imagem do Ubuntu (ISO) (http://www.ubuntu.com/desktop/get-ubuntu/download);
  3. Baixe o kernel do Linux e salve em uma pasta qualquer (http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.35.3.tar.bz2);
  4. Instale o VirtualBox;
  5. No VirtualBox, crie um novo sistema operacional, escolhendo tamanho de partição, entre outras opções. Neste exemplo usou-se o Ubuntu como target e o Windows como host. Isto é, o Windows emulará o Ubuntu, o qual compilará o kernel;
  6. Carregue a ISO do Ubuntu na tela que se abrirá no VirtualBox, após este ter sido instalado corretamente;
  7. O Ubuntu será automaticamente carregado. Instale-o na partição criada pelo VirtualBox - não se preocupe com a formatação, já que a partição criada pelo VirtualBox é virtual e não afetará seu sistema;
  8. Terminada a instalação e iniciado o Ubuntu, no VirtualBox, compartilhe a pasta na qual o kernel do Linux se encontra (Dispositivos > Pastas Compartilhadas);
  9. Clique em Dispositivos > Instalar Adicionais para Convidado. Isto criará uma pasta no Ubuntu, que estará rodando (após a instalação ter sido concluída);
  10. Como root, execute o arquivo .run correspondente ao tipo de arquitetura da máquina (e.g. sudo ./VBoxLinuxAdditions-x86.run);
  11. Ainda como root, crie uma pasta onde você deseja que a pasta compartilhada apareça (e.g. sudo mkdir /media/windows), já que estou rodando o VirtualBox no Windows (host) e desejo compartilhá-la com o Ubuntu;
  12. Faça o mount passando o nome do link que foi feito pelo VirtualBox (e.g. sudo mount -t vboxsf WindowsDesktop /media/windows). No meu caso, no passo 7 chamei de WindowsDesktop o caminho da pasta que desejo compartilhar;
  13. Após isso, você poderá ver o conteúdo da pasta do Windows, pelo Ubuntu. Isso porque o kernel está nesta pasta. Portanto, copie o kernel (linux-2.6.35.3.tar.bz) desta pasta para o local desejado no Ubuntu;
  14. Descompacte o kernel em /usr/src (e.g. tar xjvf linux-2.6.35.3.tar.bz2 -C/usr/src);
  15. Copie o arquivo config (e.g. config-2.6.32-24-generic) da pasta /boot para a pasta onde o conteúdo do pacote foi extraído (cp /boot/config-2.6.32-24-generic /usr/src/linux-2.6.35.3/);
  16. Baixe e instale a biblioteca ncurses com o comando: sudo apt-get install libncurses5-dev - ela é necessária para o próximo comando;
  17. Digite 'make menuconfig' para abrir o menu de escolha do que será agregado ao kernel a ser compilado;
  18. Configure o kernel do seu gosto;
  19. Digite 'make' para gerar o novo kernel;
  20. Digite 'make modules' para compilar os módulos do kernel.