Загрузка Ubuntu ISO-файла из меню Grub

Я следую руководству по загрузке 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
}

, если я пропущу два '{}' изофайла, он не загрузится. так странно

1
задан 24 July 2014 в 15:55

4 ответа

Я выяснил, что проблемой является синтаксис измененного grub2. перейдите по этой ссылке и найдите, что Ваша запись личинки загружается, существуют все еще некоторые строки, которые необходимо будет заполнить для работы.

http://git.marmotte.net/git/glim/tree/grub2
-1
ответ дан 24 July 2014 в 15:55
  • Место Ваш файл ISO к /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


}

, ЧТОБЫ СДЕЛАТЬ:

  1. изменение в записи меню выше кодового названия для Вашего раздела, содержа /live/somelinux.iso, в моем случае это hd0,msdos5, потому что это находится на /dev/sda5 /

  2. , изменяют имя файла от somelinux.iso до Вашего, в моем случае я имею: ubuntu-14.04-desktop-amd64.iso

    • перезагрузка GRUB

sudo update-grub

  • обновления
0
ответ дан 24 July 2014 в 15:55

Попробуйте это

 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
 }
0
ответ дан 24 July 2014 в 15:55

Во многих версиях человечности ISO как в Ubuntu 18.10 (Космическая Каракатица), файлы initrd.lz всего initrd. Я предлагаю, чтобы Вы пошли и осмотрели свой файл ISO для initrd и vmlinuz файлы.

При начальной загрузке Ubuntu 18.10, я также сделал ту ошибку.

1
ответ дан 7 October 2019 в 11:46

Другие вопросы по тегам:

Похожие вопросы: