Ubuntu 更新導致系統在啟動時凍結在紫色螢幕上。恢復模式失敗並啟動 BusyBox

Ubuntu 更新導致系統在啟動時凍結在紫色螢幕上。恢復模式失敗並啟動 BusyBox

我搜尋了現有的問題,但沒有解決我的問題。

我運行 Ubuntu 14.04 的系統幾天前進行了部分更新。從那時起,我的系統就無法啟動了。它凍結在紫色螢幕上。 (普利茅斯?)當我嘗試啟動恢復時,出現“放棄等待 root”錯誤以及大量 libkmod 錯誤。

我已從 liveCD 啟動並嘗試進行一些故障排除。我可以從那裡掛載根分割區並進行 chroot。我檢查了 /var/log/boot 並發現了 2 個小故障 - samba 和 ksplice - 沒有什麼會阻止啟動。將引導分割區安裝到 /boot 後,我嘗試使用以下命令重新安裝 grub:

sudo grub-install --efi-directory=/boot /dev/sdc

不幸的是,這會產生與我嘗試恢復時出現的相同的 libkmod 錯誤。 (我有 efi,不是 BIOS)

恢復結束的結果如下:

Gave up waiting for root device. Common problems: 
- Boot args (cat /proc/cmdline) 
- Check rootdelay= (did the system wait long enough?) 
- Check root= (did the system wait for the right device?) 
- Missing modules (cat /proc/modules; Is /dev) 
ALERT! /dev/mapper/ubuntu--vg-root does not exist. Dropping to a shell! 
libkmod: ERROR ../libkmod/libkmod-config.c:686 kmod_config_parse: /etc/modprobe.d/zfs.conf line 2: ignoring bad line starting with '#' 
libkmod: ERROR ../libkmod/libkmod-config.c:686 kmod_config_parse: /etc/modprobe.d/zfs.conf line 3: ignoring bad line starting with '#' 
libkmod: ERROR ../libkmod/libkmod-config.c:686 kmod_config_parse: /etc/modprobe.d/zfs.conf line 4: ignoring bad line starting with '#' 
libkmod: ERROR ../libkmod/libkmod-config.c:686 kmod_config_parse: /etc/modprobe.d/zfs.conf line 5: ignoring bad line starting with '#'
libkmod: ERROR ../libkmod/libkmod-config.c:686 kmod_config_parse: /etc/modprobe.d/zfs.conf line 2: ignoring bad line starting with '#' 
libkmod: ERROR ../libkmod/libkmod-config.c:686 kmod_config_parse: /etc/modprobe.d/zfs.conf line 3: ignoring bad line starting with '#' 
libkmod: ERROR ../libkmod/libkmod-config.c:686 kmod_config_parse: /etc/modprobe.d/zfs.conf line 4: ignoring bad line starting with '#' 
libkmod: ERROR ../libkmod/libkmod-config.c:686 kmod_config_parse: /etc/modprobe.d/zfs.conf line 5: ignoring bad line starting with '#'
libkmod: ERROR ../libkmod/libkmod-config.c:686 kmod_config_parse: /etc/modprobe.d/zfs.conf line 2: ignoring bad line starting with '#' 
libkmod: ERROR ../libkmod/libkmod-config.c:686 kmod_config_parse: /etc/modprobe.d/zfs.conf line 3: ignoring bad line starting with '#' 
libkmod: ERROR ../libkmod/libkmod-config.c:686 kmod_config_parse: /etc/modprobe.d/zfs.conf line 4: ignoring bad line starting with '#' 
libkmod: ERROR ../libkmod/libkmod-config.c:686 kmod_config_parse: /etc/modprobe.d/zfs.conf line 5: ignoring bad line starting with '#'

我安裝了 ZFS,但啟動磁碟機不是 ZFS。我不明白為什麼註解掉的行會被解釋為不好。

這是我的 fstab:

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/mapper/ubuntu--vg-root /               ext4    errors=remount-ro 0       1
# /boot was on /dev/sdb2 during installation
UUID=10d83bf1-14a9-40bf-8ada-7ffbf6220bf9 /boot           ext2    defaults
  0       2
# /boot/efi was on /dev/sdb1 during installation
UUID=BD9B-EA73  /boot/efi       vfat    defaults        0       1
/dev/mapper/ubuntu--vg-swap_1 none            swap    sw              0       0

並分離了我的啟動驅動器的資訊:

Model: ATA Corsair CSSD-V32 (scsi)
Disk /dev/sdc: 32.0GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  538MB   537MB   fat32              boot
 2      538MB   794MB   256MB   ext2
 3      794MB   32.0GB  31.2GB                     lvm

我沒有安裝其他作業系統。我嘗試從 liveCD 重新安裝,但它無法識別我現有的安裝 - 即使在我手動掛載根分割區之後也是如此。我寧願避免從頭開始重新安裝,並且很想了解是什麼原因導致了這種情況,以提高我自己的 Linux 知識。任何幫助將不勝感激。

答案1

當您 chroot 進入系統時,重新產生您的初始 RAM 磁碟。

可能是缺少模組導致此問題。

update-initramfs -k all -c

在 chroot 之前, mount /dev/proc/sys在 chroot 內部:

mount -t proc /proc /mnt/proc
mount -o bind /dev /mnt/dev
mount -o bind /sys /mnt/sys

我在這裡假設您已將磁碟安裝到/mnt.根據我的經驗,此類錯誤 90% 與 ramdisk 中缺少模組有關。

另外我建議使用 chroot 繼續失敗的升級

dpkg --configure -a
apt-get -f install
apt-get upgrade

答案2

我在上次更新期間遇到此錯誤,所以我從未重新啟動。為了解決這個問題,我刪除了該文件,/etc/modprobe.d/zfs.conf因為我是添加該文件的人,而且我並不真正需要它。然後我跑了:

update-initramfs -k all -c

現在似乎已準備好重新啟動。

相關內容