当我尝试从我的 SSD(其中包含我的 Arch Linux 分区)扩展分区时,Windows 将其转换为动态驱动器,这搞乱了我的 GRUB 启动,因为 Linux 显然无法读取动态驱动器。我按照几篇帖子中的建议,使用 AOMEI 分区助手恢复为简单驱动器。
但是,它似乎弄乱了分区表,因为我仍然无法启动 GRUB,并且当从可启动 USB 检查时,gdisk 显示 MBR 和 GPT 分区表都可用。以下是 gdisk 的所有输出:
磁盘信息:
[[email protected] ~]$ sudo gdisk /dev/nvme0n1
GPT fdisk (gdisk) version 1.0.9.1
Partition table scan:
MBR: MBR only
BSD: not present
APM: not present
GPT: present
Found valid MBR and GPT. Which do you want to use?
1 - MBR
2 - GPT
3 - Create blank GPT
膜生物反应器:
Disk /dev/nvme0n1: 1953525168 sectors, 931.5 GiB
Model: Samsung SSD 970 EVO Plus 1TB
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 1A0E603E-51F0-4487-B502-11E625DF814E
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 1953525134
Partitions will be aligned on 2048-sector boundaries
Total free space is 211840366 sectors (101.0 GiB)
Number Start (sector) End (sector) Size Code Name
1 1426096128 1427144703 512.0 MiB 0700 Microsoft basic data
2 1427144704 1741717503 150.0 GiB 0700 Microsoft basic data
5 32768 1426096126 680.0 GiB 0700 Microsoft basic data
谷氨酰胺磷酸酶:
Disk /dev/nvme0n1: 1953525168 sectors, 931.5 GiB
Model: Samsung SSD 970 EVO Plus 1TB
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): A9089CC8-91CB-4A00-AB2F-F39D643718A8
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 1953525134
Partitions will be aligned on 8-sector boundaries
Total free space is 211807631 sectors (101.0 GiB)
Number Start (sector) End (sector) Size Code Name
1 34 2081 1024.0 KiB 4201 LDM metadata partition
2 2082 32767 15.0 MiB 0C01 Microsoft reserved ...
3 32768 1426096127 680.0 GiB 4200 LDM data partition
4 1426096128 1427144703 512.0 MiB EF02
5 1427144704 1741717503 150.0 GiB 8300
看来 GPT 表是在我转换回简单卷之前创建的,因为它和以前一样包含 LDM 数据。在磁盘转换为动态之前,MBR 表的分区分布方式是正确的,但所有分区都显示为 Microsoft 基本数据,所以我不确定是否应该回滚到那个状态。
打开驱动器时gparted
一切正常,150Gb 分区甚至显示使用 ext4 文件系统(gparted 屏幕截图),这是正确的,我甚至可以从命令行安装它,但是,我无法从可启动的文件管理器 GUI 安装它们。事实上,我无法从 GUI 安装该驱动器上的任何分区。GRUB 似乎也在某些步骤中被损坏了,因为当我选择该启动分区时,我的 PC 启动到“选定的启动设备失败。按任意按钮重新启动”。我仍然可以启动 Windows,因为它安装在另一个驱动器中。此外,除了这个磁盘之外的每个磁盘都有一个 GPT 分区表,在我弄乱 Windows 动态驱动器之前,我不确定这个磁盘是 GPT 还是 MBR。
我不知道该怎么做,有没有办法恢复我的旧分区表而不丢失任何数据?
注意:我使用 Arch Linux(EndeavourOS)与 Windows 10 双启动。
编辑 1:转换回简单驱动器后,我的 arch 分区在 Windows 资源管理器和分区管理器中均可见(但当然无法访问),并显示为 RAW。
答案1
据我所知和个人经验,您不能直接将动态卷转换为基本卷。动态磁盘归与其绑定的基本磁盘所有。
您必须撤消数据,重建为基本卷(格式化为基本),仅选择 MBR 或 GPT 之一,然后继续。
如果您能够回滚,那么请务必这样做。
答案2
好吧,我将把这个作为任何经历过这个特殊的个人地狱的人的最终解决方案。
确实,当从 Windows 的动态驱动器恢复时,两个分区表发生了冲突(一个具有正确分布的 MBR,另一个具有动态分布的旧 GPT)。我担心 MBR 分区,因为它只有“Windows 基本数据”,但显然该代码和名称仅影响分区在 Windows 中是否可见。
然后我使用以下命令删除 (小写!) GPT 表:
sudo gdisk /dev/path/to/drive
x
z # (in lowercase! since uppercase Z will nuke both tables.)
destroy gpt partition? y
wipe mbr partition? n
然后小心地将我的系统、EFI 分区、arch-chroot 安装到我的操作系统中并修复(重新安装)GRUB。
重启后,我可以高兴地说一切都恢复正常了!:D
如果有人在这里遇到类似的问题,请在对分区进行任何操作时(无论是在 Windows 上还是在使用 fdisk、gdisk、sgdisk 等时)都要小心,并始终备份数据,对我有用的方法不一定对你有用。有好几次,我差点就做错了,弄乱了我的数据,因为其他帖子看起来与我的问题非常相似。
另外,感谢这篇文章中所有人的帮助!