在initramfs更新后,Pi无法启动


9

我一直在尝试从映像安装Raspbian Jessie,以使用加密的根分区启动。

我成功地遵循了这里指南

当我启动Pi时,它会出现在initramfs提示符下,然后使用

# cryptsetup luksOpen /dev/mmcblk0p2 sdcard
# exit

然后启动进入Debian。大!

但是,有一些问题。当我尝试使用以下命令更新initramfs文件时:

# sudo mkinitramfs -o /boot/initramfs.gz

在Debian中,树莓派无法成功重启至initramfs提示符。显示像素徽标后,它只是用闪烁的光标挂起。当还原到备份的启动映像时,我再次收到initramfs提示符,并且可以从加密的根目录启动。

第二个问题是我没有正确配置dropbear。它似乎已配置为使用DHCP。这意味着我登录时会获得一个随机IP地址。我需要将配置更新为固定的IP地址,以便重启后可以无头登录Pi,但无法更新initramfs,我不知道如何解决。

鉴于更新后我什至都没有收到initramfs提示,所以我真的不确定如何开始解决此问题,因此任何提示都很好。我将提供任何有助于解决此问题的信息。


1
我隐约记得有一段时间systemd,该init系统是从Debian的当前“ Jessie”版本发展而来的默认系统,因此派生自其的Raspbian曾经遇到过加密文件系统问题。我想至少已经解决了部分问题,但是在您的特定情况下,您可能希望考虑切换回sysV init,这是2013年文章所期望的(它提到了Raspbian的“ Wheezy”版本,以前的版本将具有sysV的默认初始化)...
SlySven

1
似乎不可能是与之相关的问题systemd; 我运行带有加密根分区的几个不同的标准Debian 8系统,没有问题。我的怀疑是,提示输入加密密码短语的代码不存在,或与启动屏幕徽标上放置的内容不兼容。(在系统启动过程中,我会收到一个文本模式的密码提示。)如果有机会,我将比较Pi和一台Debian笔记本电脑上的启动脚本。
cjs

关于DHCP。将其直接锁定在路由器上。不在设备上。否则,可能会很痛苦。
kuzeyron

我建议您看一下Robpol86的加密指南(robpol86.com/raspberry_pi_luks.html),当您在使用的指南中认识到一件事是,没有initramfs-rebuild脚本在每次内核更新后都运行。很长时间以来,我一直在许多Jessie和Stretch系统上使用Robpol指南,并且从未遇到任何问题。当然,该指南不会对您的空手问题有所帮助。
Stefan Wegener

Answers:


0

禁用任何启动屏幕,并在启动期间检查输出。确保在cmdline.txt(在/boot/cmdline.txt中)中rootwait logo.nologo nosplash

您的更新或initramfs一定存在问题。通过指向目标内核版本来确保包括适当的模块,如下所示: sudo mkinitramfs -o /boot/initramfs.gz -k -v 4.14.78-v7+ 这将针对已安装的特定版本的内核模块,并正确地从/ lib / modules /获取所有模块。

如果不匹配,则加载正确的内核模块可能会出现问题。还要检查您的initramfs-tools.conf和钩子/脚本。

关于IP,您可以使用“ IP =”内核引导参数来获得固定IP。但是最好在DHCP服务器(最有可能是您的路由器)上进行配置。


-1

尝试还原固件,然后重试:

还原给github commit哈希。

要升级/降级到特定的固件版本,请指定其Git哈希(来自https://github.com/Hexxeh/rpi-firmware存储库),如下所示:

须藤rpi更新fab7796df0cf29f9563b507a59ce5b17d93e0390


并尝试再次升级,请使用:

sudo apt-get update && sudo apt-get upgrade
sudo shutdown -r now

然后,在该过程完成之后,更新到下一个rpi-update:

sudo BRANCH=next rpi-update
sudo shutdown -r now

之后,您应该可以在此处使用说明

确保跳过前两个代码块,因为我刚刚修改了这些代码块并给出了上面的代码!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.