web-dev-qa-db-fra.com

Comment ajouter une entrée de menu GRUB2 pour démarrer Ubuntu installé sur un lecteur USB?

Je ne demande pas comment démarrer le LiveCD à partir d'une clé USB.

J'ai 2 installations Ubuntu, une sur le disque dur interne de mon ordinateur et une autre sur un lecteur USB.

Est-il possible d’ajouter une entrée de menu GRUB2 (au _ ​​GRUB de mon disque dur interne) pour démarrer le système d’exploitation Ubuntu que j’ai installé sur la clé USB et la même entrée de menu fonctionne toujours après la mise à niveau du noyau Linux sur l'installation USB?

22
kiri

J'ai découvert comment utiliser l'UUID du lecteur, utile si vous avez plusieurs lecteurs connectés au démarrage. Crédits à oldfred pour sa note à propos des liens symboliques /vmlinux et /initrd.img.

Ajoutez ceci au fichier /etc/grub.d/40_custom, en remplaçant UUID=XXXX-YYYY par l'UUID de la partition (obtenez l'UUID avec la commande blkid).

menuentry "Boot from USB Drive" {
    set root=UUID=XXXX-YYYY
    linux /vmlinuz root=UUID=XXXX-YYYY ro quiet splash
    initrd /initrd.img
}
9
kiri

Chaque fois que vous mettez à niveau le noyau sur external, vous pouvez l'exécuter pour mettre à jour la strophe de démarrage dans grub sur le lecteur interne.

Sudo update-grub

Mais vous pouvez également ajouter une strophe de démarrage à 40_custom de grub2 qui démarre la partition, pas le noyau spécifique. Ubuntu installe les liens dans/(racine) pour démarrer l’installation la plus récente. Ajustez l’exemple ci-dessous si nécessaire à votre lecteur et votre partition Le lecteur de démarrage avec grub est toujours hd0, mais les autres lecteurs sont dans l'ordre indiqué par le BIOS, ce qui peut varier.

Editer avec:

gksudo gedit /etc/grub.d/40_custom

puis ajouter:

menuentry "Install on sdb1" {
    set root=(hd1,1)
    linux /vmlinuz root=/dev/sdb1 ro quiet splash
    initrd /initrd.img
}

Tandis que ci-dessus fonctionne, je trouve que le lecteur peut changer lorsque vous branchez un lecteur flash ou tout autre périphérique USB. Je me convertis donc pour utiliser des étiquettes.

menuentry "Cosmic 18.10 on sdb12 test" {
    search --set=root --label cosmic_b --hint hd2,gpt12
    configfile /boot/grub/grub.cfg 
}
32
oldfred

Pour démarrer à partir d'Ubuntu Live USB, l'entrée de menu dans /etc/grub.d/40_custom devrait ressembler à cela (remplacez DRIVE_UUID par l'uuid de votre partition):

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
}

Pour appliquer les modifications, exécutez:

Sudo update-grub
0
wiktor.2200