Data-Recovery

從正在執行的系統和加密磁碟中恢復分區表

  • December 23, 2020

我犯了一個小錯誤,我錯誤地刪除了我的引導分區。使用testdisk我能夠毫無問題地恢復引導分區,但我要麼濫用它,要麼不理解,只用我的引導分區寫入分區表。

所以現在我的/swap分區從我的系統中失去了。

從偉大的 Gilles 那裡找到了這個答案,但是,

我的系統正在使用 EFI 並且我的分區是加密的,相同的解決方案是否適用於恢復我的分區表以及我應該對加密ext4swap分區使用什麼分區格式?

同樣在來自 SuperUser 的同一個問題中,我發現我應該使用gdisk扇區大小並減去 1,所有這些資訊都是準確且最新的嗎?

編輯1:

testdisk通過深度搜尋找到那些分區:

Disk /dev/nvme0n1 - 512 GB / 476 GiB - CHS 488386 64 32
    Partition               Start        End    Size in sectors
P EFI System                  2048    1619967    1617920 [EFI System Partition] [ESP]
D MS Data                     2054    1619973    1617920 [NO NAME]
D EFI System                  4096     618495     614400 [EFI System Partition]
D MS Data                     4102     618501     614400
D MS Data                    37699      43872       6174
D MS Data                    43872      50045       6174 [Boot]
D Linux filesys. data       618494 1000206893  999588400
D Linux filesys. data       618496     622591       4096
D Linux filesys. data       618496 1000206895  999588400
D MS Data                374180459  374183338       2880 [NO NAME]
D MS Data                374180483  374183362       2880 [NO NAME]
D MS Data                374181379  374184258       2880 [NO NAME]
>D Linux filesys. data    965039160  965043255       4096

其中 2 個(塊大小為 4096 的那個)作為 LUKS。

然而,"bad structue"從這個爛攤子中,我知道我可以或應該恢復什麼。

我的原始磁碟最後有一個 gpt 引導分區、一個主加密分區和一個加密交換分區。

我的電腦還在執行,我已經能夠備份 LUKS 標頭,我可以訪問所有數據和相關資訊,我只是不知道如何利用它。

最後,我用來testdisk解決我辨識出另一個分區的問題:

#main partition
/sys/class/block/nvme0n1p2/start                                                                                                                                                                      
618496
/sys/class/block/nvme0n1p2/size                                                                                                                                                                       
964420664
#Swap partition
/sys/class/block/nvme0n1p3/start                                                                                                                                                                      
965039160
/sys/class/block/nvme0n1p3/size                                                                                                                                                                       
35167740

因此,考慮到這一點,我需要正確辨識我的引導驅動器testdisk,它就是這個:

D EFI System                  4096     618495     614400 [EFI System Partition]

我選擇了這個選項並添加了另外兩個與 中找到的值相對應的分區/sys/class/block

testdisk使用開始和結束扇區而不是開始扇區和計數。因此,要找到結束扇區,您需要添加 comute start+count-1

作為分區類型,我在 linux 子類別中選擇 Luks 分區。你去吧。

引用自:https://unix.stackexchange.com/questions/625496