Grub 명령 'loopback loop...'가 Ubuntu 19.10에서 작동하지 않습니다.

Grub 명령 'loopback loop...'가 Ubuntu 19.10에서 작동하지 않습니다.

c부팅하는 동안 Grub 메뉴를 눌러 grub2 명령줄에 들어갑니다 .

다음 명령을 입력하면...

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-common2.04-1ubuntu12입니다.

grub 명령을 작동시키려면 어떻게 해야 합니까 loopback? (예를 들어, 실행하기 전에 특정 모듈을 로드하거나 다른 명령을 입력해야 합니까 loopback?)

(또한 19.10에서도 이 문제가 발생하는 경우 의견을 추가해 주세요. 이것이 내 설치에만 해당되는지, 아니면 더 큰 문제인지 확인하고 싶습니다.)

(참고로 이 질문은 다음과 관련이 있습니다.디스크의 ISO 부팅에 대한 또 다른 질문게시했지만 별도의 게시물을 보장할 만큼 충분히 다르다고 생각합니다).

답변1

이있다해결 방법우분투 버그에#1851331...

비활성화TPMrmmod tpmgrub 구성 파일에 첫 번째 명령을 추가하여 모듈을 만듭니다 .

예를 들어, 여기 내 /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

루프 마운트 ISO용 Grub.cfg

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 예제입니다.

방금 ISO에서 복사한 grub.cfg를 편집했습니다.

영구 USB가 부팅되지 않는 데에는 다음과 같은 여러 가지 이유가 있습니다.

  • 잘못된 MD5SUM/손상된 ISO 파일

  • Grub의 ISO에 대한 잘못된 경로

  • 잘못된 루트 파티션

  • Casper-rw 파티션이 외부 파일 시스템이 아님

  • grub에서 잘못된 영구 경로(사용된 경우)

  • 이전 버전에서 재사용된 Casper-rw 파티션

  • Casper-rw 파일이 꽉 찼습니다.

  • 수정되거나 손상된 ISO9660 파티션

  • vmlinuz 및 initrd(.efi 및 .lz)에 대한 잘못된 파일 형식

  • OS에 적합하지 않은 Grub 메뉴 항목

  • ISO 파일이 완전히 복사되기 전에 USB가 제거됨

  • BIOS 또는 UEFI 부팅 파티션이나 파일에 문제가 있습니다.

  • USB가 grub의 첫 번째 하드 드라이브로 설정되지 않았습니다.

  • 불량 플래시 드라이브

  • USB 소켓 불량

  • RAM이 부족합니다.

  • 호환되지 않는 컴퓨터 CPU

  • 호환되지 않는 컴퓨터 GPU

제가 놓친 이유가 있으면 알려주시기 바랍니다.

답변3

비슷한 문제가 있다고 생각합니다. 저는 라이브 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가 모든 CPU 사이클을 소모하여 사용할 수 없게 됩니다. 19.10에서는 이 문제가 해결된 것 같습니다.

[추가하려면 편집] 여기에 새로 추가되었으며 편집기를 둘러볼 방법을 찾지 못했습니다. 포맷해서 죄송합니다 :(

[추가 편집] 그리고 이것은 "답변"이 아니라 주석이어야 한다고 생각합니다. 결국 따라잡겠지...

답변4

또한 iso를 루프백할 수 없습니다.
iso를 마운트하고 모든 파일과 디렉터리를 (hd0,gpt7)에 복사했습니다.
그런 다음 PC를 재부팅하고 grub 명령줄에 아래와 같이 입력했습니다.

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

작동했습니다!
ISO를 루프백할 수 없더라도 ISO에서 부팅하는 것과 같은 작업을 수행할 수 있습니다.

관련 정보