如何從可啟動 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/ 中的東西)。

進一步說明,當 chroot 時,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。

相關內容