Como criar um HDD inicializável com o GRUB2

1

Eu tenho um sistema Gentoo Linux (não-UEFI) e estou preparando um disco rígido para outro sistema. Eu preparei partições para o novo sistema e agora quero torná-lo inicializável. Lembrei-me disso no GRUB legado, usei estes comandos:

# grub
grub> root (hd0,0)
grub> setup (hd1)

Isso fez um setor de inicialização na corrente (hd1), que apontou para (hd0). Então, quando eu inicializei o sistema, o novo disco se tornou o primeiro dispositivo (ou seja, hd0) e tudo funcionou.

A única coisa que consegui encontrar para o GRUB2 é grub2-install /dev/sdb , que instala o MBR apontando para o UUID de algum volume atual, o que obviamente falha quando eu movo o disco para uma nova máquina.

Então, como faço um HDD inicializável com o GRUB2?

    
por che 10.01.2014 / 15:44

2 respostas

1

Descobri que, como o GRUB2 usa UUIDs para ID de partição, tudo o que você precisa fazer é montar a partição de /boot de destino em algum lugar (digamos /mnt/new-boot ) e informar isso ao GRUB usando --boot-directory :

grub2-install --boot-directory=/mnt/new-boot /dev/sdb
    
por 10.01.2014 / 16:03
1

Apenas grub-install não será suficiente, você terá de update-grub ou grub-mkconfig , a menos que tenha seu próprio grub.cfg inicial. Eu tenho que correr isto de uma prisão de chroot para isto trabalhar. Aqui está um trecho adaptado de um script que eu escrevi para fazer isso (a forma alterada não foi testada):

# assumes /dev/sdb1 is the target root and
# /boot doesn't have to mounted separately
mount /dev/sdb1 /mnt

grub-install --boot-directory=/mnt/boot /dev/sdb

mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
mount --bind /dev /mnt/dev
chroot /mnt update-grub
umount /mnt/proc /mnt/sys /mnt/dev

update-grub pode ser específico do Debian, de acordo com o manual, é apenas um esboço para:

grub-mkconfig -o /boot/grub/grub.cfg
    
por 10.01.2014 / 20:38

Tags