いくつかのLVMパーティションを含むLUKSを使用して、暗号化されたルートパーティションを作成しました。起動できず、起動時に次の出力が表示されません。
Begin mounting root file system ... Begin: Running /scripts/local-top ... /scripts/local-top/cryptroot: line 1: /sbin/cryptsetup: not found
それでもパスワードの入力を求められます:
Unlocking the disk /dev/sda5 (macbookcrypt)
Enter passphrase: *******************************
cryptsetup: cryptesetup failed, bad password or options?
/scripts/local-top/cryptroot: line 1: /sbin/cryptsetup: not found
しかし、それは毎回失敗します。
私のブートコマンドラインは:
vmlinuz-3.13.0-37 generic ro root=/dev/mapper/macbooklvm-root cryptopts=target=macbookcrypt,source=/dev/sda5,lvm=macbooklvm recovery initrd=\initrd.img-3.13.0-37-generic
私は追加しました "dm_crypt
"から/etc/modules
し、次にupdate-initramfs
で再生成するにはdm_crypt
含まれています。ちなみに私はUbuntu 14.04を使用しています。
Initramfsシェルでは、どこにもcryptsetup
が見つからないようです。
(initramfs) cat /proc/modules | grep crypt
dm_crypt 23177 0 - Live 0xffffffffa0006000
(initramfs) find / -iname "cryptsetup"
(initramfs)
dm_crypt
モジュールが読み込まれているため、問題ありませんが、cryptsetupはここにはありません。 Linuxブートにインストールするにはどうすればよいですか? initrd
、vmlinuz
、またはSystem
ファイルに何らかの方法で含める必要がありますか?私はこのハッカーに不慣れです。
明らかに、/etc/crypttab
ファイルを作成していません。作成してから、update-initramfs -u
を使用して問題を修正してください。
Ubuntu 14.04ではxtsカーネルモジュールがありませんでした
/etc/initramfs-tools/modules
あなたが見逃すかもしれない他のモジュールは次のようになります:
raid1
raid456
aes-x86_64
sha512-ssse3
xts
dm-mod
dm-crypt
私はgrubコマンドライン(linux)にこのオプションを追加することで根本的な原因を見つけました:
break=mount
これにより、busyboxに強制的にドロップされます。その後、私は(別のマシンから)USBスティックでこれらのファイルをramfsにコピーすることができました:
mkdir /boot
mount /dev/sdc1 /boot
cp cryptsetup /sbin/cryptsetup
cp libcryptsetup.so.4.0.0 /lib/libcryptsetup.so.4
cp libpopt.so.0.0.0 /lib/libpopt.so.0
cp libgcrypt.so.11.7.0 /lib/libgcrypt.so.11
cp libgpg-error.so.0.8.0 /lib/libgpg-error.so.0
/boot/cryptsetup luksOpen /dev/md10 root
(私はソフトウェアRAIDにも根を下ろしており、LVMはありません)モジュールが見つからないというエラーを出しました。
後で頭に浮かんだのは、上記のcryptsetupファイルを/ bootパーティションに事前にコピーしておくことで、USBスティックをいじる必要がないようにすることです。別の方法は、initramfsイメージを(事前に)1回解凍することです。/boot/tmp:
gzip -d < ../initrd.img-3.13.0-62-generic | cpio --extract --verbose --make-directories --no-absolute-filenames
そのため、たとえあなたのupdate-initramfs -k all -c
は、カーネルの更新後に失敗しました。
上記のエラーメッセージが表示された別の問題ですが、(上記のように)調査を行った後、より具体的なエラーメッセージが表示されました。
cryptsetup luksOpen /dev/md10 cryptroot
device-mapper: table: 252:0: crypt: unknown target type
ioctl: error adding target to table
解決策:/ etc/crypttabルートデバイス名(cryptroot)が/etc/initramfs-tools/conf.d/mdadm設定と一致することを確認します。私は他に「cryptroot」と他に「root」があり、ターゲットデバイス名を同期した後、ブートは夢のように機能しました!
設定を修正した後、実行します
update-initramfs -c -k all