如何从可启动 USB 运行 update-initramfs?

如何从可启动 USB 运行 update-initramfs?

我的计算机从 ubuntu 12.04 升级到 14.04 时死机了。

这导致重启时出现内核恐慌。

/sbin/init: relocation error: /lib/i386-linux-gnu/librt.so.1: symbol__clock_nanosleep, version GLIBC_PRIVATE not defined in file libc.so.6 with link time reference.

[随后出现一些内核恐慌]

我从 USB 启动并通过 chroot 进入驱动器并运行完成升级:(sudo apt-get dist-upgrade 以及如下所述的一些其他命令:在 Ubuntu 发行版升级期间从关机状态恢复

基本上它似乎已经完成升级,但它没有产生新的启动映像:update-initramfs is disabled since running on read-only media

由于我无法启动旧版本的内核,有没有办法从 USB 生成新的启动映像(即 /boot/ 中的某些内容)。

进一步澄清的是,当 chrooted 时,uname -a会产生更新的内核,但驱动器的 /boot 中没有相应的内核映像。

可以使用一些建议。

答案1

我曾有一个类似问题涉及错误update-initramfs is disabled since running on read-only media消息。如果您查看该脚本,您会发现它只是一个包装脚本mkinitramfs

whereis update-initramfs
update-initramfs: /usr/sbin/update-initramfs …
gedit /usr/sbin/update-initramfs

因此你可以mkinitramfs直接调用:

mkinitramfs -o /boot/initrd.img-${kernel_ver}-generic ${kernel_ver}-generic

有关从实时媒体/chroot 重新安装内核和 initrd 映像的更多详细信息,请参阅上面的链接。

答案2

您提到chroot进入新的 ubuntu 安装。运行

sudo update-initramfs -u -k all

全部从内部chroot

答案3

在 Linux Mint 的 Live CD 上,有一个用于安装的 update-initramfs 副本。它被重命名为“update-initramfs.distrib”。您可以运行它来重新创建您的 initrd。

相关内容