Ubuntu のアップデートにより、起動時に紫色の画面でシステムがフリーズしました。リカバリモードが失敗し、BusyBox が表示されます。

Ubuntu のアップデートにより、起動時に紫色の画面でシステムがフリーズしました。リカバリモードが失敗し、BusyBox が表示されます。

既存の質問を検索しましたが、私の問題に対処するものはありませんでした。

Ubuntu 14.04 を実行している私のシステムは、数日前に部分的なアップデートを受けました。それ以来、私のシステムは起動しません。紫色の画面でフリーズします。(plymouth?) リカバリを起動しようとすると、多数の libkmod エラーとともに「ルートの待機を諦めました」というエラーが表示されます。

ライブ CD から起動し、トラブルシューティングを試みました。そこからルート パーティションをマウントして chroot できます。/var/log/boot をチェックしたところ、samba と ksplice という 2 つの小さな障害が見つかりました。起動を妨げるものはありません。ブート パーティションを /boot にマウントした後、次のように grub を再インストールしてみました。

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

残念ながら、これにより、リカバリを試みたときに表示されるのと同じ libkmod エラーが発生します。(BIOS ではなく、efi を使用しています)

回復は次のように終了します。

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

ブートドライブのparted情報:

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

他の OS はインストールしていません。ライブ CD から再インストールしようとしましたが、ルート パーティションを手動でマウントした後でも、既存のインストールが認識されません。最初から再インストールするのは避けたいので、Linux の知識を深めるために、何が原因なのかを知りたいです。どんな助けでもいただければ幸いです。

答え1

システムに chroot したら、初期 RAM ディスクを再生成します。

この問題が発生する原因は、モジュールの欠落である可能性があります。

update-initramfs -k all -c

chroot する前に、マウントして/devchroot内に入ります。/proc/sys

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

そして、再起動の準備が整ったようです。

関連情報