Как добавить пункт меню GRUB2 для загрузки установленной Ubuntu на USB-накопитель?
23
Я не спрашиваю, как загрузить LiveCD с USB.
У меня есть 2 установки Ubuntu, одна на внутренний жесткий диск моего компьютера, а другая на USB-накопитель.
Есть ли способ добавить пункт меню GRUB2 (в GRUB на моем внутреннем жестком диске), чтобы загрузить ОС Ubuntu, которую я установил на флэш-накопитель USB, и этот же пункт меню все еще работает после того, как я обновил ядро Linux по установке USB?
Каждый раз, когда вы обновляете ядро на внешнем устройстве, вы можете запускать его, чтобы обновить загрузочный раздел в 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-устройства. Поэтому я перехожу на использование ярлыков.
Есть ли способ использовать UUID раздела, а не /dev/sdb1?
Кири
sudo update-grub работал отлично, спасибо!
Сергей Мигдальский
2
как вы должны понять, что должно быть вместо (hd1,1)? откуда вы берете эти цифры, чтобы они подходили? Я , возможно , это нужно для установки прямо другая проблема: askubuntu.com/questions/573502/...
матовый
4
Первый номер - это диск, сообщаемый BIOS. Но загрузочный диск всегда hd0, поэтому порядок дисков может измениться. Тогда второе число - номер раздела. Где sda3 - hd0,3, если вы загружаетесь с диска sda. Но если вы загрузитесь с SDB, то это может быть HD1,3. Иногда вам просто нужно экспериментировать.
oldfred
sudo update-grub также работает с добавлением записей Windows
superl2
9
Я узнал, как использовать 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
}
Это определенно не ответ на вопрос выше. Вы должны были принять ответ Олдфреда.
Демис Пальма ツ
1
@kiri: считается плохой практикой копировать чужой ответ и отдавать ему должное. Да, даже если вы добавили часть UUID.
Леннарт Роллан
2
Для загрузки из 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
}
/dev/sdb1
?Я узнал, как использовать UUID диска, полезно, если у вас есть несколько дисков, подключенных во время загрузки. Кредиты Олдфреду за его записку о
/vmlinux
и/initrd.img
символические ссылки.Добавьте это в файл
/etc/grub.d/40_custom
, заменивUUID=XXXX-YYYY
его UUID раздела (получите UUID с помощью командыblkid
)источник
Для загрузки из Ubuntu Live USB пункт меню
/etc/grub.d/40_custom
должен выглядеть следующим образом ( заменитеDRIVE_UUID
на uuid вашего раздела ):Чтобы применить изменения, выполните:
источник