質問

質問

私の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は再び正常に起動しました。

おすすめ記事