我的硬碟崩潰了,修復公司能夠將所有內容複製到另一個新硬碟上。
我認為他們使用了 dd 或類似的。
它有兩個 xfs 分割區。但是,現在我只能安裝第一個。
如果我嘗試使用 gparted 查看分割區,它會顯示:
Can't have a partition outside the disk
看來新的磁碟比原來的要小一點(不同型號)。
更新,我證實了我的懷疑:
fdisk -l -u=sectors
Disk /dev/sdd: 9,1 TiB, 10000797794304 bytes, 19532808192 sectors
Disk model: Elements 25A3
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: gpt
Device Start End Sectors Size Type
/dev/sdd1 2048 9766436863 9766434816 4,6T Linux filesystem
/dev/sdd2 9766436864 19532871679 9766434816 4,6T Linux filesystem
但數字不匹配!
19532808192-9766434816-9766434816-2048=63488
如何更新分區表和 xfs 檔案系統以適合目前的硬碟?
答案1
如果問題完全出在分割表上(如果檔案系統本身實際上在邊界內),則無論如何您都可以使用循環設備來存取偽造的分割區:
losetup --find --show --read-only --offset=$((9766436864*512)) /dev/sdx
如果檔案系統大於設備,則必須將其複製到更大的設備,或透過設備映射器模擬更大的設備(dmsetup 建立線性目標)。如果您已經備份了 上的所有內容/dev/sdd1
,您可以複製/dev/sdd2
到/dev/sdd1
然後使第一個分割區更大。
因此,有多種方法可以解決這個問題,但它是否有效將取決於那些遺失的幾兆位元組對檔案系統的重要性。你不會拿回那些。