Bagaimana cara menambahkan entri menu GRUB2 untuk mem-boot Ubuntu yang diinstal pada drive USB?


23

Saya tidak bertanya bagaimana cara mem-boot LiveCD dari USB.

Saya memiliki 2 instalasi Ubuntu, satu di hard drive internal komputer saya dan satu lagi di USB drive.

Apakah ada cara untuk menambahkan entri menu GRUB2 (ke GRUB pada hard drive internal saya) untuk mem-boot OS Ubuntu yang telah saya instal ke USB flash drive dan entri menu yang sama ini masih berfungsi setelah saya meningkatkan kernel Linux pada instalasi USB?

Jawaban:


33

Setiap kali Anda memutakhirkan kernel pada eksternal, Anda dapat menjalankan ini untuk memperbarui stanza booting di grub pada drive internal.

sudo update-grub

Tetapi Anda juga dapat menambahkan stanza boot ke 40_custom grub2 yang melakukan boot partisi, bukan kernel tertentu. Ubuntu memasang tautan di / (root) untuk mem-boot instalasi terbaru. Sesuaikan contoh di bawah ini jika perlu untuk drive & partisi Anda. Boot drive dengan grub selalu hd0, tetapi kemudian drive lain berada dalam urutan BIOS yang dilaporkan yang mungkin bervariasi.

Edit dengan:

gksudo gedit /etc/grub.d/40_custom

lalu, tambahkan:

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

Saat bekerja di atas, saya menemukan drive mungkin berubah ketika mencolokkan flash drive atau perangkat USB lainnya. Jadi saya mengonversi untuk menggunakan label.

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

1
Apakah ada cara untuk menggunakan UUID partisi daripada /dev/sdb1?
kiri

sudo update-grub bekerja dengan baik, terima kasih!
Sergiy Migdalskiy

2
bagaimana seharusnya Anda mengetahui apa yang seharusnya ada di (hd1,1)? dari mana Anda mengambil angka-angka ini sehingga mereka cocok? Saya mungkin memerlukan ini untuk meluruskan masalah yang berbeda: askubuntu.com/questions/573502/…
matt

4
Angka pertama adalah drive seperti yang dilaporkan oleh BIOS. Tetapi boot drive selalu hd0, sehingga pesanan drive dapat berubah. Kemudian angka kedua adalah nomor partisi. Di mana sda3 adalah hd0,3 jika Anda boot dari drive yang sda. Tetapi jika Anda boot dari sdb, maka itu mungkin hd1,3. Terkadang Anda hanya perlu bereksperimen.
oldfred

sudo update-grub bekerja dengan menambahkan entri windows juga
superl2

9

Saya menemukan cara menggunakan UUID drive, berguna jika Anda memiliki beberapa drive yang terhubung saat boot. Kredit ke oldfred untuk catatan tentang /vmlinuxdan /initrd.imgtautannya.

Tambahkan ini ke file /etc/grub.d/40_custom, ganti UUID=XXXX-YYYYdengan partisi UUID (dapatkan UUID dengan perintah blkid)

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

8
Ini jelas bukan jawaban untuk pertanyaan di atas. Anda seharusnya menerima balasan oldfred.
Demis Palma ツ

1
@ kiri: Ini dianggap praktik buruk untuk menyalin jawaban orang lain dan memberi penghargaan pada diri Anda untuk itu. Ya, bahkan jika Anda menambahkan bagian UUID.
Lennart Rolland

2

Untuk mem-boot dari entri menu Ubuntu Live USB, /etc/grub.d/40_customakan terlihat seperti itu ( Ganti DRIVE_UUIDdengan partisi Anda ):

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
}

Untuk menerapkan perubahan jalankan:

sudo update-grub
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.