Я не знаю, почему у вас сложилось впечатление, что aptitude upgrade
оставит ваше ядро нетронутым, это просто не так. У меня была такая же проблема после обновления ядра на моем зашифрованном пи. Проблема в том, что вам нужно пересобрать initramfs.Вот как это сделать на внешней машине.
Сначала вставьте SD-карту с зашифрованным raspbian на свой внешний компьютер и смонтируйте все так:
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
Установите qemu для эмуляции двоичных файлов raspberry pi:
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}
Вы можете найдите новую версию ядра raspbian, открыв / lib / modules
внутри chroot
.
После этого мой raspberry pi снова загрузился нормально.