Я следую руководству по загрузке Grub2 ISO
https://help.ubuntu.com/community/Grub2/ISOBoot
вот мое меню для загрузки iso
menuentry "Ubuntu 14.04 Live" {
set isofile="/lilw/os/ubuntu.iso"
loopback loop (hd0,10)$isofile
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile noprompt noeject
initrd (loop)/casper/initrd.lz
}
, но мне не удалось загрузиться из iso-файла, это всегда приводило к перезагрузке моей системы. Не выдаётся сообщение, поэтому я не знаю, что произойдет.
Если я попаду в меню grub и затем использую команду на
grub >
, наберу следующую команду:
grub > loopback loop (hd0,10)/lilw/os/ubuntu.iso
grub > linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile noprompt noeject
grub > initrd (loop)/casper/initrd.lz
, а затем
grub > boot
это будет загрузиться с iso нормально.
Я не хочу загружаться таким образом. Но меню в grub не работает.
К вашему сведению: у меня в системе работает несколько версий ubuntu, начиная с 10.04 и выше. Мой iso-файл хранится в sda10, который является / home для текущего ubuntu grub.
Редактировать 1 : я извлекаю содержимое iso-файла, но все еще не могу загрузиться с Ubuntu. Но я могу загрузиться с Fedora 20, когда распаковать его в папку, странно ..
Редактировать 2 : Наконец я нахожу сайт, который помогает с новым синтаксисом команды grub2. все неудачные загрузки происходят из-за неправильного синтаксиса в grub2
ПОПРОБУЙТЕ ЭТО : решены мои проблемы
http://git.marmotte.net/git/ glim / tree / grub2
Таким образом, мой пункт меню grub будет выглядеть следующим образом:
menuentry "Ubuntu 14.04 (LTS) Live Desktop amd64" --class ubuntu {
set isoname="ubuntu-14.04-desktop-amd64.iso"
set isofile="/lilw/os/${isoname}"
loopback loop (hd0,10)$isofile
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=${isofile} quiet splash
initrd (loop)/casper/initrd.lz
}
, если я пропущу два '{}' изофайла, он не загрузится. так странно
Я выяснил, что проблемой является синтаксис измененного grub2. перейдите по этой ссылке и найдите, что Ваша запись личинки загружается, существуют все еще некоторые строки, которые необходимо будет заполнить для работы.
http://git.marmotte.net/git/glim/tree/grub2
/live
: sudo mkdir /live
sudo cp somelinux.iso /live
grub.cfg
sudo gedit /etc/grub.d/40_custom
menuentry 'ISO Ubuntu 14.04 2014 Live' --class os --class gnu-linux --class gnu --class os --group group_main {
set isofile="/live/ubuntu-14.04-desktop-amd64.iso"
insmod ext2
insmod loopback
insmod iso9660
loopback loop (hd0,msdos5)$isofile
linux (loop)/casper/vmlinuz.efi file=(loop)/cdrom/preseed/ubuntu.seed noprompt boot=casper persistent iso-scan/filename=/$isofile quiet splash --
initrd (loop)/casper/initrd.lz
}
, ЧТОБЫ СДЕЛАТЬ:
изменение в записи меню выше кодового названия для Вашего раздела, содержа /live/somelinux.iso
, в моем случае это hd0,msdos5
, потому что это находится на /dev/sda5
/
, изменяют имя файла от somelinux.iso до Вашего, в моем случае я имею: ubuntu-14.04-desktop-amd64.iso
sudo update-grub
Попробуйте это
menuentry "Ubuntu 14.04 Live" {
loopback loop (hd0,10)/lilw/os/ubuntu.iso
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=/lilw/os/ubuntu.iso noprompt noeject
initrd (loop)/casper/initrd.lz
}
Во многих версиях человечности ISO как в Ubuntu 18.10 (Космическая Каракатица), файлы initrd.lz
всего initrd
. Я предлагаю, чтобы Вы пошли и осмотрели свой файл ISO для initrd и vmlinuz файлы.
При начальной загрузке Ubuntu 18.10, я также сделал ту ошибку.