今天,我做了一件愚蠢的事情,比如使用Windows“磁盘”试图删除我的便携式SSD NVME 256 in中的卷,但是我键入“干净”,删除了磁盘中的所有卷。
在外部SSD磁盘中,顺序是:·8gbwindows恢复引导·147 Gb卷,其中存储在ext4·39 gb ubuntu加密卷中格式化的常规文件夹( ext4·22 gb veracrypt加密卷中的ext4·22 gb veracrypt加密卷)(我认为它是exfat,但不确定,在任何情况下,窗口都是原始的)(这是最重要的并且我看不到的)(用于隐藏另一个加密卷的加密卷)·17 GB
在下面你可以看到我的一些截图:




结果是非常混乱和错误的:

然后,我将磁盘几何中的“头”改为8(之前是255),然后再进行分析,但结果是一样的。
你知道我怎么能像以前一样恢复所有的分区吗?
发布于 2021-02-24 23:15:30
我不知道windows工具做了什么,但假设它刚刚删除了分区表,就有机会了。您需要找到分区的起始位置。首先,如果这些屏幕截图中的任何一个显示了原始状态,那么这些信息就足以恢复它。
如果不是,你得猜。第一个通常从1MB开始,并且它们趋向于对成整兆字节。但不能保证情况确实如此。
要查看磁盘的第二个兆字节(可能是第一个分区的开始),请尝试如下:
dd if=/dev/sdb bs=1M skip=1 count=1 | file -您说第一个分区是一个windows恢复分区,可能是NTFS或FAT。然后,file会这样说:
/dev/stdin: DOS/MBR boot sector, code offset 0x58+2, OEM-ID "mkfs.fat", Media descriptor 0xf8, sectors/track 63, heads 255, hidden sectors 2048, sectors 524286 (volumes > 32 MB), FAT (32 bit), sectors/FAT 4033, reserved 0x1, serial number 0x7109f176, label: "EFI20210224"或者这个:
/dev/stdin: DOS/MBR boot sector, code offset 0x52+2, OEM-ID "NTFS ", sectors/cluster 8, Media descriptor 0xf8, sectors/track 0, dos < 4.0 BootSector (0x80), FAT (1Y bit by descriptor); NTFS, sectors 204799, $MFT start cluster 4, $MFTMirror start cluster 12799, bytes/RecordSegment 2^(-1*246), clusters/index block 1, serial number 064baf16e1b371b26如果上面只写着/dev/stdin: data,那你就错了位置。调整skip=参数,直到找到它为止。您可能需要检查512字节的倍数,而不是整兆字节。你记得大概的大小和顺序,所以有机会。
对于ext4分区,file会这样说:
/dev/stdin: Linux rev 1.0 ext4 filesystem data, UUID=52e69144-d086-54a3-882c-97fa6985226f, volume name "proot20210224" (needs journal recovery) (extents) (64bit) (large files) (huge files)对于每种类型的文件系统,您可以在一个常规文件中创建它,然后检查file对它们的看法。这样你就会知道当你找到每一种类型。不过,不要只是用暴力手段,要检查一下他们应该站在什么位置。在磁盘上的任何地方,可能都有看起来像文件系统头的随机垃圾,足以欺骗file。
一旦你有了所有的位置,创建完全相同的布局。您可能希望为此使用sfdisk。我从来不知道对用户更友好的选项是什么意思的千兆字节,sfdisk总是使用512字节作为单位。所以第一个可能是
start=2048,size=16777216如果它真的以1MB启动,而且精确地是8 GiB。但大小当然取决于你在哪里找到下一个。对于最后一个分区,可以跳过大小来使用磁盘的其余部分。
如果更新了分区表,请尝试挂载只读分区,并将数据复制到其他地方。在所有数据安全之前,我不会继续使用磁盘读写。
https://unix.stackexchange.com/questions/636224
复制相似问题