web-dev-qa-db-ja.com

デジタルオーシャンのddイメージをマウントする方法は?

次のコマンドを使用して、/ dev/vdaddイメージを作成しました。

ssh [email protected] "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)初期化:[email protected]

8
Debrian

私は次の方法で問題を修正することができました:

コピーしたいパーティションのサイズを確認してから、バックアップサーバー上にそのサイズのローカルファイルを作成し、次のコマンドを使用してその中にパーティションを作成しました。

fallocate -l 85899345920 vda.img
fdisk -H 16 vda.img
kpartx -a vda.img
mount/dev/mapper/loop1p1/mnt/test/-t ext4

次に、ddを使用してサーバーからバックアップパーティションにデータをコピーしました。

周りのすべてをチェックし、すべてがうまくいくようです。

1
Debrian

イメージファイル内にパーティションをマウントする必要がある可能性があります。これはkpartxで実行できます。

kpartx -l /path/to/image

ファイル内のパーティションを一覧表示し、

kpartx -a /path/to/image

それらを/dev/mapper/loopXpYXYは異なります)に追加し、そこからmountでマウントできます。

詳細については、man kpartxを参照してください。

6
Sven