Como adicionar uma entrada de menu GRUB2 para inicializar o Ubuntu instalado em uma unidade USB?
23
Não estou perguntando como inicializar o LiveCD a partir de um USB.
Eu tenho 2 instalações Ubuntu, uma no disco rígido interno do meu computador e outra em uma unidade USB.
Existe uma maneira de adicionar uma entrada de menu GRUB2 (ao GRUB no meu disco rígido interno) para inicializar o Ubuntu OS que eu instalei na unidade flash USB e fazer com que essa mesma entrada de menu ainda funcione depois de atualizar o kernel do Linux na instalação USB?
Cada vez que você atualiza o kernel no externo, é possível executá-lo para atualizar a sub-rotina de inicialização no grub na unidade interna.
sudo update-grub
Mas você também pode adicionar uma estrofe de inicialização ao 40_custom do grub2 que inicializa a partição, não o kernel específico. O Ubuntu instala links em / (root) para inicializar a instalação mais recente. Ajuste o exemplo abaixo, se necessário, para sua unidade e partição. A unidade de inicialização com o grub é sempre hd0, mas outras unidades estão na ordem relatada do BIOS, que pode variar.
Edite com:
gksudo gedit /etc/grub.d/40_custom
em seguida, adicione:
menuentry "Install on sdb1" {
set root=(hd1,1)
linux /vmlinuz root=/dev/sdb1 ro quiet splash
initrd /initrd.img
}
Enquanto os trabalhos acima funcionam, acho que a unidade pode mudar ao conectar uma unidade flash ou qualquer outro dispositivo USB. Então, eu estou convertendo para usar rótulos.
Existe uma maneira de usar o UUID da partição em vez de /dev/sdb1?
kiri
sudo update-grub funcionou muito bem, obrigado!
Sergiy Migdalskiy
2
como você deve descobrir o que deve estar no lugar de (hd1,1)? de onde você tira esses números para que eles se encaixem? Talvez eu precise disso para corrigir
matt
4
O primeiro número é a unidade, conforme relatado pela BIOS. Mas a unidade de inicialização é sempre hd0, portanto, a ordem da unidade pode mudar. Então o segundo número é o número da partição. Onde sda3 é hd0,3 se você inicializar a partir da unidade que é sda. Mas se você inicializar a partir do sdb, pode ser hd1,3. Às vezes você apenas tem que experimentar.
02
sudo update-grub obras com a adição de entradas janelas bem
superl2
9
Descobri como usar o UUID da unidade, útil se você tiver várias unidades conectadas no momento da inicialização. Créditos ao oldfred por sua anotação /vmlinuxe /initrd.imglinks simbólicos.
Adicione isso ao arquivo /etc/grub.d/40_custom, substituindo UUID=XXXX-YYYYpela partição UUID (obtenha UUID com o comando blkid)
menuentry "Boot from USB Drive" {
set root=UUID=XXXX-YYYY
linux /vmlinuz root=UUID=XXXX-YYYY ro quiet splash
initrd /initrd.img
}
Definitivamente, essa não é a resposta para a pergunta acima. Você deveria ter aceitado a resposta do oldfred.
Demis Palma #
1
@kiri: É uma prática recomendada copiar a resposta de outra pessoa e dar crédito a si mesmo. Sim, mesmo se você adicionou a parte UUID.
Lennart Rolland
2
Para inicializar a partir do Ubuntu Live USB, a entrada de menu /etc/grub.d/40_customdeve ter a seguinte aparência ( Substitua DRIVE_UUIDpelo uuid da sua partição ):
menuentry "Boot from LIVE USB Drive" {
search --set=root --fs-uuid DRIVE_UUID
linux ($root)/casper/vmlinuz boot=casper quiet splash --
initrd ($root)/casper/initrd.lz
}
/dev/sdb1
?Descobri como usar o UUID da unidade, útil se você tiver várias unidades conectadas no momento da inicialização. Créditos ao oldfred por sua anotação
/vmlinux
e/initrd.img
links simbólicos.Adicione isso ao arquivo
/etc/grub.d/40_custom
, substituindoUUID=XXXX-YYYY
pela partição UUID (obtenha UUID com o comandoblkid
)fonte
Para inicializar a partir do Ubuntu Live USB, a entrada de menu
/etc/grub.d/40_custom
deve ter a seguinte aparência ( SubstituaDRIVE_UUID
pelo uuid da sua partição ):Para aplicar as alterações, execute:
fonte