Как добавить пункт меню GRUB2 для загрузки установленной Ubuntu на USB-накопитель?
Я не спрашиваю, как загрузить LiveCD с USB.
У меня есть 2 установки Ubuntu, одна на внутренний жесткий диск моего компьютера, а другая на USB-накопитель.
Есть ли способ добавить пункт меню GRUB2 (в GRUB на моем внутреннем жестком диске), чтобы загрузить ОС Ubuntu, которую я установил на флэш-накопитель USB, и этот же пункт меню все еще работает после того, как я обновил ядро Linux по установке USB?
2 ответа
Я узнал, как использовать UUID диска, полезно, если у вас есть несколько дисков, подключенных во время загрузки. Кредиты Олдфреду за его заметку о /vmlinux
а также /initrd.img
символьные ссылки.
Добавить это в файл /etc/grub.d/40_custom
, заменяя UUID=XXXX-YYYY
с UUID раздела (получить UUID с помощью команды blkid
)
menuentry "Boot from USB Drive" {
set root=UUID=XXXX-YYYY
linux /vmlinuz root=UUID=XXXX-YYYY ro quiet splash
initrd /initrd.img
}
Каждый раз, когда вы обновляете ядро на внешнем устройстве, вы можете запускать его, чтобы обновить загрузочный раздел в grub на внутреннем диске.
sudo update-grub
Но вы также можете добавить загрузочную строфу к 40_custom grub2, которая загружает раздел, а не конкретное ядро. Ubuntu устанавливает ссылки в / (root) для загрузки самой последней установки. При необходимости приведите приведенный ниже пример для вашего диска и раздела. Загрузочный диск с grub всегда имеет значение hd0, но в этом случае другие диски находятся в указанном BIOS порядке, который может отличаться.
Изменить с помощью:
gksudo gedit /etc/grub.d/40_custom
затем добавьте:
menuentry "Install on sdb1" {
set root=(hd1,1)
linux /vmlinuz root=/dev/sdb1 ro quiet splash
initrd /initrd.img
}
Хотя вышеуказанное работает, я считаю, что диск может измениться при подключении флэш-накопителя или любого другого USB-устройства. Поэтому я перехожу на использование ярлыков.
menuentry "Cosmic 18.10 on sdb12 test" {
search --set=root --label cosmic_b --hint hd2,gpt12
configfile /boot/grub/grub.cfg
}
Для загрузки из меню Ubuntu Live USB в меню /etc/grub.d/40_custom
должен выглядеть так (Заменить DRIVE_UUID
с UUID вашего раздела):
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
}
Чтобы применить изменения, выполните:
sudo update-grub