
私は VirtualBox にかなり基本的な ArchLinux セットアップを持っていて、それを定期的に USB スティックにコピーして実際のマシンで起動しています。過去数か月は問題なく動作していましたが、最後の更新 (2018 年 10 月 8 日) 以降、USB スティックから起動するときに GRUB2 が LUKS で暗号化されたシステム パーティションを認識しなくなり、緊急シェルに切り替わります。blkid
そのシェルで実行すると、GRUB2 はロード元の USB スティックを認識していないことがわかります。
以下に、機能するものと機能しないものの簡単なまとめを示します。これは、問題は私のコンピューターや USB スティックではなく、Arch システムにあることを示しています。
| ArchLinux | Fresh install of
| before update | after update | fresh reinstall | Ubuntu 18.04.1
--------------------------+-----------------+----------------+------------------+--------------------
Booting from virtual hard | worked | works | works | works*
disk in VirtualBox | | | |
--------------------------+-----------------+----------------+------------------+--------------------
Booting from USB | worked | NOT WORKING | NOT WORKING | works*
in VirtualBox | | | |
--------------------------+-----------------+----------------+------------------+--------------------
Booting from USB | worked | NOT WORKING | NOT WORKING | works*
on a computer | | | |
* with and without full disk encryption (LVM on LUKS)
当然、Arch-iso を起動し、すべてのパーティション (USB スティック) をマウントし、arch-chroot
システムに し、/etc/mkinitcpio.conf
とをチェックし、と/etc/default/grub
を実行することで、この問題を修正しようとしました。それでも起動できません... また、仮想ハード ディスクから更新され、まだ動作しているシステムで USB スティックを上書きしようとしましたが、どちらもうまくいきませんでした。mkinitcpio -p linux
grub-mkconfig -o /boot/grub/grub.cfg
この動作の原因が何なのか、または問題を探す場所についてのヒントを知っている人はいますか?仮想ハードディスク上のシステムはアップデート後も動作しているので、ディスク暗号化が原因ではないでしょう (残念ながらアップデート前のバックアップはありません)。
アップデート:フォールバック initramfs を使用した起動は、すべてのケース (vbox、vbox 内の usb、マシン上の usb) で正常に動作します。mkinitcpio.conf にいくつかのフックが欠落している可能性があります。
私の Arch システムの詳細は次のとおりです。これは、2 つのパーティション (GRUB2 がインストールされた 200 MiB の FAT32 パーティションと、ext4 システム パーティションを保持する 15.8 GiB の LUKS コンテナー) のみを含む、GPT フォーマットのディスクを備えた EFI システムです。LVM は使用されていません。設定ファイルの概要は次のとおりです。さらに必要な場合は、お知らせください。
# /etc/mkinitcpio.conf
[...]
HOOKS=(base udev autodetect keyboard keymap modconf block encrypt filesystems fsck)
[...]
# /etc/default/grub
[...]
GRUB_CMDLINE_LINUX_DEFAULT="cryptdevice=/dev/disk/by-uuid/UUID_OF_LUKS_CONTAINER:cryptosystem"
GRUB_CMDLINE_LINUX=""
[...]
#GRUB_DISABLE_LINUX_UUID=true
[...]
#GRUB_ENABLE_CRYPTODISK=y
[...]
# /boot/grub/grub.cfg
[...]
linux /vmlinuz-linux root=UUID=UUID_OF_FS_INSIDE_LUKS rw cryptdevice=/dev/disk/by-uuid/UUID_OF_LUKS_FS:cryptosystem quiet
[...]
タグ: usb、arch-linux、grub2
答え1
フックを削除するとautodetect
問題は解決し、フォールバック イメージを使用せずにシステムを起動できるようになりました。