Dual boot com Grub num HD e Windows em outro HD sem mexer no MBR do Windows

Publicado por Marcelo em 31/07/2008

[ Hits: 18.686 ]

 


Dual boot com Grub num HD e Windows em outro HD sem mexer no MBR do Windows



Pode não ser novidade, mas como me deu trabalho (sou só um aprendiz em Linux) resolvi postar essa dica.

Todos sabem como o Windows é enervante. Então minha filosofia em relação a ele é: NÃO MEXA EM NADA!

Com o WinXP instalado no /dev/sda, eu queria instalar o Grub no /dev/sdb2 sem alterar a MBR do HD do Windows. Por isso configurei a BIOS para boot no segundo HD (/dev/sdb) e o menu.lst do grub de acordo, como vi em vários tutos:

...
title		Microsoft Windows XP Home Edition
rootnoverify (hd1,0)
makeactive
chainloader +1

title		Linux
root		(hd0,1)
...

No meu caso os HDs estão trocados por causa da BIOS programada para dar boot pelo segundo, o grub "vê" o segundo HD (/dev/sdb) como hd0.

O Linux inicializava direitinho, mas, adivinhe... o Windows não bootava, claro!!! Tinha que ser ele... (obs.: não adiantava alterar o arquivo device.map)

Depois de procurar encontrei o motivo do problema, o Windows só inicializa se ele for o primeiro dispositivo, o hd0!!! (sem comentários...). Ou seja, eu estava condenado a gravar o grub no MBR do Windows... (sem chance!)

A salvação foi o comando "map", que permite inverter a ordem entre os HDs! Assim é possível transformar o hd1 em hd0 e vice-versa! Problema resolvido! O menu.lst ficou assim:

...
title		Microsoft Windows XP Home Edition
map (hd0) (hd1)
map (hd1) (hd0)
rootnoverify (hd1,0)
makeactive
chainloader +1

title		Linux
root		(hd0,1)
...

Espero que seja útil.

Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

Seu SuperKaramba embaralha as posições?

Embelezando o seu lilo

Como ligar os LEDs do teclado automaticamente

Tweaks no Elementary OS

Desfazendo atualizações de software no Red Hat/Fedora/CentOS

  

Comentários
[1] Comentário enviado por albfneto em 31/07/2008 - 12:41h

achei legal. Simples e bem bolado. fácil, eficiente e rápido! Muito útil!

[2] Comentário enviado por douradoinfo em 25/09/2008 - 21:13h

Boa noite!
Estou vivendo este dilema agora mesmo aqui. Veja a situação: eu já tinha o Windows instalado em um HD e instalei o Linux em outro. Cada operação foi feita separadamente, isto é, a máquina só estava com um HD de cada vez. Consegui por o Grub para iniciar, o Linux vai em frente sem problema, mas quando escolho o Windows, aparece a seguinte> Error 11 - Unrecognized device string. Conhece alguma coisa a respeito ou dá pra você postar o conteúdo do seu menu.lst pra eu fazer umas tentativas aqui? Vou ficar muito agradecido.
Esqueci um detalhe: o HD 1 está com o Linux, o HD 2 está com o Windows. Veja a parte referente ao Windows.
title Microsoft Windows XP Professional
map (hd0) (hd1)
map (hd1) (hd0)
rootnoverify (hd1,0)
makeactive
chainloader +1

No momento, estava tentando fazer modificações baseadas na sua experiência. Não sei no que vai dar.

[3] Comentário enviado por pmfo em 25/09/2008 - 23:01h

Olá!

No seu caso acho que o map é desnecessário porque o boot já ocorre no hd0, então é só redirecionar para o windows (hd1) usando o esquema padrão:

title Microsoft Windows XP Home Edition
rootnoverify (hd1,0)
makeactive
chainloader +1

Só um detalhe o grub deve estar no mesmo hd do linux, o hd do windows deve ficar totalmente intocado! Simplesmente esqueça que o windows existe durante a instalação do seu linux.

Eu uso o Kurumin NG,por isso o menu.lst é gerado automaticamente na instalação. A única coisa que precisei fazer (depois de várias tentativas) foi adicionar os comandos map, veja o meu menu.lst completo abaixo. Note que, no meu caso, o boot real é pelo hd1 e por isso o windows travava. Note também que depois do uso dos comandos map volta a valer o esquema padrão, boot no hd0 com redirecionamento para o hd1 (windows).

Boa sorte!

# menu.lst - See: grub(8), info grub, update-grub(8)
# grub-install(8), grub-floppy(8),
# grub-md5-crypt, /usr/share/doc/grub
# and /usr/share/doc/grub-doc/.

## default num
# Set the default entry to the entry number NUM. Numbering starts from 0, and
# the entry number 0 is the default if the command is not used.
#
# You can specify 'saved' instead of a number. In this case, the default entry
# is the entry saved with the command 'savedefault'.
# WARNING: If you are using dmraid do not use 'savedefault' or your
# array will desync and will not let you boot your system.
default 0

## timeout sec
# Set a timeout, in SEC seconds, before automatically booting the default entry
# (normally the first entry defined).
timeout 10

## hiddenmenu
# Hides the menu by default (press ESC to see the menu)
#hiddenmenu

# Pretty colours
color cyan/blue white/blue

## password ['--md5'] passwd
# If used in the first section of a menu file, disable all interactive editing
# control (menu entry editor and command-line) and entries protected by the
# command 'lock'
# e.g. password topsecret
# password --md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/
# password topsecret

#
# examples
#
# title Windows 95/98/NT/2000
# root (hd0,0)
# makeactive
# chainloader +1
#
# title Linux
# root (hd0,1)
# kernel /vmlinuz root=/dev/hda2 ro
#

#
# Put static boot stanzas before and/or after AUTOMAGIC KERNEL LIST

### BEGIN AUTOMAGIC KERNELS LIST
## lines between the AUTOMAGIC KERNELS LIST markers will be modified
## by the debian update-grub script except for the default options below

## DO NOT UNCOMMENT THEM, Just edit them to your needs

## ## Start Default Options ##
## default kernel options
## default kernel options for automagic boot options
## If you want special options for specific kernels use kopt_x_y_z
## where x.y.z is kernel version. Minor versions can be omitted.
## e.g. kopt=root=/dev/hda1 ro
## kopt_2_6_8=root=/dev/hdc1 ro
## kopt_2_6_8_2_686=root=/dev/hdc2 ro
# kopt=root=UUID=efdb9ea0-2d98-497a-93d4-4ae6e8b55e37 ro

## Setup crashdump menu entries
## e.g. crashdump=1
# crashdump=0

## default grub root device
## e.g. groot=(hd0,0)
# groot=(hd1,1)

## should update-grub create alternative automagic boot options
## e.g. alternative=true
## alternative=false
# alternative=true

## should update-grub lock alternative automagic boot options
## e.g. lockalternative=true
## lockalternative=false
# lockalternative=false

## additional options to use with the default boot option, but not with the
## alternatives
## e.g. defoptions=vga=791 resume=/dev/hda5
# defoptions=quiet splash locale=pt_BR

## should update-grub lock old automagic boot options
## e.g. lockold=false
## lockold=true
# lockold=false

## Xen hypervisor options to use with the default Xen boot option
# xenhopt=

## Xen Linux kernel options to use with the default Xen boot option
# xenkopt=console=tty0

## altoption boot targets option
## multiple altoptions lines are allowed
## e.g. altoptions=(extra menu suffix) extra boot options
## altoptions=(recovery) single
# altoptions=(recovery mode) single

## controls how many kernels should be put into the menu.lst
## only counts the first occurence of a kernel, not the
## alternative kernel options
## e.g. howmany=all
## howmany=7
# howmany=all

## should update-grub create memtest86 boot option
## e.g. memtest86=true
## memtest86=false
# memtest86=true

## should update-grub adjust the value of the default booted system
## can be true or false
# updatedefaultentry=false

## should update-grub add savedefault to the default options
## can be true or false
# savedefault=false

## ## End Default Options ##

splashimage=(hd0,1)/boot/grub/splash.xpm.gz

# This entry automatically added by the Debian installer for a non-linux OS
# on /dev/sda1
title Microsoft Windows XP Home Edition
map (hd0) (hd1)
map (hd1) (hd0)
rootnoverify (hd1,0)
makeactive
chainloader +1

title Kurumin NG
root (hd0,1)
kernel /boot/vmlinuz-2.6.24-18-generic root=UUID=efdb9ea0-2d98-497a-93d4-4ae6e8b55e37 ro quiet splash locale=pt_BR
initrd /boot/initrd.img-2.6.24-18-generic
quiet

title Kurumin NG (recovery mode)
root (hd0,1)
kernel /boot/vmlinuz-2.6.24-18-generic root=UUID=efdb9ea0-2d98-497a-93d4-4ae6e8b55e37 ro single
initrd /boot/initrd.img-2.6.24-18-generic

title Memtest86+
root (hd0,1)
kernel /boot/memtest86+.bin
quiet

### END DEBIAN AUTOMAGIC KERNELS LIST



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts