Image

如何掛載數字海洋的dd圖像?

  • March 22, 2015

我使用以下命令創建了dd/ 的圖像:dev/vda

ssh root@1.2.3.4 “dd if=/dev/vda” | dd of=/home/backup/vda.img

而且我無法將它安裝在我傳輸它的本地 Ubuntu 伺服器上。

我得到這個dmesg | tail

[763158.222159] EXT4-fs error (device loop0): ext4_map_blocks:504: inode #8:block 10541546: comm mount: lblock 23018 mapped to illegal pblock (length 1)
[763158.222299] jbd2_journal_bmap: journal block not found at offset 23018 on loop0-8
[763158.222367] JBD2: bad block at offset 23018
[763158.222581] JBD2: recovery failed
[763158.222588] EXT4-fs (loop0): error loading journal

如果我嘗試檢查它,file我會得到:

vda.img:數據

知道它可能是什麼嗎?

按照 Sven 的建議使用 kpartx 我得到:

kpartx -l /home/backup/vda.img

循環已刪除:/dev/loop0

我已重新啟動系統並再次嘗試了該命令:

kpartx -lv /home/backup/vda.img

ioctl: LOOP_CLR_FD: 設備或資源忙

不能刪除循環:/dev/loop0

在 dmesg | 我得到了尾巴

[73.445903]設備映射器:uevent:1.0.3版

[73.446574]設備映射器:ioctl:4.22.0-ioctl(2011-10-19)初始化:dm-devel@redhat.com

我設法通過以下方式解決了這個問題:

我檢查了要複製的分區的大小,然後在備份伺服器上創建了一個具有該大小的本地文件,並使用以下命令在其中創建了分區:

fallocate -l 85899345920 vda.img

fdisk -H 16 vda.img

kpartx -a vda.img

mount /dev/mapper/loop1p1 /mnt/test/ -t ext4

然後我使用 dd 將數據從伺服器複製到備份分區。

檢查了周圍的一切,一切似乎都很好。

您可能需要在映像文件中安裝分區。這可以通過kpartx.

kpartx -l /path/to/image

將列出文件內的分區和

kpartx -a /path/to/image

會將它們添加到/dev/mapper/loopXpY(位置XY變化),您可以使用mount.

有關man kpartx更多資訊,請參閱。

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