Iniciando o Linux pelo boot.ini do Windows XP

Esses dias fiz algo inusitado para recuperar o dual boot de uma máquina. Uma forma fácil é rodar um live cd (ou pen drive) e executar o programa grub. Porém, estava sem CD e com preguiça de gravar. Estava com a imagem do Ubuntu 9.04 e gerei um pen drive inicializável (Sistema > Administração > Criador de disco USB inicializável).

Lá fui eu com meu pen drive… e nada. O notebook não iniciava por pen drive de jeito nenhum. Não desisti. Ao invés de pen drive usei um cartão SD e… nada. Não “funfou”. A solução: gravar um CD? Não. Vamos fazer algo mais criativo.

Bom, o Windows XP também tem sua listinha de boot (o tal do boot.ini), que tal colocar o Linux que já estava na máquina para iniciar por aí?

Já imaginaram que não é tão simples quanto editar a lista do grub, certo? Não é mesmo. Mas ainda é simples.

O primeiro passo é criar uma imagenzinha do setor de boot de uma máquina com linux e grub, no caso fiz no meu notebook. Abra a linha de comando e digite:

sudo dd if=/dev/sda1 of=bootsect.lnx bs=512 count=1

Lembrando que você talvez deva trocar o /dev/sda1 dependendo de seu HD.

Esse comando cria um arquivo bootsect.lnx, que deve ser copiado para o c:\ no Windows. Depois de copiar vamos mexer no boot.ini do Windows.

Existem duas formas: a primeira é abrir diretamente o arquivo c:\boot.ini, que, a princípio, estará oculto e somente leitura. A mais simples é clicar com o botão direito em “Meu Computador”, “Propriedades” e na aba “Avançado”. Não lembro o nome agora, mas tem um botão para editar as configurações de boot, que vai abrir o boot.ini no bloco de notas.

Após abrir o arquivo, simplesmente coloque no final a seguinte linha.

c:\bootsect.lnx="Linux"

Salve, feche, reinicie.

Agora seu Windows também te pergunta onde quer iniciar. O engraçado é que após escolher “Linux” na lista de boot do Windows, ele abre a lista de boot do grub para você escolher de novo.

É isso.

9 opiniões sobre “Iniciando o Linux pelo boot.ini do Windows XP”

  1. Isso era feito no tempo do Windows NT, pois o LiLo era incompatível com o NT.

    Já o comando “sudo dd if=/dev/sda1 of=bootsect.lnx size=512 count=1” faz uma cópia dos primeiros 512 bytes da partição ou HD (conforme dispositivo “sdX ou sdXN”), pois é justamente neste primeiros 512 bytes que é instalado o gerenciador de boot(LiLo, Grub… outro).

  2. eu tive uma mensagem de erro rodando esse comando acima: “dd: operando desconhecido `size’=`512′”

    o q poderia ter acontecido?

  3. Olá André,
    lendo seu post, lembrei de uma dúvida minha:
    como posso fazer algo semelhante ao wubi, porém com outra distribuição ?
    Obrigado !

  4. Olá André. Parabéns pelo artigo. Já utilizava esse processo há tempo e agora instalei o Win7 para conhecer e não estou conseguindo executar essa tarefa nele. Sei que o processo é diferente e que usa o aplicativo “bcdedit” para esse fim, mas não entendi (decifrar) como fazê-lo. Você saberia me dizer como? Obrigado.

  5. Ja tive 9 sistemas operacionais no meu computador. 5 Linux e 3 Windows incluindo o windows 98.
    Windows 98 SE, Windows 2000 Prof, Windows XP Prof, Red Hat, Slackware, Kurumin, Mandrake, Suse e Debian.
    Obs.: Isso foi antes da United Linux que resultou no MANDRIVA.

    Apesar do que muitos pensam, existe uma precedencia de instalação para os sistemas operacionais da microsfot que deve ser do mais antigo para o mais novo. Também, ao contrário do que muitos pensam, algumas distribuições GNU/Linux destroem o conteúdo microsoft da MBR, para esse caso, a solução é entrar com o cd de boot (a gravação tem que ser autobootavel) do seu sitema operacioal (XP, 2003, vista, seven, etc) entrar no modo de reparo pelo prompt de comando com a senha de administrador em mãos e digitar fixboot , sem seguida, fixmbr ou vice-versa.

    Outro problema que encontrei foi uma distribuição GNU/Linux destruir, não sei como, o boot de outra, que eu havia colocado no windows, utilizando o comando dd. Para solucionar problemas desse tipo, tenha um caderno no qual você possa anotar todas as partições que você criou para as suas instaçãoes e para cada sistema operacional. Caso o problema ocorra, insira o CD de boot do GNU/Linux que parou de carregar durante o boot e faça:

    1 – Crie o diretório onde a partição da instalação será montada: mkdir /mnt/hd
    2 – Monte a partição principal: mount /dev/particao /mnt/hd
    3 – Entre na partição montada: cd /mnt/hd
    Obs.: mount /dev/hd? ou /dev/sd? – dependendo da tecnologia de hardware utilizada
    4 – Crie o diretório o disquete será montado: mkdir /mnt/floppy
    5 – Monte o disquete utilizando partição reconhecida pelo windows: mount /dev/fd0 /mnt/floppy -t vfat
    6 – Você estará como root porque utilizou cd de boot: dd if=/dev/sda1 of=distro.lnx bs=512 count=1
    7 – Mova a distro.lnx para o disquete: mv distro.lnx /mnt/floppy
    8 – Desmonte o disque, não se esqueça que em algumas distribuições GNU/Linux o arquivo só é copiado para o disquete depois que você dismonta o dispositivo: umont /dev/fd0 /mnt/floppy -t vfat – Nesse momento você verá o led do seu driver de disque acender.
    9 – Volte ao Windows que está controlando o boot da máquina e copie o aruiqvo de a:\distro.lnx para c:\ sobrescrevendo a anterior caso existe
    10 – Verifique, se o arquivo ( c:\boot.ini ) do windows que controla o boot da sua máquina, possui a configuração do seu arquivo de boot GNU/Linux ( c:\distro.lnx=”Linux” )

    No mais, as dicas do nosso amigo estão perfeitas.

  6. Como fazer a mesma tarefa usando Windows 7 já que o mesmo não possui boot.ini ?

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *