移动分区后未找到 Fedora 的可启动设备

移动分区后未找到 Fedora 的可启动设备

需要提醒的是:我缺乏经验,在尝试从 Fedora 双启动 Windows 时移动了一些分区,我没有记下自己在做什么,因此只能从当前情况开始工作,而没有可以追溯到的。我知道我应该备份,但我们现在就是这样。

当我尝试从启动菜单启动到 DELL Inspiron 7400 上的 Fedora 文件系统时,我收到一个No bootable devices found error

我目前正在通过实时 USB 使用 Fedora。

输出sudo fdisk -l

Disk /dev/nvme0n1: 476.94 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: KBG40ZNS512G NVMe KIOXIA 512GB          
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: gpt
Disk identifier: 3A1641E9-8A61-4571-84A5-5A4B01FE1FEF

Device             Start        End   Sectors   Size Type
/dev/nvme0n1p1      2048    1230847   1228800   600M EFI System
/dev/nvme0n1p2   1230848    3327999   2097152     1G Linux filesystem
/dev/nvme0n1p3   3328000  481832959 478504960 228.2G Linux filesystem
/dev/nvme0n1p4 481832960 1000214527 518381568 247.2G Microsoft basic data
GPT PMBR size mismatch (3979243 != 240328703) will be corrected by write.
The backup GPT table is not on the end of the device.

lsblk -f相关驱动器的输出:

NAME        FSTYPE   FSVER            LABEL                 UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
nvme0n1                                                                                                         
├─nvme0n1p1 exfat    1.0                                    E3FF-EA47                                           
├─nvme0n1p2 ext4     1.0                                    98871ee5-1638-4cce-ad50-8668e8ddca31                
├─nvme0n1p3 btrfs                     fedora_localhost-live 2f90f992-e665-42ac-b8d0-0452f56c3413                
└─nvme0n1p4 exfat    1.0                                    67ED-F63F     

nvme0n1p3是我正在尝试恢复的 Fedora 文件系统。

nvme0n1p4是我之前创建的分区,用于存储 Windows 10。

/etc/fstab要显示I 挂载的内容nvme0n1p3和其他相关的虚拟文件系统

$ mount -t btrfs -o subvol=root,compress=zstd:1 UUID=2f90f992-e665-42ac-b8d0-0452f56c3413 /mnt
$ for dir in sys proc run dev ; do mount --bind /$dir /mnt/$dir ; done 

并进入已安装操作系统的 chroot 环境。

$ chroot /mnt

当前挂载的分区是

$ mount
/dev/nvme0n1p3 on / type btrfs (rw,relatime,seclabel,compress=zstd:1,ssd,space_cache=v2,subvolid=257,subvol=/root)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,size=3218672k,nr_inodes=819200,mode=755,inode64)
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=4096k,nr_inodes=1048576,mode=755,inode64)
/dev/nvme0n1p2 on /boot type ext4 (rw,relatime,seclabel)
/dev/nvme0n1p3 on /home type btrfs (rw,relatime,seclabel,compress=zstd:1,ssd,space_cache=v2,subvolid=256,subvol=/home)

/boot/efi未安装。当我尝试安装它时,我得到了

$ mount /boot/efi
mount: /boot/efi: wrong fs type, bad option, bad superblock on /dev/nvme0n1p1, missing codepage or helper program, or other error.
       dmesg(1) may have more information after failed mount system call.

从chroot环境来看,内容/etc/fstab是:

UUID=2f90f992-e665-42ac-b8d0-0452f56c3413 /                       btrfs   subvol=root,compress=zstd:1 0 0
UUID=98871ee5-1638-4cce-ad50-8668e8ddca31 /boot                   ext4    defaults        1 2
UUID=E3FF-EA47 /boot/efi               vfat    umask=0077,shortname=winnt 0 2
UUID=2f90f992-e665-42ac-b8d0-0452f56c3413 /home                   btrfs   subvol=home,compress=zstd:1 0 0
/dev/disk/by-id/usb-USB_SanDisk_3.2Gen1_01014b4983299e0e5a6c1f9f3d81280741420402818084341748ec522098bd28ad3d0000000000000000000034beffdcff0c520091558107b7ad0543-0:0 /mnt/usb-USB_SanDisk_3.2Gen1_01014b4983299e0e5a6c1f9f3d81280741420402818084341748ec522098bd28ad3d0000000000000000000034beffdcff0c520091558107b7ad0543-0:0 auto nosuid,nodev,nofail,x-gvfs-show 0 0

我一直在尝试修复此问题,并尝试了以下方法:

  • nvme0n1p1(标记为 EFI 分区)在nfts问题首次发生时被格式化,根据在线建议,我exfat使用 Gparted重新格式化了它
  • 然后我再手动安装nvme0n1p1/boot/efi
  • 最后,我更改了 UUIDetc/fstab以匹配此。这是显示的当前 UUID nvme0n1p1

答案1

在我看来,您已经破坏了 Windows UEFI 分区($ mount /boot/efi)。

此时最好的办法是正确地重新安装 Windows,以便它能生成所需的 Windows 分区。

然后将 Fedora 放入虚拟机中,这样您就不必在尝试学习其他操作系统时抨击 Windows。我这样做了,效果非常好。

相关内容