USB를 통해 Linux 설치: 부팅 시 "부팅 옵션 복구"가 표시됨

USB를 통해 Linux 설치: 부팅 시 "부팅 옵션 복구"가 표시됨

Q: Grub을 사용하여 EFI 시스템에서 Linux를 수동으로 부팅하는 방법은 무엇입니까?

문제가 발생하는 부분: x64 시스템에 사용자 정의 커널, 루트 파일 시스템 및 grub을 설치하려고 합니다. USB 스틱에는 동등한 설치 스크립트가 있고 부팅되지만 x64 장치에 eMMC를 설치하려고 하면 "부팅 옵션 복구"라고 표시됩니다. 이것은 재부팅 루프이며 Grub을 사용하는 방식과 관련이 있는 것으로 의심됩니다.

사진(내 것이 아님):

홈 화면:

부팅 옵션 복구

사용 가능한 옵션:

부팅 옵션이 복원되었습니다.

(간체) 코드:

#! /bin/bash
set -e

# Create GPT, partition 1, type BIOS boot, bootable flag
(echo -e "g\nn\n1\n\n+128M\nt\n4\nM\na\nM\nw\n") | fdisk /dev/mmcblk0
sleep 1
mkfs.vfat -N BOOT /dev/mmcblk0p1

# Create partition 2
(echo -e "n\n2\n\n\nY\nw\n") | fdisk /dev/mmcblk0
sleep 1
mkfs.ext4 -F -L ROOTFS /dev/mmcblk0p2

dd if=rootfs of=/dev/mmcblk0p2 conv=fsync
mount /dev/mmcblk0p2 /mnt
mount /dev/mmcblk0p1 /mnt/boot/efi
cp vmlinuz-custom /mnt/boot

chroot /mnt <<-EOF
        mount -t proc none /proc
        mount -t sysfs none /sys
        mount -t devtmpfs none /dev

        # This could be moved out of the chroot, but for is use this.
        update-initramfs -c -k custom

        umount /proc /sys /dev
EOF

grub-install --target=x86_64-efi --removable --recheck \
        --root-directory=/mnt \
        --efi-directory=/mnt/boot/efi \
        --boot-directory=/mnt/boot/efi/EFI \
        --bootloader-id=grub /dev/mmcblk0;

cat > /mnt/boot/efi/EFI/grub/grub.cfg <<-EOF
insmod gzio
insmod part_msdos
insmod part_gpt
insmod ext2
insmod normal
        
search.fs_label BOOT grub
search.fs_label ROOTFS rootfs
        
set prefix=/bogus  # Unavailable prefix (prefix required by Grub)
        
sleep 1
linux (\$rootfs)/boot/vmlinuz-custom root=UUID=$(blkid -o value -s UUID /dev/mmcblk0p2) i915.force_probe=* swiotlb=65536 module_blacklist="pinctrl_elkhartlake,dp83867"
initrd (\$rootfs)/boot/initrd.img-custom
boot
EOF

이미 확인함:

  • Grub의 UUID가 올바른 것 같습니다
  • USB 및 EMMC 설치 스크립트는 동일하지 않지만 동일합니다.
  • BIOS 옵션을 기본 설정으로 재설정
  • 모든 명령이 올바르게 실행되는 것 같습니다.

답변1

정확히 기억은 나지 않지만 Grub을 작성하는 것과 관련이 있었던 것 같습니다. 삭제해 보세요 --removable.. USB 만들어서 사용했는데 2번 사용하고 나면 재생이 안되는 것 같습니다. 또한 삭제해 보십시오 --recheck.

결국 커널을 EFI 파티션의 EFI 전용 위치로 옮겼습니다. 이 efibootmgr처리 방법은 Grub보다 훨씬 낫습니다.

답변2

또한 Linux 전용(Windows 없음) 노트북에서도 동일한 블루 스크린을 경험했습니다. 블루 스크린이 시스템의 어떤 부분에 속한다고 생각하시나요? BIOS/UEFI(예: 하드웨어)로? 아니면 GRUB로?

내가 정확히 무엇을 했는지:

  • SSD에 Debian을 설치했지만 ESP(EFI) 파티션은 USB 스틱에 설치했습니다. (이유는 묻지 마세요. 단지 테스트용일 뿐입니다.)
  • 첫 번째 부팅에서 모든 것이 잘 진행되었습니다.
  • 그런 다음 ESP 파티션이 포함된 USB 드라이브를 제거했는데 노트북이 부팅되지 않았습니다. 이는 더 이상 ESP 파티션이 없기 때문에 예상되는 현상입니다.
  • 그런 다음 USB 드라이브를 다시 삽입했는데 부팅되지 않았습니다. 이것은 예상치 못한 일입니다.

읽고 나서이것, 프로세스를 다시 시작했지만 이번에는 dpkg-reconfigure grub-efi-amd64데비안을 설치한 직후에 했고 이 질문에 대한 나의 대답은 "예"였습니다 Force extra installation to the EFI removable media path ?.

이제 작동하지만 추가 블루 스크린이 나타납니다.

  • EFI 파티션이 있는 USB 스틱을 제거했는데 노트북이 부팅되지 않습니다. 예상되는
  • USB 스틱을 다시 삽입했는데 이제 부팅되지만 블루 스크린이 표시됩니다. 선택하면 Continue bootgrub이 시작된 다음 Debian이 시작됩니다.

온라인에는 블루 스크린에 대한 정보가 거의 없습니다. 당신의 생각을 공유할 수 있나요? 그것은 어디에서 왔으며 왜 표시됩니까?

관련 정보