Partition

部分覆蓋/dev/sda,我可以恢復任何東西嗎?

  • August 2, 2014

我正在搞亂我的新硬碟驅動器,它只包含一些個人文件,為了檢查它的寫入速度,我輸入了:sudo dd if=/dev/zero of=/dev/sda/dev/sda/作為連接到我的 Raspberry Pi 的新 2 TB。

希望我取消了命令,只寫入了 11 MB。現在磁碟內容顯示不出來,現在parted告訴我分區樹是這樣的:

|--- unallocated 8.00 MB
|--- unknown 1.82 TB
|--- unallocated 9.08 MB

之前,是這樣的:

|--- ext4 1.82 TB

我不知道是否dd覆蓋了磁碟的前11 MB,這意味著分區表已被完全覆蓋,或者硬碟驅動器的隨機位已被覆蓋。

現在硬碟驅動器連接到我的 Xubuntu 14.04 筆記型電腦/dev/sdb。我試過gpart哪個仍在執行,也testdisk沒有成功。

知道整個磁碟是ext4並且扇區大小是 4096,是否可以在不重新格式化的情況下恢復分區表並使我能夠再次訪問我的文件(即使有些文件已損壞/刪除)?或者我唯一的解決方案是使用文件恢復工具,因為要複製儲存在該驅動器上的數據量會很煩人?

您首先需要按照原來的方式重建分區表。這不會影響任何分區的內容,只會影響系統對每個分區開始和結束位置的想法。聽起來您可能已經這樣做了,因為您似乎有一個“未知”的分區存在,但與之前的分區大小完全相同。

如果您還沒有這樣做,那麼您可以嘗試使用最初用於創建它的相同分區編輯程序(例如fdisk,, )創建一個大分區gdiskparted並接受預設的建議放置,希望這些預設值會導致與以前相同的位置。同樣,在這裡,聽起來您知道使用了什麼分區軟體:parted。

之後,您需要的技巧是fsck使用備份超級塊對文件系統進行操作。再次在這裡,您必須希望首先使用預設選項創建文件系統,否則您必須知道使用哪些非預設選項來創建文件系統。(我會說文件系統通常是使用預設選項創建的。)

  1. mkfs使用最初用於創建文件系統的相同選項執行(即可能沒有選項,意味著預設值),除了 add-n,這意味著不要真正創建文件系統。
  2. 輸出將mkfs輸出一個備用超級塊列表。您將需要使用其中之一,因為文件系統的主要超級塊已被覆蓋。塊設備中被覆蓋的部分越大,列表中的備用超級塊就越多將被損壞。
  3. fsck使用選項執行-b以指定備用超級塊。

我必須警告您,無論您恢復什麼,都可能是一團糟,並且需要大量手動清理。預計會有相當多的失去和失去的文件重新附加到lost+found.

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