USB ドライブにセキュアブート可能なインストールをすることは、通常のローカルドライブにインストールするのと同じ手順で行けるのですが、すくなくとも Debian 12 の場合だと、efiboot のエントリーがインストールしたマシンの NVRAM に登録されますが、リムーバブルのターゲットドライブを他のマシンで使おうとすると、セキュアブートバイオレーションエラーがでて起動できませんし、NVRAM に自動的にエントリが入っていしまいます。
しかし、インストーラの USB ドライブは当然ながらセキュアブートが有効になっているマシンならどれでも起動できる上、NVRAM にはエントリが残らないので、多分行けるだろうと思い、インストーラの EFI ディレクトリをターゲットにコピーし、debian/grub.cfg だけ USB ターゲットドライブのものに差し替えた所、うまく行ったので備忘録として挙げておくことにしました。
以下シリアル/テキストモードでの手順です。
今回は以上です。それでは。
しかし、インストーラの USB ドライブは当然ながらセキュアブートが有効になっているマシンならどれでも起動できる上、NVRAM にはエントリが残らないので、多分行けるだろうと思い、インストーラの EFI ディレクトリをターゲットにコピーし、debian/grub.cfg だけ USB ターゲットドライブのものに差し替えた所、うまく行ったので備忘録として挙げておくことにしました。
以下シリアル/テキストモードでの手順です。
############ 1. 通常通りターゲットドライブにインストール (ここは、グラフィックインストールでもOK) ############ 2. インストーラをレスキューモードで再起動し、ターゲットの USB Drive に chroot して作業を行う cd /boot/efi/EFI mv debian /root/xx-debian mv BOOT /root/xx-BOOT cd /boot/efi/EFI mkdir debian cp -a /root/xx-debian/grub.cfg debian/ ## インストーラのシェルを切替: # シリアルの場合: press ctrl + a then press 2 # テキストの場合: press ctrl + alt + F2 mkdir -p /target/boot/efi/EFI/BOOT cp -a /cdrom/EFI/boot/bootx64.efi /target/boot/efi/EFI/BOOT/ cp -a /cdrom/EFI/boot/grubx64.efi /target/boot/efi/EFI/BOOT/ ############ 3. efi ブートエントリーを efibootmgrを使ってクリーンアップ # chrootのシェルに戻る: # シリアルの場合: press ctrl + a then press 1 # テキストの場合: press ctrl + alt + F1 modprobe -av efivarfs mount -t efivarfs none /sys/firmware/efi/efivars # 以下例です. UEFI OS(エントリ0001) がインストーラ USB ドライブです。 efibootmgr -v BootCurrent: 0001 Timeout: 1 seconds BootOrder: 0002,0000,0001 Boot0000* debian HD(1,GPT,XXXXXXXX-601c-495f-a30f-03abd9e8481e,0x800,0x100000)/File(\EFI\DEBIAN\SHIMX64.EFI) Boot0001* UEFI OS HD(1,MBR,0xXXXXXXXX,0x800,0x1cc7c8)/File(\EFI\BOOT\BOOTX64.EFI)..BO Boot0002* debian HD(1,GPT,XXXXXXXX-601c-495f-a30f-03abd9e8481e,0x800,0x100000)/File(\EFI\DEBIAN\GRUBX64.EFI)..BO # エントリ0000を削除 efibootmgr -b 0000 -A efibootmgr -b 0000 -B # エントリ0002を削除 efibootmgr -b 0002 -A efibootmgr -b 0002 -B # 確認 efibootmgr -v BootCurrent: 0001 Timeout: 1 seconds BootOrder: 0001 Boot0001* UEFI OS HD(1,MBR,0xXXXXXXXX,0x800,0x1cc7c8)/File(\EFI\BOOT\BOOTX64.EFI)..BO # chrootから抜けて再起動 exit ######## 4. ターゲット usb ドライブ で再起動し、確認 efibootmgr -v BootCurrent: 0002 Timeout: 1 seconds BootOrder: 0002,0001 Boot0001* UEFI OS HD(1,MBR,0xXXXXXXXX,0x800,0x1cc7c8)/File(\EFI\BOOT\BOOTX64.EFI)..BO Boot0002* UEFI OS HD(1,GPT,XXXXXXXX-601c-495f-a30f-03abd9e8481e,0x800,0x100000)/File(\EFI\BOOT\BOOTX64.EFI)..BOusb インストーラのレスキューモードも便利なのですが、こんな方法もあるよというお話でした。
今回は以上です。それでは。
コメント
コメントを投稿