我没犯什么错误。
大约一个小时前,我在我的 2013 Macbook Air 上安装了 14.0 版本,并按照标准安装过程设置了全磁盘加密。
但是今晚,在尝试修复损坏的 SD 卡的过程中,我意外地在 /dev/SDA/ 上调用了“Parted”,然后运行了 mklabel。以下是损坏的记录:
ubuntu@ubuntu:~s sudo parted
GNU Parted 2.3
Using /dev/sda
welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel
New disk label type? msdos
warning: Partition(s) on /dev/sda are being used.
Ignore/Cancel? I
warning: The existing disk label on /dev/sdb will be destroyed and
all data on this disk will be lost. Do you went to continue?
Yes/No? y
Error: Partition(s) 1 on /dev/sda have been written, but we have been
unable to inform the kernel of the change, probably because it/they
are in use. As a result, the old partition(s) will remain in use. You
should reboot now before making further changes.
lgnore/cancel? c
(parted)
重启后,我看到一个闪烁的文件夹问号 - 我认为这是 Mac 语言中“我找不到启动/系统分区”的意思。我有一个实时启动的 Ubuntu USB,可以让它启动,但当我在磁盘实用程序中查看主 SSD 时,它只看到 250gb 的可用空间。
是的,我是个傻瓜,这一点毋庸置疑。但至少我知道什么时候该停下来,向那些更懂行的人寻求帮助。我可以尝试谷歌的随机功能,但我真的不知道自己在做什么,而且我不想让情况变得更糟。我担心我的加密可能会让事情变得复杂。
有什么指导可以指导我如何找出我造成的损害以及如何恢复?
答案1
好吧,最后,另一个论坛上的其他人确实花了几分钟时间带我了解 Testdisk,看看我得到了什么,并解释了如何解释它以及下一步应该做什么。
最终,这不仅仅是“使用 Testdisk”的情况。
发现了这个:
http://ubuntuforums.org/showthread.php?t=895224 (奇怪的是,也没有人帮助这个家伙……)
长话短说,即使您使用 mklabel 删除了分区表,数据仍然存在,并且如果您可以找到分区曾经所在的扇区,您就可以放置一个新的分区表,这样您就可以访问数据。
所以我尝试了 gdisk,因为显然它应该能够恢复备份 GPT 表……但它却没有。不知道为什么,尽管显然找到了备份表,但恢复它却没有任何效果。
然后我很幸运地发现了这个:
http://ubuntuforums.org/showthread.php?t=2214497 (也是另一个不得不“咬紧牙关”并在没有建议的情况下去做这件事的人……)
再次总结一下——
尽管 Testdisk 的文档上说了(或者说没有说),但出于某种原因,它无法恢复完整的 LUKS 分区。事实上,它甚至找不到它们!!但是 - 您至少可以使用它来了解 LUKS 分区可能从哪个扇区开始 - 它至少将 LUKS 标头作为 4096/2MB 分区。
然后,您可以获取此标头的起始扇区,并从那里手动创建一个新分区到磁盘的结束扇区(假设您加密了所有剩余的磁盘 - 如果您不知道结束扇区,您就会遇到麻烦,testdisk 无法找到它。但如果您做对了并使用这些扇区编写了一个新的分区表,那么您就有一个可安装的分区并可以恢复您的数据。如果您能找到扇区,您也可以恢复 EFI 和启动分区(测试磁盘至少可以自己做到这一点,它会选择 FAT 和 efs2)。
但是无论我给它们加上什么标志,它仍然无法启动。因此,我将这些恢复的分区分别 dd 到外部驱动器上,重新安装 ubuntu 的全新加密副本,然后将恢复的分区 dd 放回到各自的位置。分区大小完全相同,并且一切都启动了,就像什么都没有改变一样,甚至交换也正常工作了。
那么,我学到了什么?好吧,如果你破坏了分区表,即使安装了加密软件,数据也是可以恢复的。
而且摩托车论坛一个下午提供的技术帮助显然比 Ubuntu 支持网站一个月提供的还要多…… :/
人们想知道为什么人们不使用 Linux......