几周前我升级到了 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 之外的所有内容。