4

私はいくつかの仮想マシンを持っています。次のプロセスを自動化するスクリプトを書きたい...

  • 仮想マシン(OSとしてLinuxを使用)を/ mnt/imageなどの場所にマウントします
  • / etc / passwd(または同等のファイル)を変更して、ユーザーのパスワードを変更します
  • 仮想マシンをアンマウントします

libvirtを使用しているので、仮想マシンのqcow2イメージをいくつか持っています。私のubuntuにイメージをマウントするために、私はnbdモジュールを使用しています。これが私が試しているコマンドです:

modprobe nbd max_part=63
qemu-nbd -c /dev/nbd0 image.qcow2
mount /dev/nbd0p1 /mnt/image

それは私にエラーを与えます:

mount: special device /dev/nbd0p1 does not exist

nbd0p1をnbdoに置き換えると、次のエラーが発生します(これで何をしようとしているのかわかりませんが)

mount: you must specify the filesystem type

何が問題になる可能性があるかなどの提案...?

4

4 に答える 4

4

/sys/modules/nbd/parameters/max_part期待値があることを確認してください。0または低すぎる場合、パーティション/dev/nbd0p1などはカーネルによって使用可能になりません。これは、を実行したときにnbdカーネルモジュールが(別のmax_partパラメータで)すでにロードされている場合に発生する可能性がありますmodprobe

モジュールをアンロードして再度modprobeすることで、これを修正できます。

于 2014-01-30T14:46:38.627 に答える
3

[質問に対する直接の答えではありませんが、別の方法です]
qcow2イメージをrawに変換してから、rawイメージをマウントすることができます。

変換:

qemu-img convert -f qcow2 image.qcow2 -O raw image_raw.raw

マウント:

    sudo losetup /dev/loop0 image_raw.raw
    sudo kpartx -a /dev/loop0
    sudo mount /dev/mapper/loop0p3 /mnt/image
    sudo mount /dev/mapper/loop0p2 /mnt/image/boot
于 2011-02-11T12:19:17.197 に答える
1

パーティションがMBRの最初のスロットにないか、拡張パーティションが使用されている可能性がありますか?nbdXpY他のデバイスノードが作成されているかどうかを確認するか、その上で実行fdiskしてpパーティションテーブルをリントします。

于 2011-02-11T06:32:42.697 に答える
1

私は同じ問題と同じエラーに遭遇しましたが、vdiに遭遇しました

qemu-nbd -c /dev/nbd0 image.vdi

私にとって、解決策は単純でしnbd0た。nbd1

qemu-nbd -c /dev/nbd1 image.vdi

その後:

sudo mount  /dev/nbd1p1 /media/eddie/virtual 

働いた。

これがあなたにとってもうまくいったかどうか、そしてどのような種類の画像についてもコメントを残してください。

于 2018-02-27T02:37:05.733 に答える