O comando Grub `loopback loop...` não funciona no Ubuntu 19.10

O comando Grub `loopback loop...` não funciona no Ubuntu 19.10

Durante a inicialização, entro na linha de comando do grub2 pressionando cno menu Grub.

Quando digito o seguinte comando...

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

... o grub trava, não há mais saída ou atividade no terminal e, eventualmente, os ventiladores do laptop giram porque o laptop esquenta.

O caminho (hd0,gpt2)/ubuntu-19.10-desktop-amd64.isoé válido no meu sistema.

Obtenho o mesmo resultado, independentemente de qual ISO eu uso, e verifiquei as somas de verificação dos ISOs.

Estou enfrentando isso no Ubuntu 19.10 e não tive esse problema nas versões anteriores do Ubuntu. A versão que grub2-commontenho é 2.04-1ubuntu12.

Como posso fazer o loopbackcomando grub funcionar? (Por exemplo, preciso carregar módulos específicos ou inserir outros comandos antes de executar loopback?)

(Além disso, adicione um comentário se você também tiver esse problema em 19.10; gostaria de determinar se isso é específico da minha instalação ou se é um problema maior?)

(Observe que esta questão está relacionada aoutra pergunta sobre como inicializar em um ISO no discoEu postei, mas acredito que eles sejam suficientemente diferentes para justificar uma postagem separada).

Responder1

Existe umGambiarrapara bug do Ubuntu#1851331...

Desative oTPMmódulo adicionando rmmod tpmcomo o primeiro comando em seu arquivo de configuração do grub.

Por exemplo, aqui está meu /etc/grub.d/40_customarquivo ...

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

Lembre-se de atualizar o grub após fazer a alteração.

sudo update-grub

Responder2

Grub.cfg para ISOs de montagem em loop

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
}

Exemplo Grub.cfg que funciona para mim.

Acabei de editar o grub.cfg que copiei do ISO.

Há muitos motivos pelos quais um USB persistente pode não inicializar, incluindo:

  • MD5SUM inválido/arquivo ISO corrompido

  • Caminho incorreto para ISO no grub

  • Partição raiz incorreta

  • Partição Casper-rw não sistema de arquivos ext

  • Caminho persistente incorreto, (se usado), no grub

  • Partição Casper-rw reutilizada da versão anterior

  • Arquivo Casper-rw completo

  • Partição ISO9660 modificada ou corrompida

  • Tipo de arquivo incorreto para vmlinuz e initrd (.efi e .lz)

  • A entrada do menu Grub não é adequada ao sistema operacional

  • USB removido antes que o arquivo ISO seja completamente copiado

  • Problemas com partições ou arquivos de inicialização BIOS ou UEFI.

  • USB não definido como primeiro disco rígido no grub

  • Unidade flash ruim

  • Tomada USB ruim

  • RAM insuficiente

  • CPU de computador incompatível

  • GPU de computador incompatível

Por favor, deixe-me saber sobre quaisquer motivos pelos quais perdi.

Responder3

Problema semelhante, eu acho: eu uso o Ubuntu ao vivo como base para minhas unidades flash do "Exército Suíço" e SSDs externos. Já faz algum tempo que consigo fazer loop e inicializar uma variedade de Linux e outras ISOs.

Se eu usar o 19.04 para minha "instalação" básica - na verdade, apenas arquivos copiados para o flash - posso inicializar ISOs. Se eu usar o 19.10, a tela preta travará. A saudação com três dedos reinicializará o laptop de teste, mas a inicialização real do ISO parece não prosseguir.

Exemplo do que tenho feito: http://www.beezmo.com/geezblog/?p=1955

Exemplo de estrofe que funciona se 19.04 for a base, mas não se 19.10 for:

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 
}

Eu ficaria com 19.04, mas desde 17.x, se eu ativar a persistência, o snapd queima todos os meus ciclos de CPU e fica inutilizável. 19.10 parece ter corrigido isso.

[editar para adicionar] Novo aqui e ainda não encontrei o editor. Desculpe pela formatação :(

[edição adicional para adicionar] E acho que isso deveria ter sido um comentário, não uma "resposta". Eu vou entender eventualmente...

Responder4

Eu também não consegui fazer o loopback iso.
Montei o iso e copiei todos os arquivos e diretórios para (hd0,gpt7).
Em seguida, reiniciei o PC e digitei como abaixo na linha de comando do grub.

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

Funcionou!
Mesmo que eu não conseguisse fazer o loopback iso, eu poderia fazer o mesmo que inicializar a partir do iso.

informação relacionada