崩溃后如何让 Ubuntu Gnome 16.04 启动?

崩溃后如何让 Ubuntu Gnome 16.04 启动?

我有一台配备英特尔酷睿 i3-4030u(第四代)的戴尔 Inspiron 15 3000 系列。

我双启动 Windows 10 Home 64 位和 Ubuntu Gnome 16.04(grub2 是引导加载程序)。

我正在使用 Chromium,突然间,Ubuntu 冻结并且没有响应。我进行了强制关机并尝试重新启动;但它没有进入 grub2 启动屏幕(您可以在其中选择启动 Ubuntu、Windows 或其他选项),而是进入 grub 提示符:

grub> 

如果我从 BIOS 中选择 Windows 启动管理器,它将启动;但 ubuntu 总是转到 grub 提示符。

当我使用该ls命令时,我得到以下输出:

(hd0) (hd0,gpt9) (hd0,gpt8) (hd0,gpt7) (hd0,gpt6) (hd0,gpt5) (hd0,gpt4) (hd0,gpt3) (hd0,gpt2) (hd0,gpt1) (hd1) error: failure reading sector 0x0 from hd1 

Ubuntu 安装在硬盘 0 (hd0,gpt8) 的第 8 个分区中。我只有 1 个硬盘,只有 1 个硬盘插槽,并且 CD-ROM 中没有任何东西;所以我不知道它为什么尝试访问 hd1。

我做了一些研究,并尝试使用以下命令手动启动:

grub> set root=(hd0,8)
grub> linux /boot/vmlinuz-4.10.0-30-generic root=/dev/sda8 ro
grub> initrd /boot/initrd.img-4.10.0-30-generic
grub> boot

我通过查看文件夹获得了 vmlinuz 和 initrd 版本/boot

当我输入这些命令时,系统会尝试启动,但出现了一些错误,说明 systemd 在启动服务时无法加载某些模块,因为它找不到文件或功能未实现。
此外,还出现了一个错误:

Aug 07 08:46:50 AlexUbuntu kernel: FAT-fs (sda1): IO charset iso8859-1 not found
Aug 07 08:46:50 AlexUbuntu systemd[1]: local-fs.target: Job local-fs.target/start failed with result 'dependency'.
Aug 07 08:46:50 AlexUbuntu systemd[1]: local-fs.target: Triggering OnFailure= dependencies.
Aug 07 08:46:50 AlexUbuntu systemd[1]: boot-efi.mount: Unit entered failed state.
Aug 07 08:46:50 AlexUbuntu systemd[1]: Starting Enable support for additional executable binary formats...

然后它继续启动服务。

然后它进入紧急模式。我通过输入访问了系统日志systemctl
它显示有两个错误,但其他一切都正常loaded active,还有一些其他状态,例如runningexited

...
boot-efi.mount                    loaded failed failed   /boot/efi
...
systemd-modules-load.service      loaded failed failed   Load Kernal Modules
...

当我使用以下命令时:

systemctl status systemd-modules-load.service

我得到了一些输出,其中包含:

Process: 378 ExecStart=/lib/systemd/system/systemd-modules-load (code=exited, status=1/FAILURE)

当我使用时:

systemctl status boot-efi.mount

我得到的输出包含:

Process 534: ExecMount=/bin/mount /dev/disk/by-uuid/6036-A092 /boot/did -t vfat -o umask=0077 (code=exited, status=32)
...
Aug 07 08:46:50 AlexUbuntu mount[537]: mount: wrong fs type, bad option, bad superblock on /dev/sda1,
                                              missing codepage or helper program, or other error

手动启动一次后,我现在得到了 grub2 启动屏幕来再次在启动选项之间进行选择,但是当我选择 ubuntu 时,它仍然会启动到紧急模式。

我读了一些关于手动配置 grub 配置文件的内容,但我不知道从哪里开始。

我可以做些什么让它再次成功启动,还是必须重新安装 Ubuntu?

编辑:

sudo blkid:(Windows 分区省略了 UUID 和 PARTUUID)

/dev/sda1: LABEL="ESP" UUID="6036-A092" TYPE="vfat" PARTLABEL="EFI system partiton" PARTUUID="2ad4eb64-f0c3-457a-9f95-8679a75333a5"
/dev/sda2: LABEL="DIAGS" TYPE="vfat" PARTLABEL="Basic data partition"
/dev/sda3: PARTLABEL="Microsoft Reserved Partiton"
/dev/sda4: LABEL="WINRETOOLS" TYPE="ntfs" PARTLABEL="Basic data partition"
/dev/sda5: LABEL="OS" TYPE="ntfs" PARTLABEL="Basic data partition"
/dev/sda6: TYPE="ntfs"
/dev/sda7: LABEL="PBR Image" TYPE="ntfs" PARTLABEL="Microsoft recovery partition"
/dev/sda8: UUID="421b08b9-5965-45d5-8490-48bd8bf373a5" TYPE="ext4" PARTUUID="c0172335-398f-4094-8344-fdad94a8e5da"
/dev/sda9: UUID="b9ddff1f-4da1-44c0-b9e1-0afe98c3109e" TYPE="swap" PARTUUID="744e5f85-28ed-4f38-b35b-9a3a2cd64494"

cat /etc/fstab:(文件开头的一些注释被省略)

# <file system> <mount point>   <type>  <options>        <dump>  <pass>
# / was on /dev/sda8 during installation
UUID=421b08b9-5965-45d5-8490-48bd8bf373a5 /      ext4   errors=remount-ro 0     1
# /boot/efi was on /dev/sda1 during installation
#UUID=6036-A092  /boot/efi        vfat   umask=0077       0       1
# swap was on /dev/sda9 during installation
UUID=b9ddff1f-4da1-44c0-b9e1-0afe98c3109e  none  swap sw  0       0
UUID=6036-A092   /boot/efi        vfat   defaults         0       1

free -h

      total    used     free   shared  buff/cache   available
Mem:   3.8G     33M     3.5G     5.9M       241M        3.5G
Swap:  3.9G      0B     3.9G

swapon -s

Filename     Type       Size    Used     Priority
/dev/sda9    partition  4095996   0         -1

sudo fdisk -l

Disk /dev/sda: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 554B9E62-9C74-4A35-8CDE-6F87341A0BE1

Device         Start       End  Sectors  Size Type
/dev/sda1       2048   1026047  1024000  500M EFI System
/dev/sda2    1026048   1107967    81920   40M unkown
/dev/sda3    1107968   1370111   262144  128M Microsoft Reserved
/dev/sda4    1370112   2906111  1536000  750M Windows recovery environment
/dev/sda5    2906112 577532275 574626164 274G Microsoft basic data
/dev/sda6  952780800 953747455    966656 472M Windows recovery environment
/dev/sda7  953747456 976771119  23023664  11G Windows recovery environment
/dev/sda8  577533952 944588799 367054848 175G Linux filesystem
/dev/sda9  944588800 952780799   8192000 3.9G Linux swap

Partition table entries are not in disk order

以下是 gparted 的屏幕截图:

截屏


编辑2:

这些是我在日志中发现的更多错误(journalctl -xb):

kernel: PCCT header not found

ACPI: [Firmware Bug]: BIOS _OSI(Linux) query ignored

kernel: (NULL device *): hwmon_device_register() is deprecated.  Please convert the driver to use hwmon_device_register_with_info().

kernel: r8169 000:07:00.0: can't disable ASPM; OS doesn't have ASPM control

Failed to insert module 'autofs4': No such file or directory

Starting of Arbitrary Executable File Formats System Automount Point not supported

systemd[1]: dev-disk-by\x2dpartlabel-Basic\x5cx20data\x5cx20partition.device: Dev dev-disk-by\x2dpartlabel-Basic\x5cx20data\x5cx20partition.dev


我认为这是主要问题:

[FAILED] Failed to start Load Kernal Modules.
See 'systemctl status systemd-modules-load.service' for details.


systemctl status systemd-modules-load.service输出:

 systemd-modules-load.service - Load Kernel Modules
   Loaded: loaded (/lib/systemd/system/systemd-modules-load.service; static; vender preset: enabled)
   Active: failed (Result: exit-code) since Mon 2017-08-07 15:21:20 EDT; 11min ago
      Docs: man:systemd-modules-load.service(8)
            man:modules-load.d(5)
 Process: 374 ExecStart=/lib/systemd/systemd-modules-load (code=exited, status=1/FAILURE)
 Main PID: 374 (code=exited, status=1/FAILURE)

systemd[1]: Starting Load Kernel Modules...
systemd[1]: systemd-modules-load.service: Main process exited, code=exited, status=1/FAILURE
systemd[1]: Failed to start Load Kernel Modules.
systemd[1]: systemd-modules-load.service: Unit entered failed state
systemd[1]: systemd-modules-load-service: Failed with result 'exit-code'.


编辑3:

我使用的是 vmlinuz 和 initrd 版本 4.10.0-30-generic。当我使用 4.10.0-27-generic 启动时,仍然出现有关 Kernal Load Modules 的错误,但启动成功。

但是启动几秒后就出现了系统程序错误,我报告了这个问题,然后它说 Ubuntu 16.04 遇到了内部错误。

软件包 colord 崩溃了,它说原因是软件包过时了,我需要更新一些软件包。

我更新的一些软件包是:systemd、libsystemd0、libpam-systemd 和 libkmod2

现在它在 vmlinuz 和 initrd 版本 4.10.0-27-generic 和 4.10.0-30-generic 中成功启动。

答案1

我通过启动不同的内核版本并更新软件包来解决了这个问题。

要使用不同的内核版本启动:

在 grub2 启动菜单上,不要选择 ubuntu 或 Windows 启动管理器,而是选择 Ubuntu 的高级选项;然后选择您拥有的第二最新版本(不是恢复模式)。

要更新软件包:

打开终端并输入:

sudo apt install --upgrade systemd libsystemd0 libpam-systemd libkmod2

相关内容