我的计算机从 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。