web-dev-qa-db-ja.com

/ sbin / cryptsetupが起動時に見つかりません

いくつかの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ブートにインストールするにはどうすればよいですか? initrdvmlinuz、またはSystemファイルに何らかの方法で含める必要がありますか?私はこのハッカーに不慣れです。

4
Naftuli Kay

明らかに、/etc/crypttabファイルを作成していません。作成してから、update-initramfs -uを使用して問題を修正してください。

3
Naftuli Kay

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は、カーネルの更新後に失敗しました。

3
PHZ.fi-Pharazon

上記のエラーメッセージが表示された別の問題ですが、(上記のように)調査を行った後、より具体的なエラーメッセージが表示されました。

 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
2
PHZ.fi-Pharazon