Wie füge ich einen GRUB2-Menüeintrag zum Booten von Ubuntu auf einem USB-Laufwerk hinzu?


23

Ich frage nicht, wie man die LiveCD von einem USB bootet.

Ich habe 2 Ubuntu-Installationen, eine auf der internen Festplatte meines Computers und eine auf einem USB-Laufwerk.

Gibt es eine Möglichkeit , einen GRUB2 Menüeintrag (zum GRäBT auf meiner interne Festplatte) hinzuzufügen , um das Ubuntu - Betriebssystem zu booten , das ich das USB - Flash - Laufwerk installiert habe und haben diesen gleichen Menüeintrag noch Arbeit , nachdem ich den Linux - Kernel aktualisiert habe auf der USB-Installation?

Antworten:


33

Jedes Mal, wenn Sie den Kernel auf extern aktualisieren, können Sie dies ausführen, um die Startzeilengruppe in grub auf dem internen Laufwerk zu aktualisieren.

sudo update-grub

Sie können aber auch eine Boot-Zeilengruppe zu grub2s 40_custom hinzufügen, die die Partition und nicht den spezifischen Kernel bootet. Ubuntu installiert Links in / (root), um die letzte Installation zu starten. Passen Sie das folgende Beispiel gegebenenfalls an Ihr Laufwerk und Ihre Partition an. Boot-Laufwerk mit Grub ist immer hd0, aber dann werden andere Laufwerke in der vom BIOS angegebenen Reihenfolge gemeldet, die variieren kann.

Bearbeiten mit:

gksudo gedit /etc/grub.d/40_custom

dann füge hinzu:

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

Während das oben beschriebene Verfahren funktioniert, kann sich das Laufwerk möglicherweise ändern, wenn ein Flash-Laufwerk oder ein anderes USB-Gerät angeschlossen wird. Also konvertiere ich zu Etiketten.

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

1
Gibt es eine Möglichkeit, die UUID der Partition zu verwenden, anstatt /dev/sdb1?
kiri

sudo update-grub hat super funktioniert, danke!
Sergiy Migdalskiy

2
wie solltest du herausfinden, was anstelle von (hd1,1) sein sollte? Woher nimmst du diese Nummern, damit sie passen? Ich kann diese benötigen gerade ein anderes Problem für die Einstellung: askubuntu.com/questions/573502/...
matt

4
Die erste Nummer ist das vom BIOS gemeldete Laufwerk. Das Startlaufwerk ist jedoch immer hd0, sodass sich die Laufwerksreihenfolge ändern kann. Dann ist die zweite Nummer die Partitionsnummer. Wobei sda3 hd0,3 ist, wenn Sie von dem Laufwerk booten, das sda ist. Aber wenn Sie von SDB booten, kann es HD1,3 sein. Manchmal muss man einfach experimentieren.
oldfred

sudo update-grub funktioniert auch mit dem Hinzufügen von Windows-Einträgen
superl2

9

Ich habe herausgefunden, wie die UUID des Laufwerks verwendet wird. Dies ist nützlich, wenn beim Start mehrere Laufwerke angeschlossen sind. Dank an oldfred für seinen Hinweis /vmlinuxund seine /initrd.imgSymlinks.

Fügen Sie dies der Datei hinzu /etc/grub.d/40_customund ersetzen Sie es UUID=XXXX-YYYYdurch die Partitions-UUID (holen Sie sich die UUID mit dem Befehl blkid)

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

8
Dies ist definitiv nicht die Antwort auf die Frage oben. Sie hätten die Antwort von oldfred akzeptieren sollen.
Demis Palma ツ

1
@kiri: Es wird als schlechte Praxis angesehen, die Antwort eines anderen zu kopieren und sich selbst zu würdigen. Ja, auch wenn Sie den UUID-Teil hinzugefügt haben.
Lennart Rolland

2

Das Booten von Ubuntu Live über das USB-Menü /etc/grub.d/40_customsollte folgendermaßen aussehen (durch die UUID DRIVE_UUIDIhrer Partition ersetzen ):

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
}

So wenden Sie Änderungen an:

sudo update-grub
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.