Linux-Mint

恢復格式化的 NTFS 分區

  • July 19, 2021

請不要將此標記為重複- 我已經閱讀了許多其他問題和建議的答案,但似乎無法讓它們發揮作用。

我有 3 個 1TB 硬碟驅動器、2 個 SSD 和 1 個 HDD。在嘗試在其中一個 SSD 上安裝 Windows 10 時,我不小心刪除了分區表並可能格式化了 HDD。

我正在嘗試從硬碟恢復我的數據,它有很多大約 10 年前的照片。HHD 只是一個數據磁碟,儘管它在 2018 年曾短暫安裝過 Linux。

磁碟型號:ST1000DM003-1SB1

我一直在嘗試使用 TestDisk 恢復照片以獲得混合結果。我一直無法恢復分區表,但我知道數據仍在磁碟上,因為我能夠使用 Photorec 提取它。唯一的問題是照片記錄已經刪除了大約 8K 照片的所有結構和順序。

TestDisk 的結果如下:

Disk /dev/sda - 1000 GB / 931 GiB - CHS 121601 255 63
Current partition structure:
    Partition                  Start        End    Size in sectors

1 * FAT32                    0   1  1   242 254 63    3903732 [RECOVERY]
2 P FAT32 LBA              243   0  1  7401 254 63  115009335 [NO NAME]
3 E extended LBA          7402   0  1 102927 254 63 1534625190
5 L FAT32 LBA             7402   1  1 12160 254 63   76453272 [NO NAME]
  X extended             102927  97  1 102927 232 38       8543
Invalid FAT boot sector
6 L FAT16 <32M           102927  98 62 102927 232 38       8419
6 L FAT16 <32M           102927  98 62 102927 232 38       8419

執行 fdisk -l 返回:

Disk /dev/sda: 931.53 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: ST1000DM003-1SB1
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x17556621

Device     Boot      Start        End    Sectors   Size Id Type
/dev/sda1  *            63    3903794    3903732   1.9G  b W95 FAT32
/dev/sda2          3903795  118913129  115009335  54.9G  c W95 FAT32 (LBA)
/dev/sda3        118913130 1653538319 1534625190 731.8G  f W95 Ext'd (LBA)
/dev/sda5        118913193  195366464   76453272  36.5G  c W95 FAT32 (LBA)
/dev/sda6       1653528490 1653536908       8419   4.1M  4 FAT16 <32M

Partition 1 does not start on physical sector boundary.
Partition 2 does not start on physical sector boundary.
Partition 3 does not start on physical sector boundary.
Partition 5 does not start on physical sector boundary.
Partition 6 does not start on physical sector boundary.

嘗試掛載返回:

billy@billy-Mint:~$ ntfsfix -b /dev/sda3
Mounting volume... Error opening read-only '/dev/sda3': Permission denied
FAILED
Attempting to correct errors... Error opening read-only '/dev/sda3': Permission denied
FAILED
Failed to startup volume: Permission denied
Error opening '/dev/sda3': Read-only file system
Volume is corrupt. You should run chkdsk.

sudo fsck /dev/sda3 產生以下結果:

fsck.ext2: Attempt to read block from filesystem resulted in short read while trying to open /dev/sda3 Could this be a zero-length partition?

任何幫助將不勝感激。我很困惑如何進行。

只是為了給將來發現這個的人帶來這個完整的循環。我在工作中與一位軟體工程師交談,他建議我已經取得了可能的最佳結果。即用 photorec 恢復數據是我所希望的最好的,我將無法恢復文件夾結構中的數據,因為當我刪除分區表時文件夾結構已經失去。希望有幫助!

一個 MBR 分區磁碟最多有四個主分區。要繞過此限制,您可以將其中一個主分區用作擴展分區:一種用於進一步(“邏輯”)分區的容器。

在您的情況下,sda3是一個擴展分區,其中包含邏輯分區sda5sda6. 最後一個主分區槽sda4未使用。

擴展分區只包含其他分區:它本身永遠不能直接用作分區。這是 MBR 分區方案的一個怪癖,從 1980 年代第一台配備硬碟的 PC 時代就已經存在。

因此,嘗試ntfsfix在您的設備上執行或任何其他修復工具/dev/sda3是沒有意義的。如果磁碟的該部分包含任何可辨識的 NTFS 文件系統的殘留物,我肯定testdisk會報告它並將其包含在要恢復的分區結構中。

事實上,要麼根本沒有 NTFS 分區(因為恢復的分區表看起來像 Windows 9x/ME 會使用的東西:那些作業系統根本不支持 NTFS)……或者那個分區的開頭是如此徹底覆蓋它無法辨識testdisk,在這種情況下,我也不希望ntfsfix能夠實現任何有用的東西。

來自man ntfsfix

ntfsfix是一個修復一些常見的 NTFS 問題的實用程序。ntfsfix不是. _ _ chkdsk它只修復一些基本的 NTFS 不一致性,重置 NTFS 日誌文件,並為首次啟動到 Windows 時安排 NTFS 一致性檢查。

假設磁碟上確實有一個 NTFS 分區,我同意你的軟體工程師的評估:你已經得到了最好的結果。

但是,如果這不是真的,並且恢復的分區表對您來說似乎是正確的,那麼您應該不理會sda3並繼續嘗試訪問(並在必要時恢復)sda5sda6.

文件系統修復工具應根據預期在分區上的文件系統進行選擇:如果實際文件系統類型是例如 FAT32,則嘗試執行適用於 NTFS 或ext2文件系統(ntfsfix和分別)的工具將毫無用處,實際上可以fsck.ext2通過基於錯誤假設進行不適當的更改來進一步破壞剩餘數據。

在這樣的恢復情況下,您應該為文件系統類型明確選擇正確的工具,而不是執行通用fsck命令。如果恢復的分區表中的分區類型正確,則forsda5sda6,fsck.vfat可能是正確的工具。

Partition X does not start on physical sector boundary.可以忽略:由於第一個分區的起始扇區是 63 而不是 1024,因此該磁碟顯然已使用舊作業系統進行分區,該作業系統遵循舊的 DOS 時代約定,理想情況下在柱面或磁軌的開頭啟動分區根據傳統的 C/H/S 幾何結構,這會導致分區對於現代磁碟而言並非嚴格“最佳”。

在足夠現代以使用 4096 字節物理扇區大小的磁碟上,報告的 C/H/S 幾何結構只是一種虛構,因為傳統作業系統期望它而得以維護:它與數據塊的實際佈局無關磁碟上。

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