旧的 Ubuntu 镜像无法启动

旧的 Ubuntu 镜像无法启动

几周前我升级到了 19.04,现在我正尝试暂时降级到 18.04。

我使用 btrfs 备份将系统备份到外部驱动器,然后将旧的 18.04@@home目录放回原始驱动器。它们都贴上了适当的标签(并不是说我忘记从备份名称中重命名它们),并且它们都是使用 btrfs property

但是我无法让 grub 启动它。我甚至尝试使用典型方法从 grub 命令行启动,但当系统基本启动完毕时,我卡住了,但我收到了一个额外的终端,说没有找到 init,我不知道从那里该怎么做。

我也尝试grub-install手动设置 --boot-directory 和 --efi-directory,但没有成功。

我只需要让系统启动一次就可以恢复加密数据,所以如果你告诉我只需在 grub 命令行上执行某些操作即可启动系统,那么我没问题。不过,一般解决方案也很好。

这是我在 grub 中选择默认选项时的屏幕:单击图像可查看更大版本。 错误

编辑1:还有这个错误:

 kubuntu@kubuntu:/mnt/sdc$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0    7:0    0   1.7G  1 loop /rofs
sda      8:0    0 931.5G  0 disk 
└─sda1   8:1    0 931.5G  0 part 
sdb      8:16   0  22.4G  0 disk 
sdc      8:32   0 465.8G  0 disk 
├─sdc1   8:33   0   512M  0 part /mnt/sdc/@/boot/efi
└─sdc2   8:34   0 465.3G  0 part /mnt/sdc
sdd      8:48   0 931.5G  0 disk 
sde      8:64   1  14.9G  0 disk /cdrom
├─sde1   8:65   1   1.8G  0 part 
└─sde2   8:66   1   3.7M  0 part 
sdf      8:80   1   1.9G  0 disk 
└─sdf1   8:81   1   1.9G  0 part 
sr0     11:0    1  1024M  0 rom  
sr1     11:1    1     7M  0 rom  
kubuntu@kubuntu:/mnt/sdc$ sudo grub-install --boot-directory=@/boot/ --efi-directory=@/boot/efi/
Installing for x86_64-efi platform.
Installation finished. No error reported.
kubuntu@kubuntu:/mnt/sdc$ sudo update-grub
/usr/sbin/grub-probe: error: failed to get canonical path of `/cow'.

编辑2:

我发现自从安装 19.04 以来,硬盘的 UUID 已经发生了变化,所以我在 /mnt/sdc2/@/etc/fstab 中更改了它。奇怪的是,在 grub 启动时,错误提示中仍然显示旧的 UUID。我想可能是因为旧的 fstab 出了问题,所以我使用 efibootmgr 删除了启动项,然后使用 --boot-directory 和 --efidirectory 参数执行了 grub 安装过程。

Grub-install 运行顺利,没有任何错误,但在启动时仍然产生相同的错误。仍然不确定发生了什么。也无法手动启动。

以下是一些正在发生的事情的图片:(手动启动) 手动启动

(手动启动的结果) 结果

fstab:

# <file system> <mount point> <type> <options> <dump> <pass>

#Lesser Ark
UUID=8b2f117e-ed70-4405-9524-cac9c249da01    /            btrfs    defaults,noatime,nodiratime,compress=lzo,ssd,subvol=@        0    1
#UUID=423F-051C                               /boot/efi    vfat     umask=0077               0    1
UUID=8b2f117e-ed70-4405-9524-cac9c249da01    /home        btrfs    defaults,noatime,nodiratime,compress=zstd,ssd,subvol=@home    0    2
#UUID=45f9fe6b-ae81-47c7-bbd7-f9ca4ac66060    none         swap     sw                       0    0
#UUID=423F-051C    /boot/efi    vfat    defaults    0    1

#ELYSIUM
UUID=0f834b1e-78a4-4b8b-9528-3b6c3f5ae37b /media/sarah/ELYSIUM btrfs defaults,noauto,space_cache,compress=zstd,autodefrag,subvol=EternalFields    0    0

#SENTINEL
UUID=38e88d7b-d527-4784-8060-cfa456c27b13 /media/sarah/SENTINEL btrfs defaults,noauto,space_cache,compress=zstd 0 0

#Convergent Refuge
UUID=bae62e15-46d2-4aa4-84de-5f8bdd93c3e2 /media/sarah/ConvergentRefuge btrfs defaults,noatime,space_cache,compress=zstd 0 0

BLKIDD:

kubuntu@kubuntu:/mnt$ sudo blkid
/dev/sda1: LABEL="Convergent Refuge" UUID="bae62e15-46d2-4aa4-84de-5f8bdd93c3e2" UUID_SUB="55c809a3-a971-4736-94ef-a11e7f1a6172" TYPE="btrfs" PARTLABEL="Convergent Refuge" PARTUUID="9c3a4912-6cd5-4155-a78f-6356f1acb874"
/dev/sdc1: LABEL_FATBOOT="L_ARK_EFI" LABEL="L_ARK_EFI" UUID="423F-051C" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="78554a15-d0ad-4253-870d-2e13f9d5c1d8"
/dev/sdc2: UUID="8b2f117e-ed70-4405-9524-cac9c249da01" UUID_SUB="684c8b61-6133-4e74-a756-314c6c8c5054" TYPE="btrfs" PARTLABEL="Lesser Ark" PARTUUID="611080a8-55e8-4523-9128-bb5cc31c7750"
/dev/sdd: LABEL="SENTINEL" UUID="38e88d7b-d527-4784-8060-cfa456c27b13" UUID_SUB="719dea99-2f2d-4f58-acc1-fd959ca84c14" TYPE="btrfs"
/dev/loop0: TYPE="squashfs"
/dev/sdb: PTUUID="5f43f34d-52f6-4eeb-acd7-8dcc866c752d" PTTYPE="gpt"
/dev/sde1: UUID="2019-04-16-19-25-03-00" LABEL="Kubuntu 19.04 amd64" TYPE="iso9660" PTUUID="5ed9fb2f" PTTYPE="dos" PARTUUID="5ed9fb2f-01"
/dev/sde2: SEC_TYPE="msdos" UUID="039E-EF17" TYPE="vfat" PARTUUID="5ed9fb2f-02"
/dev/sdf1: SEC_TYPE="msdos" UUID="8B27-5FEE" TYPE="vfat"
/dev/sr1: UUID="2007-02-13-02-23-10-" LABEL="U3 System" TYPE="iso9660"

读写确认:

kubuntu@kubuntu:/mnt/chrootdir$ sudo btrfs property get @
ro=false
kubuntu@kubuntu:/mnt/chrootdir$ sudo btrfs property get @home
ro=false

答案1

你的分区表让我害怕。

尝试使用 live cd 挂载您的备份,然后 chroot 到其中:

例如,如果 /dev/sda1 是您的根分区,而 /dev/sda2 是您的启动分区:

sudo mount /dev/sda1 /mnt
sudo mount /dev/sda2 /mnt/boot # 如果你没有单独的启动 fs,请跳过此步骤
sudo mount -t proc 无 /mnt/proc
sudo mount -o bind /dev /mnt/dev
sudo mount -o bind /sys /mnt/sys
sudo chroot/mnt

然后尝试更新 grub 的设备映射及其配置:

grub-mkdevicemap
更新-grub2

对于 efi 引导程序,您可能需要重新安装 grub-efi:

apt-get install --reinstall grub-efi

在你的设置中这可能有点棘手,但也许https://help.ubuntu.com/community/Boot-Repair有助于。

以防紧急情况。我的意思是,从头开始安装全新的 18.04 并 rsync -av --从备份中删除除 /proc、/sys、/dev 和 /boot 之外的所有内容。

相关内容