私のRaspberry Pi(現在私から10,000km離れています)が動作する方法は次のとおりです。
- Raspbian(2016年7月版)を実行しています。
- SDカードには以下が含まれます。
/boot
- 暗号化されたハードドライブ(LUKSを使用
cryptsetup
)には、次のものが含まれます。/
- Piが起動したら、SSHを介してリモートでHDDのロックを解除できます
dropbear
。 HDDのパスワードを求めるプロンプトが表示されたら、起動順序は通常どおり続行されます。
これらすべてをどのように達成したかについての詳細は、以下を読んでください。http://blog.romainpellerin.eu/raspberry-pi-the-ultimate-guide.html。
長い話を短く短縮バージョンは次のとおりです。
apt-get install busybox cryptsetup rsync
echo "initramfs initramfs.gz 0x00f00000" >> /boot/config.txt
sed -e "s|root=/dev/mmcblk0p2|root=/dev/mapper/hddcrypt cryptdevice=/dev/sda1:hddcrypt|" -i /boot/cmdline.txt
sed -e "s|/dev/mmcblk0p2|/dev/mapper/hddcrypt|" -i /etc/fstab
echo -e "hddcrypt\t/dev/sda1\tnone\tluks" >> /etc/crypttab
cryptsetup --verify-passphrase -c aes-xts-plain64 -s 512 -h sha256 luksFormat /dev/sda1
mkinitramfs -o /boot/initramfs.gz $(uname -r)
aptitude install dropbear
// Configuring the SSH access here...
mkinitramfs -o /boot/initramfs.gz $(uname -r)
update-initramfs -u
質問
昨日まではすべてがうまく戻っていました。再起動してSSH経由でHDDのロックを解除できます。しかし昨日私はそれをしたaptitude update && aptitude upgrade
。私が知っている限り、これはカーネルをアップグレードしません。とにかく再起動しました。今、ロック解除段階で詰まっています。正しいパスワードを入力してもすぐに表示され、Can't change directory to <something/a kernel version>
パスワードCannot initialize device-mapper. Is dm_mod kernel module loaded?
をもう一度尋ねます。
しばらく前に設定し、頻繁に使用しなかったため、どのコアが実行されているのかわかりません。
詳しくは不足して申し訳ありません。ラズベリーに物理的にアクセスできず、昨日は消えたので、記憶を通して申し上げます。
仮説
調整によって問題を解決できると確信していますが、/boot/initramfs.gz
方法がわかりません。助けてください?とても感謝しています。
答え1
コアが同じままでなければならないという印象を与える理由が何であるかわかりませんaptitude upgrade
。実はそうではありません。私の暗号化パイでカーネルを更新した後も同じ問題が発生しました。問題は、initramfsを再構築する必要があることです。外部コンピュータでこれを行う方法は次のとおりです。
まず、暗号化されたRaspbianを含むSDカードを外部コンピュータに挿入し、次のようにすべてを取り付けます。
cryptsetup -v luksOpen /dev/mmcblk0p2 thunderdome
mount /dev/mapper/thunderdome /mnt
mount /dev/mmcblk0p1 /mnt/boot
mount -o bind /dev /mnt/dev
mount -t sysfs none /mnt/sys
mount -t proc none /mnt/proc
Raspberry Piバイナリをエミュレートするには、qemuをインストールしてください。
apt-get install qemu qemu-user-static binfmt-support
~によるとこの点/mnt/etc/ld.so.preload
、続行する前にすべての行を削除するのが最善です。これはsed
、次のコマンドが実行するアクションです。
# comment out ld.so.preload
sed -i 's/^/#/g' /mnt/etc/ld.so.preload
# copy qemu binary
cp /usr/bin/qemu-arm-static /mnt/usr/bin/
# chroot to raspbian and rebuild initramfs
chroot /mnt /bin/bash
mkinitramfs -o /boot/initramfs.gz [NEW RASPBIAN KERNEL VERSION]
exit
# undo damage
sed -i 's/^#//g' /mnt/etc/ld.so.preload
umount /mnt/{dev,sys,proc,boot}
/lib/modules
でこれを行うことができますchroot
。
これを実行した後、Raspberry Piは再び正常に起動しました。