USB経由でLinuxをインストールする:起動時に「起動オプションの回復」が表示される

USB経由でLinuxをインストールする:起動時に「起動オプションの回復」が表示される

Q:Grubを使用してEFIシステムからLinuxを手動で起動する方法は?

問題の原因:x64システムにカスタムカーネル、ルートファイルシステム、およびグラブをインストールしようとしています。 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。また、削除してみてください--recheck

結局、カーネルをEFIパーティションのEFI専用の場所に移動しました。このefibootmgr処理方法はGrubよりはるかに優れています。

答え2

また、Linuxのみ(Windowsなし)ノートブックでも同じブルースクリーンを経験しました。ブルースクリーンはシステムのどの部分に属すると思いますか? BIOS/UEFI(例えばハードウェア)で?それともGRUBで?

私が正確に何をしたのか:

  • SSDにDebianをインストールしましたが、ESP(EFI)パーティションはUSBスティックにインストールしました。 (理由は尋ねないでください。単にテスト用です。)
  • 最初のブートでは、すべてがうまくいった。
  • その後、ESPパーティションを含むUSBドライブを取り外しましたが、ラップトップは起動しませんでした。これは、もはやESPパーティションがないために予想される現象です。
  • その後、USBドライブを再挿入しましたが、起動しませんでした。これは予期しないことです。

読んだ後これ、プロセスを再開しましたが、今回はdpkg-reconfigure grub-efi-amd64Debianをインストールした直後に行いましたが、この質問に対する私の答えは「はい」でしたForce extra installation to the EFI removable media path ?

これで動作しますが、追加のブルースクリーンが表示されます。

  • EFIパーティションを持つUSBスティックを削除しましたが、ラップトップは起動しません。予想される
  • USBスティックを再挿入しましたが、今すぐ起動しますが、ブルースクリーンが表示されます。選択するとContinue bootgrub が起動してから Debian が起動します。

オンラインにはブルースクリーンに関する情報はほとんどありません。あなたの考えを共有できますか?それはどこから来て、なぜ表示されますか?

関連情報