Jak dodać pozycję menu GRUB2 do uruchamiania zainstalowanego systemu Ubuntu na dysku USB?

23

Nie pytam, jak uruchomić LiveCD z USB.

Mam 2 instalacje Ubuntu, jedną na wewnętrznym dysku twardym komputera, a drugą na dysku USB.

Czy istnieje sposób dodania pozycji menu GRUB2 (do GRUB-a na moim wewnętrznym dysku twardym) w celu uruchomienia systemu operacyjnego Ubuntu, który zainstalowałem na dysku flash USB i aby ta sama pozycja menu nadal działała po aktualizacji jądra Linux na instalacji USB?

kiri
źródło

Odpowiedzi:

33

Za każdym razem, gdy aktualizujesz jądro na zewnętrznym dysku, możesz uruchomić to, aby zaktualizować sekcję rozruchową w grub na dysku wewnętrznym.

sudo update-grub

Ale możesz także dodać sekcję rozruchową do 40_custom grub2, który uruchamia partycję, a nie konkretne jądro. Ubuntu instaluje łącza w katalogu / (root), aby uruchomić najnowszą instalację. W razie potrzeby dostosuj poniższy przykład do dysku i partycji. Dysk rozruchowy z grub zawsze ma HD0, ale inne dyski są w kolejności zgłaszanej przez BIOS, co może się różnić.

Edytuj za pomocą:

gksudo gedit /etc/grub.d/40_custom

następnie dodaj:

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

Podczas gdy powyższe działa, uważam, że dysk może się zmienić po podłączeniu dysku flash lub innego urządzenia USB. Więc przechodzę na etykiety.

menuentry "Cosmic 18.10 on sdb12 test" {
    search --set=root --label cosmic_b --hint hd2,gpt12
    configfile /boot/grub/grub.cfg 
}
oldfred
źródło
1
Czy istnieje sposób na użycie UUID partycji zamiast /dev/sdb1?
kiri
Aktualizacja sudo-grub działała świetnie, dzięki!
Sergiy Migdalskiy
2
Jak powinieneś obliczyć, co powinno być zamiast (HD1,1)? skąd bierzesz te liczby, aby pasowały? Mogę potrzebować tego do rozwiązania innego problemu: askubuntu.com/questions/573502/...
mat.
4
Pierwszą liczbą jest dysk zgłoszony przez BIOS. Ale dysk rozruchowy jest zawsze hd0, więc kolejność dysków może się zmienić. Drugi numer to numer partycji. Gdzie sda3 to hd0,3, jeśli uruchamiasz system z dysku, który jest sda. Ale jeśli uruchomisz system z sdb, może to być hd1,3. Czasami musisz po prostu eksperymentować.
oldfred
sudo update-grub działa również z dodawaniem wpisów do systemu Windows
superl2
9

Dowiedziałem się, jak korzystać z UUID dysku, przydatny, jeśli w czasie uruchamiania podłączono wiele dysków. Podziękowania dla oldfreda za jego notatkę /vmlinuxi /initrd.imgdowiązania symboliczne.

Dodaj to do pliku /etc/grub.d/40_custom, zastępując UUID=XXXX-YYYYUUID partycji (pobierz UUID za pomocą polecenia blkid)

menuentry "Boot from USB Drive" {
    set root=UUID=XXXX-YYYY
    linux /vmlinuz root=UUID=XXXX-YYYY ro quiet splash
    initrd /initrd.img
}
kiri
źródło
8
To zdecydowanie nie jest odpowiedź na powyższe pytanie. Powinieneś był przyjąć odpowiedź oldfreda.
Demis Palma ツ
1
@ kiri: Uznaje się za złą praktykę kopiowanie odpowiedzi innych osób i uznanie się za to. Tak, nawet jeśli dodałeś część UUID.
Lennart Rolland
2

Aby uruchomić system z Ubuntu Live USB, menu /etc/grub.d/40_custompowinno wyglądać tak ( Zamień DRIVE_UUIDna UUID twojej partycji ):

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
}

Aby zastosować zmiany, uruchom:

sudo update-grub
wiktor.2200
źródło