luisoliveira
(usa Mandriva)
Enviado em 23/06/2009 - 09:01h
instalando o grub no setor de boot do pendrive, de forma que ele se torne bootável. Para isso, usaremos o prompt do grub. Para acessá-lo use (a partir da instalação do Kurumin 7 no HD) o comando "grub" (como root). Você verá um prompt como este:
GNU GRUB version 0.97 (640K lower / 3072K upper memory)
[ Minimal BASH-like line editing is supported. For the first word, TAB
lists possible command completions. Anywhere else TAB lists the possible
completions of a device/filename. ]
grub>
O grub utiliza uma nomenclatura peculiar para nomear os drives. É aqui que o arquivo "teste" vazio nos vai ser útil. Podemos utilizá-lo para descobrir como o grub identificou o pendrive. Para isso, use o comando "find /boot/grub/teste" no prompt do grub:
grub> find /boot/grub/teste
(hd1,1)
A resposta indica que (na nomenclatura usada pelo grub) o arquivo foi encontrado na partição 1 do hd1. O grub nomeia os dispositivos e partições a partir do zero, de forma que isso equivale à segunda partição, do segundo HD, ou seja, a segunda partição do pendrive :).
Falta agora só instalar o grub na partição indicada. Preste atenção nesta etapa, pois instalar no dispositivo errado pode ser desastroso :). Use os comandos "root (hd1,1)", "setup (hd1)", "setup (hd1,1)" e "quit", substituindo os endereços, caso diferentes no seu caso. Note que instalei o grub duas vezes, uma no raiz do pendrive e outra na partição. Isto não é realmente necessário (instalar no raiz é suficiente), faço apenas por desencargo:
grub> root (hd1,1)
Filesystem type is ext2fs, partition type 0x83
grub> setup (hd1)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/e2fs_stage1_5" exists... yes
Running "embed /boot/grub/e2fs_stage1_5 (hd1)"... 15 sectors are embedded.
Succeeded
Running "install /boot/grub/stage1 (hd1) (hd1)1+15 p (hd1,1)/boot/grub/stage2 /boot/grub/menu.lst"... succeeded
Done.
grub> setup (hd1,1)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/e2fs_stage1_5" exists... yes
Running "embed /boot/grub/e2fs_stage1_5 (hd1,1)"... failed (this is not fatal)
Running "embed /boot/grub/e2fs_stage1_5 (hd1,1)"... failed (this is not fatal)
Running "install /boot/grub/stage1 (hd1,1) /boot/grub/stage2 p /boot/grub/menu.lst "... succeeded
Done.
grub> quit
A esta altura, você terá uma estrutura similar a esta no pendrive:
/boot/grub
/boot/isolinux
/KNOPPIX
A pasta "/boot/isolinux" contém os arquivos de boot originais do sistema (como o Kernel e o arquivo initrd.gz), enquanto a pasta "/KNOPPIX" contém a imagem compactada do sistema. O próximo passo é justamente adaptar a cópia do grub que criamos para utilizar estes arquivos.
Acesse a parta "/boot/grub" (no pendrive) e delete o arquivo "device.map", ele contém um cache dos dispositivos disponíveis na máquina, que deletamos para que o grub detecte tudo a cada boot, já que o pendrive será utilizado em várias máquinas diferentes.
Abra agora o arquivo "menu.lst". Apague todo o seu conteúdo e substitua pelas linhas abaixo:
default 0
timeout 9
title Kurumin Linux
root (hd0,1)
kernel /boot/isolinux/linux26 ramdisk_size=100000 init=/etc/init vga=791 quiet lang=us
initrd /boot/isolinux/minirt.gz
title BOOT pelo HD
root (hd1)
chainloader +1
Independentemente de como o grub tenha detectado o pendrive na etapa anterior, quando você dá boot através dele, o grub sempre o vê como "(hd0)". O sistema está instalado na segunda partição, o que nos leva ao endereço "(hd0,1)", que usamos na opção principal, responsável por carregar o sistema instalado no pendrive. Se por acaso você estiver usando uma única partição no pendrive, substitua o "(hd0,1)" por "(hd0,0)"
Note que as opções "/boot/isolinux/linux26" e "/boot/isolinux/minirt.gz" indicam a localização da imagem de Kernel e o arquivo initrd que serão utilizados. O nome dos arquivos pode mudar de distribuição para distribuição, por isso é sempre importante confirmar.