Partition
我已將整個分區磁碟複製到另一個磁碟的分區中。如何訪問數據?
具有多個分區的硬碟驅動器被
dd
編入第二個硬碟驅動器的分區(分區大到足以完全包含第一個硬碟驅動器)。是否可以訪問第二個驅動器上的數據 - 如果,如何訪問?編輯:為了澄清 - 我想這個問題的一個更好的術語是“嵌套分區”: 這也讓我得到了這個答案:有沒有辦法允許嵌套分區表?- 我的案例與上一段類似,可能的解決方案是使用設備映射器。但似乎沒有“更簡單”的方式來訪問數據。
有點驚訝它還沒有被提及,但是有兩個工具可以在 Linux 上本地執行此操作。
第一個稱為
partx
,它是util-linux
軟體包的一部分,它是(幾乎)每個現有 Linux 安裝的一部分。partx -s - /path/to/disk
將列出核心可以辨識該磁碟上的所有分區。與該選項類似的語法-a
將告訴核心為這些分區創建設備節點,而等效的 with-d
將刪除所述設備節點(如果它們存在)。需要孤單-
來強制它將路徑視為磁碟而不是分區。受 啟發的另一個工具
partx
是kpartx
。這是可用於 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
如圖所示,您可以掛載磁碟映像的各個分區。