Linux

Windows 可以讀取未分區的 NTFS 卷嗎?(單個大分區)

  • November 12, 2012

因此,由於各種原因,我最終得到了一個 45TB 的單 Linux 邏輯卷,沒有分區表,格式化為包含 28TB 數據的 NTFS(文件系統本身為 28TB)。

該文件系統是在 Linux 中創建的,並且可以由 Linux 掛載。當我嘗試將它安裝在同一個盒子上的基於 KVM 的 Windows VM 中時,問題就出現了。Windows 看不到一個 28TB 的文件系統,而是一個 1.8TB 的磁碟,其中包含一些隨機大小的無用分區。

磁碟管理輸出顯示具有隨機大小分區的 Disk1

我認為這是因為 Windows 試圖將真實 NTFS 文件系統數據的前幾個字節作為分區表讀取。

我可以看到這個問題的一些可能的解決方案,但無法弄清楚如何實際執行其中任何一個:

  • Windows 是否將未分區的磁碟(單個卷)作為文件系統讀取?
  • 以某種方式在此邏輯卷上生成分區表,而不會破壞文件系統本身中保存的數據?
  • 以某種方式偽造一個分區表,指向 LVM 卷並將其導出到 KVM 來賓(在 libvirt 中執行)

parted 報告的目前“分區表”為:

Model: Linux device-mapper (linear) (dm)
Disk /dev/mapper/chandos--dh-data: 48.0TB
Sector size (logical/physical): 512B/512B
Partition Table: loop

Number  Start  End     Size    File system  Flags
1      0.00B  48.0TB  48.0TB  ntfs

我實際上還沒有找到一個好的解決方案。幸運的是,還有一個方便的驅動器架,有大約 30TB 的空間,我可以用它來遷移到新分區的捲。這將需要很長時間,但它應該可以工作。

有人建議可以使用Linux Device Mapper完成一些聰明的事情(創建一個虛擬設​​備,從文件映射一個假 GPT 分區表,以及 LVM 邏輯卷),但我會把它留給更聰明的人來工作出去。

**編輯:**實際上最終在這裡寫了一個解決方案

我有一個類似的問題,我不小心鏡像了一個分區而不是磁碟。圖像正在通過網路複製,我沒有時間再次複製它們。然而,它們比 28TB 小得多,而且我使用了一個需要製作圖像副本的過程。

初始圖像是使用以下方法拍攝的:

dd if=/dev/sda1 of=/image.bin

要添加分區表,而不是通過網路複製所有內容,我只將 MBR 複製到文件中。

dd if=/dev/sda of=/mbr.bin bs=512 count=1

然後,我添加了 mbr 並複制了數據。

fdisk -l /mbr.bin
# take the start position * units in bytes (ex start at 256 * units of 512 bytes = 131072 bytes)
truncate -s (disk size in bytes + number of above) /newfile.bin
dd if=/mbr.bin of=/newfile.bin
dd if=/image.bin of=/newfile.bin oflag=seek_bytes seek=(number from above)

一旦完成,/newfile.bin就有完整的分區表+數據。

引用自:https://serverfault.com/questions/445895