Ubuntu16.04 突然启动到纯文本(initramfs)提示符,恢复超级块无法解决该问题

Ubuntu16.04 突然启动到纯文本(initramfs)提示符,恢复超级块无法解决该问题

所以我认为我面临的是超级块损坏(我认为这是因为故意硬重启/不干净重启而发生的)。但是,按照链接问题的第一个被接受的答案中的指南,通过恢复备用超级块,系统仍然启动到(initramfs)。[注意:按照fsck该答案中的建议操作后,我可以成功挂载文件系统并从中复制内容,并在其中创建一个具有 sudo 权限的文件夹。]

一开始,我在 (initramfs) 提示符之前没有收到任何文本,除了:

BusyBox v.1.22.1 (Ubuntu 1:1.22.0-15ubuntu1) built-in shell (ash)
Enter 'help' for a list of build-in commands.

但现在我有时也会遇到这种情况:

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; ls /dev)
ALTER! /dev/mapper/ubuntu--vg-root does not exist. Dropping to a shell!

那么,既然恢复超级块不起作用,我有什么选择来修复我的启动?我想我可以尝试从 LiveCD/LiveUSB 重新安装 Ubuntu,但我必须添加一个增加额外复杂性的方面:我的主硬盘分区已加密(使用默认的 Ubuntu 方式,我猜这叫做 LUKS)。

有没有办法修复启动问题而无需重新安装?或者重新安装而不清除所有内容?我应该通过查看启动日志来调试我的问题吗?(如果是,它们在哪里?)

从 LIVE ubuntu USB ISO 启动,我可以发出命令fdisk -l /dev/sda,结果是:

Disk /dev/sda: 447.1 GiB, 480103981056 bytes, 937703088 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x60229a0a

Device     Boot   Start       End   Sectors   Size Id Type
/dev/sda1  *       2048    999423    997376   487M 83 Linux
/dev/sda2       1001470 937701375 936699906 446.7G  5 Extended
/dev/sda5       1001472 937701375 936699904 446.7G 83 Linux

结果如下sudo blkid -c /dev/null

/dev/loop0: TYPE="squashfs"
/dev/sda1: UUID="7ec61194-f216-4f1b-b684-5b2e2d643c25" TYPE="ext2" PARTUUID="60229a0a-01"
/dev/sda5: UUID="11613ca4-65f2-4079-a750-6f71b6318903" TYPE="crypto_LUKS" PARTUUID="60229a0a-05"
/dev/sdb: UUID="674B-9411" TYPE="vfat"

值得一提的是,如果我通过 nautilus 安装加密驱动器,我可以在编辑器中打开 /etc/fstab,内容如下:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/mapper/ubuntu--vg-root /               ext4    errors=remount-ro 0       1
# /boot was on /dev/sda1 during installation
UUID=7ec61194-f216-4f1b-b684-5b2e2d643c25 /boot           ext2    defaults        0       2
/dev/mapper/ubuntu--vg-swap_1 none            swap    sw              0       0

更新:如果我shift在 grub 启动时按下,那么在启动到(initramfs)之前我可以看到一些选项:

  1. Ubuntu
  2. Ubuntu 的高级选项
  3. 内存测试(memtest86+)
  4. 内存测试(memtest86+,串行控制台 115200)

如果我选择第一个,那么我就会得到 (initramfs) 启动。如果我选​​择第二个,则会显示更多选项:

  1. Ubuntu,使用 Linux 4.4.0-28-generic
  2. Ubuntu,带有 Linux 4.4.0-28-generic(upstart)
  3. Ubuntu,带有 Linux 4.4.0-28-generic(恢复模式)
  4. Ubuntu,使用 Linux 4.4.0-24-generic
  5. Ubuntu,带有 Linux 4.4.0-24-generic(upstart)
  6. Ubuntu,带有 Linux 4.4.0-24-generic(恢复模式)

如果我在这里选择 1,结果也是 (initramfs) 提示。

但是如果我选择选项 (4),计算机会要求我输入加密密码并正常启动!!那么,我猜内核 4.4.0-28 有问题,如何摆脱它并将其标记-24为默认值?

答案1

按照建议重新安装有故障的内核这里,没用。

删除有问题的内核工作(在启动时按下 SHIFT 键,启动一个可以工作的系统),如另一个答案

相关内容