segunda-feira, 19 de novembro de 2012

Dual-boot: instalando o Windows depois do Linux

Em meu computador eu jamais teria que fazer o que o título sugere, mas recentemente me vi obrigado a fazer um dual-boot em 12 computadores que já tinham Linux instalado. Demorei tanto pra conseguir que achei que seria uma boa criar um artigo descrevendo como realizar esse procedimento sem precisar reinstalar o Linux.

Recebendo a má notícia (ou blá blá blá)
Cuido do laboratório de informática do Instituto de Ciências Exatas e da Terra (o chamado Aquário) da Universidade Federal de Mato Grosso. Alguns cursos de pós-graduação são ministrados aqui e o laboratório de informática é usado.

O primeiro curso tinha alguma relação com o IBAMA, e o laboratório só seria usado para demonstrar um programa usado para fazer análise da qualidade da água. O programa era para Windows, mas o wine deu conta do recado tranquilamente.

A coisa apertou quando veio uma equipe de professores de São Paulo que EXIGIU o Office instalado nos computadores. A ordem que veio de cima foi que eu instalasse o Windows em 12 máquinas, que nem tentasse fazer a emulação do Office via wine porque ficariam algumas coisas diferentes e o pessoal era muito enjoado.

Depois de lamentar muito, recebi a arma com a qual iria desferir o brutal golpe contra aquelas pobres e indefesas 12 máquinas: O CD do Windows 98 (podia pelo menos ser o XP né? Mas o que eu posso fazer?).

Pesquisei na internet para saber quais programas iria usar para me ajudar com a tarefa, fiz um disco de boot do Windows 98 e então olhei para a tela do KDE, suspirei e disse: "Até logo, Tux! Eu já volto" (eheheh... dramático não???).

Nesse momento uma lágrima deve estar discretamente caindo de seu olho, imaginando a terrível situação... mas fique firme, e vamos a prática...


Abrindo espaço
 
A primeira coisa que eu precisava era abrir um espaço para instalar o Windows. Para isso, vamos usar o parted. Posteriormente usaremos o qtparted para formatar a nova partição criada. Então vamos lá. Você vai precisar dos seguinte pacotes:

parted:
ftp://ftp.gnu.org/gnu/parted/parted-1.6.10.tar.gz

Dependências: hurd, glibc, ncurses, readline, e2fsprogs.

qtparted:
http://switch.dl.sourceforge.net/sourceforge/qtparted/qtparted-0.4.4.tar.bz2

Dependências: gksu, nas, freetype, glibc, gcc, fontconfig, libpng3, qt-X11-free, progsreiserfs, xfree86, e2fsprogs, xcursor, xft, xrender, zlib, jfsutils, ntfstools, xfsprogs.

Uuuuuf... quanto pacote. Mas veja vem que nem todos são realmente necessários para o funcionamento dos programas. Se você estiver instalando no Slackware, procure os pacotes no linuxpackages.net e, aqueles que você não encontrar, deixe sem instalar e veja se o programa vai funcionar.

Os nomes dos pacotes variam de distro pra distro.

Para instalar no Debian, faça assim:

# apt-get install parted qtparted
Agora é hora de "rachar o hd". Primeiramente, pule para o modo texto com um CTRL+ALT+F1 (ou F2, F3, F4...). Logue-se como root e dê o comando:

# init 1

Para redimensionar a partição, você precisa fazer assim:

# umount /
Sem isso o parted não redimensiona a partição. Agora dê o comando:

# parted /dev/hda resize 1
DETALHE: o comando acima redimensiona a partição /dev/hda1. Se você quiser redimensionar a /dev/hda2, o comando fica:

# parted /dev/hda resize 2
Se for a /dev/hdc3, o comando é:

# parted /dev/hdc resize 3
Captou? Ótimo. Quando você der o comando, o parted vai te dar um alerta. Digite 'Ignore' e pressione ENTER. Ele vai pedir para você digitar o ponto inicial da partição. Pressione ENTER. Em seguida, ele pede para você entrar com o ponto final da partição (onde ela termina, em MB). Digite o número que aparece a esquerda subtraído do tamanho que você quer destinar para a partição Windows.

Se aparecer a esquerda 30128.2754 e você quiser destinar 4 GB para o Windows, então você deve digitar 26000 (mais ou menos 30128 menos 4000). Pressione ENTER e o processo de redimensionamento será iniciado. Demora um pouquinho, 1 ou 2 minutos. Depois disso, reinicie o PC (CTRL+ALT+DEL ou "reboot").

Vamos agora aos procedimentos de instalação do Windows...

Formatando a partição e iniciando a instalação

Depois que reiniciar o sistema, execute o qtparted (como root). Selecione o HD onde você criou a partição, clique com o botão direito sobre a nova partição e clique em 'Create'. Na janela que se abre, selecione o sistema FAT32, digite um nome de volume (se quiser) e clique em OK. Depois, clique em File/Commit, confirme a operação, e a partição será formatada. Terminado o processo, feche o qtparted.

Agora, tudo o que você tem a fazer é reiniciar o PC, colocar o disco de boot do Windows no drive (no caso do win98 ou me. Se for XP, basta o CD) e fazer todo o resto que você já sabe.

Depois de tudo instalado, basta iniciar o seu sistema com um disco de inicialização
Linux. No caso da Debian, faça um disquete com a imagem rescue.bin. Para fazê-lo, siga esses procedimentos:
$ wget www.urlmenor.com/5r5
$ su
# dd if=rescue.bin of=/dev/fd0

Pronto. Agora, reinicie o sistema com o disquete no drive. Quando for apresentada a tela de boot, digite o seguinte comando:

rescue root=/dev/hda1
Troque /dev/hda1 pela partição em que seu Linux está instalado. O sistema irá iniciar normalmente. Basta editar o menu.lst e reinstalar o GRUB (no caso do GRUB) ou editar o lilo.conf e reinstalar o LILO (no caso do LILO).

No Slackware, inicialize o sistema com o CD-ROM ou disquete. No prompt, digite:

# mount /dev/hda1 /mnt
Basta fazer a mesma coisa: editar o grub.lst e reinstalar GRUB ou editar lilo.conf e reinstalar o LILO. OS procedimentos de instalação do GRUB e do LILO estão descrito na próxima seção.


Reinstalando o GRUB

 
Se antes de instalar o Windows você estava usando o GRUB como gerenciador de boot, tudo o que você tem a fazer é, depois de iniciar o seu sistema com o disco de boot (ou com o CD de instalação), digitar no prompt (logado como root):

# update-grub
O GRUB vai detectar automaticamente a partição Windows e adicioná-la ao menu de inicialização. O tempo de espera será de 5 segundos, após isso o Linux será carregado.

Agora, se você quiser personalizar o menu do GRUB, o jeito é editar o arquivo /boot/grub/menu.lst. Com ele aberto, procure as linhas que contém algo parecido com isto:

title             Debian  GNU/Linux, kernel 2.6.5-1-386
root              (hd0,0)
kernel            /boot/vmlinuz-2.6.5-1-386 root=/dev/hda1 ro
initrd            /boot/initrd.img-2.6.5-1-386
savedefault
boot

Estas são as informações da partição Linux. Não as altere. Agora, adicione estas linhas:
title                Windows
root                 (hd0,2)
makeactive
chainloader          +1

Se quiser que o Windows seja a opção padrão, insira essas opções ANTES das opções do Linux. Caso contrário, adicione depois.

Detalhe: na linha:

root (hd0,2)

hdx é o número do HD, onde:

0 = HD Primary Master
1 = HD Primary Slave
2 = HD Secondary Master
3 = HD Secondary Slave

e o segundo parâmetro é o número da partição, onde:

0 = partição 1
1 = partição 2
3 = partição 4
(...)

Para você assimilar:

(hd0,1) = /dev/hda2
(hd1,3) = /dev/hdb4
(hd2,0) = /dev/hdc1

Verifique se o recurso timeout está ativo. A linha é assim:

timeout 3

Onde "3" é o tempo de espera do GRUB, em segundos, após o qual ele carrega o sistema padrão automaticamente. Se você colocar 0 ele vai iniciar o sistema padrão automaticamente.

Depois, salve o arquivo. Ao contrário do que acontece com o LILO, o GRUB não exige reinstalação. Basta editar o menu.lst e ao reiniciar o sistema as novas configurações já estarão aplicadas. Agora, se você quiser reinstalar o GRUB por qualquer motivo, ou então se estiver trocando de gerenciador de boot, então você precisa rodar o comando

# grub-install /dev/hda
Isso vai instalar o grub na MBR. E estará pronto. No próximo boot, aparecerá uma tela com as opções para entrar em um sistema ou em outro.
 
Reinstalando o LILO
Se você usa o LILO como gerenciador de boot, você vai precisar editar o arquivo /etc/lilo.conf. Abra-o e procure as linhas que contém algo parecido com isto:

image=/boot/vmlinuz-2.4.22-xfs
label=Linux
root=/dev/hda1
read-only
initrd=/boot/initrd.gz

Então, adicione ao final delas o seguinte:
other=/dev/hda3
label=Windows

Lembrando que você deve trocar hda3 pela partição do Windows. Se ele estiver no hda2, coloque /dev/hda2 (isso é óbvio, mas é de praxe colocar esse lembrete em artigos e tutos, né? :D)

Depois, verifique se essas linhas estão presentes (e descomentadas) no início do arquivo:
prompt
default=Linux
timeout=30

A linha 'prompt' deve estar descomentada (sem o #) para o sistema dar um tempo para você escolher qual sistema escolher.

Já em 'default=' você coloca o 'label' do sistema padrão. Se você quiser que o Windows seja o sistema padrão, coloque 'default=Windows'. Não se esqueça que você deve colocar aí um nome exatamente igual ao que você colocou no parâmetro 'label' do Windows, caso contrário haverá erro na instalação do LILO.

Por último, o parâmetro 'timeout' onde você vai colocar o tempo de espera do LILO antes de iniciar o sistema padrão automaticamente. Esse tempo é em décimos de segundo, assim, se você quiser que o LILO espere cinco segundos antes de dar o boot, você deve colocar 'timeout=50'.

Certinho? Agora é só salvar o arquivo e rodar o comando:

# lilo
Vai aparecer algo parecido com isso:

* Added Linux
Added Windows

Caso contrário, provavelmente terá ocorrido um erro. Revise o seu lilo.conf ou peça ajuda às cartas ou aos universitários :D.
 
Considerações finais
 
Não sei se é comum haver a necessidade de instalar o Windows em um sistema Linux pré-instalado. Isso pode ser útil em casos de PC's com Linux pré-instalados em que seja necessário colocar o SO da M$ (ou em casos de professores da Unicamp exigirem Windows + Excel para ministrarem aulas de pós-graduação de Modelagem Matemática em uma universidade cujo laboratório é todo Linux. :D)

Não gosto nem de lembrar o quanto foi trabalhoso eu fazer a primeira instalação. Devo ter detonado 2 Linux até que conseguir fazer o serviço segundo esses procedimentos. Foi realmente muito penoso, fora o nervoso que a gente passa com a mente fechada desse povo que não quer nem saber que o Calc substituiria perfeitamente o Excel para a finalidade desejada... maaaas, o mundo não gira segundo nossa vontade, fazer o quê? :D

Essa é mais uma singela colaboração minha, que espero que venha a ter utilidade.

Lembrando a você que estiver lendo isso agora: se tiver qualquer coisa errada nesse artigo, por favor indique-o no espaço para comentários, e se forem colocar esse artigo em outros sites, podem corrigir tais erros, beleza? Não vamos deixar documentos 'bugados' circularem por aí :D.

Um abraço a todos!

Por Davidson Paulo.




Nenhum comentário:

Postar um comentário