背景
我使用 Macbook Pro,它有 High Sierra 和 Fedora 双启动。我没有使用 Fedora,所以我想尝试 Ubuntu 17.10,并且我运行了一个实时 USB(以 EFI 模式启动)。
鉴于我所有与工作相关的文件、项目和其他“重要内容”(在 Mac 端)都已通过 Dropbox 或远程 Git 存储库备份,我决定删除 Fedora 并安装 Ubuntu,而不对驱动器进行完整的比特流映像。
首先,我使用 Gnome Disks 删除了 Fedora 相关分区(这没问题)。我启动了 Ubuntu 安装程序,并执行了以下步骤:
- 选择语言 > 继续
- 勾选“安装 Ubuntu 时下载更新”> 继续
- 选择“其他”作为分区 > 继续
- 错误地将类型设置
/dev/sda2
为“用于加密的物理卷”并添加了我的密码
请注意我没有选择“覆盖空磁盘空间”。我还没有继续安装(我没有到达要求您确认新分区表的阶段)。相反,我单击了“返回”,然后立即关闭了安装程序。
这不应该将任何内容写入磁盘。但是,Ubuntu 安装程序似乎还是决定写入一些内容。
问题
快速重启后,很明显磁盘上写入了错误的内容,尽管从未到达确认步骤。分区类型已更改,rEFInd(正确加载)和 Apple 启动屏幕都找不到 macOS。
这是输出lsblk
:
NAME FSTYPE LABEL UUID MOUNTPOINT
loop0 squash /rofs
sda
├─sda1 vfat EFI 67E3-17ED
├─sda2 crypto 9b2ca99d-cf43-4d35-936d-be37db7b950d
└─sda3
最初sda2
是 APFS。在 macOS 中启用了 Filevault,但是我无法判断它使用的是 CoreStorage 还是原生 APFS 加密(我怀疑是后者,因为它是从使用 HFS+ 的旧版本迁移而来的)。
diskutil list
从 Apple Internet 恢复运行可得到以下结果:
/dev/disk0
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *500.3 GB disk0
1: EFI EFI 209.7 MB disk0s1
2: 7C3457EF-0000-11AA-AA11-00306543ECAC 349.7 GB disk0s2
3: 5361644D-6163-11AA-AA11-00306543ECAC 1.3 GB disk0s3
/dev/disk1
#: TYPE NAME SIZE IDENTIFIER
0: Apple_partition_scheme *1.3 GB disk1
1: Apple_partition_map 30.7 KB disk1s1
2: Apple_HFS OS X Base System 1.3 GB disk1s2
第二个设备是互联网恢复。
奇怪的是,尽管从未以任何方式接触过 aka,但/dev/sda3
它也disk0s3
无法被识别。因此 Mac 现在甚至无法启动本地恢复,而是依赖于基于互联网的恢复。
回到 Ubuntu,parted
抱怨 GPT 损坏,但gdisk
认为没问题。以下是 的输出parted -l
:
Model: ATA APPLE SSD SM0512 (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 20.5kB 210MB 210MB fat32 EFI System Partition boot, esp
2 210MB 350GB 350GB
3 350GB 351GB 1306MB
Error: Both the primary and backup GPT tables are corrupt. Try making a fresh
table, and using Parted's rescue feature to recover partitions.
问题
最重要的是,我如何使用 Ubuntu 修复 GPT 表并为/dev/sda2
和设置正确的文件系统类型/dev/sda3
?
其次,Ubuntu 安装程序是否会在确认更改之前在分区表上写入内容?这是预期的行为吗?
有没有可能不重新安装就恢复系统?正如我所说,我备份了宝贵的数据。我担心的是,我将浪费大量时间来重新安装应用程序和类似的东西。
答案1
你写了:
- 错误地将类型设置
/dev/sda2
为“用于加密的物理卷”并添加了我的密码请注意我没有选择“覆盖空磁盘空间”。我还没有继续安装(我没有到达要求您确认新分区表的阶段)。相反,我单击了“返回”,然后立即关闭了安装程序。
考虑到您随后遇到的问题,我认为要么是 Ubuntu 安装程序立即写入磁盘,要么是其他东西在巧合的时间损坏了分区。无论哪种情况,您恢复的最佳希望都在 macOS 方面。至少据我所知,APFS 太新了,没有任何原生的 Linux 恢复工具。即使 Linux 中有这样的工具,我也会对它们有点警惕。我建议您在 Mac 论坛上询问恢复问题。不过,您可能会或可能不会得到任何回复;APFS 太新了,目前还没有太多关于恢复损坏文件系统的专业知识,而且可以想象 Ubuntu 安装程序(或任何导致损坏的程序)覆盖了一些真正关键的内容。如果您在 macOS 方面使用了加密,情况尤其如此——尽管加密有一些很大的优势,但一个很大的缺点是轻微的文件系统损坏会使恢复变得非常复杂,甚至可能使恢复变得不可能。(我不知道 APFS 在这方面表现如何。)
回到 Ubuntu,
parted
抱怨 GPT 损坏,但gdisk
认为没问题。以下是 的输出parted -l
:
您引用的输出parted
对于所谓损坏的性质非常不清楚,并且您没有提供任何来自 的输出gdisk
。特别是,来自(或)v
的选项可能会有所帮助,当您启动并键入(或键入)时来自 的完整输出也会有所帮助。您可能忽略了警告;或者它可能默默地修复了一些引起 投诉的琐碎问题;或者可能抱怨一些实际上不是损坏并且被接受的东西;或者可能注意到了没有的问题。其中一些事情之间的区别可能是主观的——尽管 GPT 规范比不存在的 MBR 规范清晰得多,但它存在一些歧义,因此一个程序可能会将某些不寻常的东西解释为损坏,而另一个程序可能认为这是正常的。如果分区表gdisk
sgdisk -v
gdisk
p
sudo gdisk -l
gdisk
parted
parted
gdisk
parted
gdisk
是受损,gdisk
修复 GPT 损坏的页面可能会有帮助。(注意:我是的作者gdisk
。)但是,如果不知道gdisk
磁盘的具体情况,我无法提供关于如何修复磁盘的更具体的建议,甚至无法告知是否需要修复。