私はLUKSを使用して、いくつかのLVMパーティションを含む暗号化されたルートパーティションを作成しました。起動できず、起動時に次の出力が表示されます。
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
"を追加してからincludeを/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
?私はこのハッキングに初めて触れました。
答え1
もちろん、私は/etc/crypttab
ファイルを作成したわけではありません。 1つを作成してupdate-initramfs -u
問題を解決してください。
答え2
Ubuntu 14.04で私は逃したxtsカーネルモジュールは以下で提供されます。
/etc/initramfs-tools/modules
見逃す可能性のある他のモジュールは次のとおりです。
raid1
raid456
aes-x86_64
sha512-ssse3
xts
dm-mod
dm-crypt
grubコマンドライン(Linux)にこのオプションを追加して根本的な原因を見つけました。
break=mount
これにより、ビジボックスが強制的に削除されます。その後、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
(LVM以外のソフトウェアRAIDへのrootアクセスもあります。)モジュールの欠落エラーが発生します。
それから良い考えが思い浮かびました。上記のcryptsetupファイルを/ bootパーティションに事前にコピーしておくと、USBドライブを操作する必要がないということです。別の方法は、/boot/tmpで(事前に)initramfsイメージを解凍することです:
gzip -d < ../initrd.img-3.13.0-62-generic | cpio --extract --verbose --make-directories --no-absolute-filenames
update-initramfs -k all -c
したがって、一部のカーネルの更新後に失敗しても、すべての作業ライブラリとcryptsetupを使用できます。
答え3
別の質問で上記のエラーメッセージが表示されましたが、上記のように調査した後、次のより具体的なエラーメッセージが表示されました。
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