Команда Grub `loopback loop...` не работает в Ubuntu 19.10

Команда Grub `loopback loop...` не работает в Ubuntu 19.10

Во время загрузки я вхожу в командную строку grub2, нажимая cна меню Grub.

Когда я ввожу следующую команду...

loopback loop (hd0,gpt2)/ubuntu-19.10-desktop-amd64.iso

...grub зависает, на терминале больше нет вывода или активности, и в конце концов вентиляторы ноутбука начинают вращаться, потому что ноутбук нагревается.

Путь (hd0,gpt2)/ubuntu-19.10-desktop-amd64.isoдействителен в моей системе.

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

Я сталкиваюсь с этим в Ubuntu 19.10 и не имел этой проблемы в предыдущих выпусках Ubuntu. Версия grub2-commonу меня 2.04-1ubuntu12.

Как заставить loopbackработать команду grub? (Например, нужно ли загружать определенные модули или вводить другие команды перед выполнением loopback?)

(Также, пожалуйста, добавьте комментарий, если вы также столкнулись с этой проблемой 19.10; я хотел бы определить, касается ли это только моей установки или это более масштабная проблема?)

(Обратите внимание, этот вопрос связан сеще один вопрос о загрузке с ISO на дискеЯ уже публиковал, но полагаю, что они достаточно различны, чтобы заслуживать отдельного поста).

решение1

Eстьобходной путьв Ubuntu Ошибка#1851331...

ОтключитьТРМмодуль, добавив его rmmod tpmв качестве первой команды в файл конфигурации grub.

Например, вот мой /etc/grub.d/40_customфайл...

#!/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.

menuentry "Install" {
    rmmod tpm
    set isofile="/ubuntu.iso"
    loopback loop (hd0,2)$isofile
    linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject
    initrd (loop)/casper/initrd
}

Не забудьте обновить grub после внесения изменений.

sudo update-grub

решение2

Grub.cfg для петлевого монтирования ISO

if loadfont /boot/grub/font.pf2 ; then
    set gfxmode=auto
    insmod efi_gop
    insmod efi_uga
    insmod gfxterm
    terminal_output gfxterm
fi

set menu_color_normal=white/black
set menu_color_highlight=black/light-gray

set timeout=5

menuentry "ubuntu-19.10-desktop-amd64.iso" {
    set root=(hd0,1)
    set isofile="/isos/ubuntu-19.10-desktop-amd64.iso"
        loopback loop $isofile
        linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile persistent persistent-path=/persist-1/ splash --
        initrd (loop)/casper/initrd
}
menuentry "lubuntu-16.04.3-desktop-amd64.iso" {
    set root=(hd0,1)
    set isofile="/isos/lubuntu-16.04.3-desktop-amd64.iso"
        loopback loop $isofile
        linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile persistent persistent-path=/persist-2/ splash --
        initrd (loop)/casper/initrd.lz
}

Пример Grub.cfg, который у меня работает.

Я только что отредактировал grub.cfg, скопированный из ISO.

Существует множество причин, по которым постоянный USB-накопитель может не загружаться, в том числе:

  • Неверный MD5SUM / Поврежденный файл ISO

  • Неправильный путь к ISO в grub

  • Неправильный корневой раздел

  • Раздел Casper-rw не является файловой системой ext

  • Неправильный постоянный путь (если используется) в grub

  • Раздел Casper-rw повторно использован из предыдущей версии

  • Файл Casper-rw заполнен

  • Измененный или поврежденный раздел ISO9660

  • Неправильный тип файла для vmlinuz и initrd (.efi и .lz)

  • Пункт меню Grub не подходит для ОС

  • USB-накопитель был извлечен до того, как файл ISO был полностью скопирован.

  • Проблемы с загрузочными разделами или файлами BIOS или UEFI.

  • USB не установлен как первый жесткий диск в grub

  • Плохая флешка

  • Плохой USB-разъем

  • Недостаточно оперативной памяти

  • Несовместимый процессор компьютера

  • Несовместимый компьютерный графический процессор

Пожалуйста, сообщите мне о любых пропущенных мною причинах.

решение3

Похожая проблема, я думаю: я использую live Ubuntu как основу для моих флешек "Swiss Army" и внешних SSD. Я мог зацикливать и загружать различные Linux и другие ISO в течение некоторого времени.

Если я использую 19.04 для своей базовой "установки" - на самом деле просто файлы, скопированные на флэш-память - я могу загрузить ISO. Если я использую 19.10, я получаю зависание черного экрана. Трехпальцевое приветствие перезагрузит тестовый ноутбук, но фактическая загрузка ISO, похоже, не происходит.

Пример того, что я делаю: http://www.beezmo.com/geezblog/?p=1955

Пример строфы, которая работает, если 19.04 является базой, но не работает, если 19.10 является:

menuentry "Ubuntu 16.10 64-bit Desktop ISO" {
    set isofile="/bootable/iso/ubuntu-16.10-desktop-amd64.iso"
    loopback loop $isofile
    linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile noeject noprompt splash --
    initrd (loop)/casper/initrd.lz 
}

Я бы остановился на версии 19.04, но с версии 17.x, если включить сохранение, snapd сжигает все циклы моего ЦП и становится непригодным для использования. В версии 19.10 это, похоже, исправлено.

[править, чтобы добавить] Я здесь новичок и не разобрался с редактором. Извините за форматирование :(

[дополнительное редактирование для добавления] И я думаю, это должен был быть комментарий, а не "ответ". Я пойму в конце концов...

решение4

Я также не смог сделать loopback iso.
Я смонтировал iso и скопировал все файлы и каталоги на (hd0,gpt7).
Затем перезагрузил ПК и ввел в командной строке grub команду, как показано ниже.

set root=(hd0,gpt7)
linux /kernel
initrd /initrd.img
boot

Это сработало!
Даже если я не смог сделать loopback iso, я смог сделать то же самое, что и загрузиться с iso.

Связанный контент