20.04 загрузка .iso из меню GRUB

Я пытаюсь загрузить образ Ubuntu .iso из GRUB. В журнале Full Circle , # 157 стр. 61, они описывают, как это сделать. Это не работает.

Я отредактировал /etc/grub.d/40-custom и добавил следующее ...

# Full Circle #157, page 61
menuentry "Ubuntu 20.04 ISO" {
     insmod part_gpt
     insmod ext2
     set root=(hd0,gpt7)
     set isofile=/ubuntu-20.04-desktop-amd64.iso
     loopback loop (hd0,gpt7)$isofile
     linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject
     initrd (loop)/casper/initrd
}

Мой корень Ubuntu находится на /dev/sda7.

Мой файл .iso находится в / .

ошибка, которую я получаю, когда пытаюсь загрузить .iso ...

disk hd0,gpt7 not found
no server is specified
can't find command noprompt
you need to load the kernel first

enter image description here

Есть какие-нибудь идеи о том, как заставить это работать?

2
задан 19 June 2020 в 18:15

3 ответа

Загрузка файлов ISO на HDD (включая 20.04)

Базовая петля GRUB для меню загрузки ISO:

menuentry "isoname ISO" {
    set root=(hdX,Y)
    set isofile="/[path]/[name].iso"
        loopback loop $isofile
        linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile --
        initrd (loop)/casper/initrd
}
  • Где hdX - диск, а Y - номер раздела расположения ISO.

  • [путь] - это путь к файлу ISO, [имя] - это имя файла ISO.

  • Допускается несколько файлов ISO, один или более пунктов меню требуется для файла ISO. (каждый ISO может иметь несколько файлов постоянства).

Постоянство (необязательно)

  • Если нам нужна постоянная ОС, добавьте слово Постоянный в меню GRUB (через / etc / grub .d / 40-custom ).

  • Если используется постоянный раздел, сделайте его ext4 и пометьте его casper-rw для 19.10 и предыдущих файлов ISO.

  • Для файлов 20.04 ISO пометьте постоянный раздел доступен для записи .

  • Для одного диска разрешен только один постоянный раздел ,

  • При использовании постоянных файлов каждый ISO может иметь свою собственную персистентность.

  • Каждый ISO может иметь файл с возможностью записи ( casper-rw ) объемом до 4 ГБ и дополнительный файл home-rw объемом до 4 ГБ.

  • Постоянные файлы должны быть расположены в разделе FAT32 .

  • Если используется более одного файла постоянства, необходимо указать путь хранения. Требуется только уникальное имя папки с постоянными файлами. Один файл casper-rw / writable и один файл home-rw на папку.

Временное решение GRUB 2.04

  • Версии Ubuntu 18.04 и более ранние версии используют GRUB 2.02 для загрузки. Версии 19.10 и более поздние используют GRUB 2.04 для загрузки в режиме UEFI. В GRUB 2.04 возникают проблемы с загрузкой файлов ISO в режиме UEFI.

  • Обходной путь для загрузки файлов ISO в режиме GRUB 2.04 UEFI заключается в добавлении rmmod tpm в меню при загрузке в режиме UEFI.

  • Если хост Система предварительно 19.10 GRUB 2.

5
ответ дан 19 June 2020 в 21:23

Спасибо @CSCameron за исправление! Вот мой последний файл /etc/grub.d/40-custom .

  • добавил rmmod tpm

  • изменил set root = на hd0 <-> hd1 в зависимости от включен, если внешний USB-диск был подключен или нет


#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
# Full Circle #157, page 61
menuentry "Ubuntu 20.04 Desktop ISO (external hd0 disk)" {
        insmod part_gpt
        insmod ext2
        rmmod tpm
        set root=(hd0,gpt1)
        set isofile="/ubuntu-20.04-desktop-amd64.iso"
        loopback loop $isofile
        linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile quiet splash
        initrd (loop)/casper/initrd
}
menuentry "Ubuntu 20.04 Desktop ISO (internal hd0 only)" {
        insmod part_gpt
        insmod ext2
        rmmod tpm
        set root=(hd0,gpt7)
        set isofile="/home/redacted/Documents/Disk_images/Ubuntu/ubuntu-20.04-desktop-amd64.iso"
        loopback loop $isofile
        linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile quiet splash
        initrd (loop)/casper/initrd
}
0
ответ дан 19 June 2020 в 21:23

Аналогично предыдущему. Загрузка с жесткого диска имеет несколько проблем.

Я загружаю ISO с жесткого диска или SSD. Обычно у меня есть два диска, и я создаю отдельный раздел только для ISO. Затем я загружаю ISO с одного диска для установки на другой диск.

Я обнаружил, что теперь мне нужно добавить rmmod tpm, но обычно приходится размонтировать /isodrive и изменить монтирование ESP, чтобы он не перезаписывал мою основную рабочую установку.

2.04 Цикл монтирования ошибки нехватки памяти

https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1851311

sudo umount -lrf /isodrive

Таким образом, мой ESP не перезаписывается, я отключаю ESP во время работы экран, где мы добавляем имя и пароль. Позже мне пришлось отредактировать fstab, так как он все еще имеет оригинальный ESP. Я проверяю монтирование, размонтирование ESP и монтирую другой ESP, например, мой sdb или внешний флэш-накопитель.

Установщик Ubuntu использует неправильное расположение загрузчика для установки USB/sdb UEFI

https://bugs.launchpad.net/ubuntu/+source/ubiquity/+bug/1173457

mount
sudo umount /target/boot/efi
sudo mount /dev/sdc1 /target/boot/efi

Моя загрузка Groovy из ISO, я сейчас используйте метки, так что это из раздела на моем SSD и тестовая установка Groovy на диск sdb из sda:

menuentry "Ubuntu 20.10 Groovy amd64" {
    set isofile="/groovy-desktop-amd64.iso"
    insmod part_gpt
    rmmod tpm
    search --set=root --label iso_ssd --hint hd0,gpt5
    loopback loop (${root})$isofile 
    linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile toram
    initrd (loop)/casper/initrd
}

Аналогично это из раздела на жестком диске. Это была новая установка Focal на мой SSD, которая теперь является моей основной рабочей установкой. У меня до сих пор стоит 18.04 на SSD.

menuentry "Ubuntu 20.04 Focal amd64" {
    set isofile="/ubuntu-20.04-desktop-amd64.iso"
    insmod part_gpt
    rmmod tpm
    loopback loop (hd1,6)$isofile 
    linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile toram
    initrd (loop)/casper/initrd
}
1
ответ дан 28 June 2020 в 04:00

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

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