在升级 Linux 内核包时出现一些错误apt
(包括存储映像的启动分区上的磁盘空间不足)后,我无法再启动。
首先,在我的设置中:我有一个硬盘,/dev/sda
带有一个启动分区/dev/sda1
(这是内核映像存储的位置,并被挂载到 /boot)。“根”分区是/dev/mapper/ubuntu--vg--usbkey-root
。
更确切地说:
$ sudo fdisk -l /dev/sda
Disk /dev/sda: 465.8 GiB, 500107862016 bytes, 976773168 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: 0x00000000
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 499711 497664 243M 83 Linux
/dev/sda2 501758 976771071 976269314 465.5G 5 Extended
/dev/sda5 501760 976771071 976269312 465.5G 8e Linux LVM
$ ls /dev/mapper
control ubuntu--vg--usbkey-root ubuntu--vg--usbkey-swap_1
$ sudo lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root ubuntu-vg-usbkey -wi-a----- 457.51g
swap_1 ubuntu-vg-usbkey -wi-a----- <7.96g
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 1.7G 1 loop /rofs
loop1 7:1 0 86.6M 1 loop /snap/core/4486
loop2 7:2 0 140M 1 loop /snap/gnome-3-26-1604/59
loop3 7:3 0 1.6M 1 loop /snap/gnome-calculator/154
loop4 7:4 0 12.2M 1 loop /snap/gnome-characters/69
loop5 7:5 0 21M 1 loop /snap/gnome-logs/25
loop6 7:6 0 3.3M 1 loop /snap/gnome-system-monitor/36
sda 8:0 0 465.8G 0 disk
├─sda1 8:1 0 243M 0 part
├─sda2 8:2 0 1K 0 part
└─sda5 8:5 0 465.5G 0 part
├─ubuntu--vg--usbkey-root
│ 253:0 0 457.5G 0 lvm /mnt
└─ubuntu--vg--usbkey-swap_1
253:1 0 8G 0 lvm
sdb 8:16 1 1.9G 0 disk /cdrom
├─sdb1 8:17 1 1.8G 0 part
└─sdb2 8:18 1 2.3M 0 part
sr0 11:0 1 1024M 0 rom
我最后一次尝试是按照本文。
所以我做了以下事情:
$ sudo mount /dev/sda1 /mnt/boot/
$ sudo mount /dev/mapper/ubuntu--vg--usbkey-root /mnt/
$ sudo mount -t proc none /mnt/proc
$ sudo mount -o bind /dev /mnt/dev
$ sudo mount -t sysfs sys /mnt/sys
$ sudo chroot /mnt
# update-grub
Generating grub configuration file ...
Warning: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported.
Found linux image: /boot/vmlinuz-4.4.0-127-generic
Found initrd image: /boot/initrd.img-4.4.0-127-generic
Found linux image: /boot/vmlinuz-4.4.0-124-generic
Found initrd image: /boot/initrd.img-4.4.0-124-generic
Found linux image: /boot/vmlinuz-4.4.0-116-generic
Found initrd image: /boot/initrd.img-4.4.0-116-generic
Found memtest86+ image: /memtest86+.elf
Found memtest86+ image: /memtest86+.bin
/run/lvm/lvmetad.socket: connect failed: No such file or directory
WARNING: Failed to connect to lvmetad. Falling back to internal scanning.
done
这个警告有问题吗?无论如何,我随后做了以下事情:
# /usr/sbin/grub-install --recheck --no-floppy /dev/sda
Installing for i386-pc platform.
Installation finished. No error reported.
然后我重新启动,然后出现(initramfs)
提示。屏幕上显示以下错误消息:
fsck: error 2 (No such file or directory) while executing fsck.ext2 for /dev/sda1
但是,我从可启动 USB 密钥进行了检查/dev/sda1
,fsck
并且它没有报告任何错误... 也一样/dev/sda5/
。
此外,命令
(initramfs) ls /root
报告的内容/dev/sda1
。但是,除了预期的内容外,还有一个目录/root/boot/grub
:
(initramfs) ls /root/boot/grub
fonts locale grubenv i386-pc
跑步
(initramfs) exit
带我进入一个屏幕,最后
end Kernel panic - not syncing: Attempted to kill init!
这一切对我来说相当令人困惑。任何建议都值得赞赏。
答案1
首先,如果您的启动分区占满 243MB,我怀疑您的启动分区中至少有一个备份内核。您是否尝试过进入 grub 的高级启动选项并从较旧的内核版本启动以查看它是否可以启动?(在启动期间按住 shift 键即可在 Ubuntu 上显示 grub 菜单)
从您已经尝试过的情况来看,尽管这些命令通常对于修复无法启动的系统很有用,但(据我所知)没有一个会减少使用的空间或增加启动分区的空间容量。
我的第一个猜测是你的启动分区无法容纳新内核的整个文件,但不完整的内核被设置为 grub 中的主要启动选项。