Partition

我已將整個分區磁碟複製到另一個磁碟的分區中。如何訪問數據?

  • February 22, 2022

具有多個分區的硬碟驅動器被dd編入第二個硬碟驅動器的分區(分區大到足以完全包含第一個硬碟驅動器)。是否可以訪問第二個驅動器上的數據 - 如果,如何訪問?

編輯:為了澄清 - 我想這個問題的一個更好的術語是“嵌套分區”: 在此處輸入圖像描述 這也讓我得到了這個答案:有沒有辦法允許嵌套分區表?- 我的案例與上一段類似,可能的解決方案是使用設備映射器。但似乎沒有“更簡單”的方式來訪問數據。

有點驚訝它還沒有被提及,但是有兩個工具可以在 Linux 上本地執行此操作。

第一個稱為partx,它是util-linux軟體包的一部分,它是(幾乎)每個現有 Linux 安裝的一部分。partx -s - /path/to/disk將列出核心可以辨識該磁碟上的所有分區。與該選項類似的語法-a將告訴核心為這些分區創建設備節點,而等效的 with-d將刪除所述設備節點(如果它們存在)。需要孤單-來強制它將路徑視為磁碟而不是分區。

受 啟發的另一個工具partxkpartx。這是可用於 Linux 的塊設備多路徑工具的一部分(通常預設情況下安裝,但由所有主要發行版打包,包名如multipath-tools)。相比之下partx,它只是探討了核心如何處理分區表,kpartx讀取分區表本身,然後為每個分區創建設備映射器目標。這允許它在比partx正常情況下更多的情況下工作。這裡的語法是kpartx -l /path/to/device列出分區,-a而不是-l添加和-d刪除它們。

這通常比使用圖像文件和/或循環設備更有效。

我從未見過嵌套分區,但為什麼不直接使用映像文件並掛載它呢?

dd if=/dev/disk of=/big/disk/disk.img 

然後,您可以使用環回來掛載它:

losetup /dev/loop0 /big/disk/disk.img
mount /dev/loop0p1 /mnt/disk_partition1
mount /dev/loop0p2 /mnt/disk_partition2

如圖所示,您可以掛載磁碟映像的各個分區。

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