2011-02-11 11 views
4

私には仮想マシンがいくつかあります。私は、次のプロセスを自動化するスクリプトを書きたい...仮想マシンのパスワードを変更する

  • それは場所に(OSとしてLinuxを使用)仮想マシンをマウントは/ mnt /画像が
  • 言うことは、/ etcを修正/ passwdの(または同等のファイル)は、ユーザー
  • をアンマウント仮想マシン以来

のパスワードを変更するには、私は、仮想マシンの一部QCOW2イメージを持っていますのlibvirtを使用しています。私のubuntuにイメージをマウントするには、私はnbdモジュールを使用しています。ここで私がしようとしているコマンドです:

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

は、それは私にエラーを与える:私はnbdoでnbd0p1交換するとき、私は私が何かわからないけれども

mount: special device /dev/nbd0p1 does not exist 

私は(次のエラーを取得していますこれでやろうとしています)

mount: you must specify the filesystem type 

何が問題なのでしょうか?

答えて

3

[質問に直接答えはありませんが、代替]
qcow2イメージをrawに変換してから、元のイメージをマウントできます。

変換:

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

マウント:/sys/modules/nbd/parameters/max_partが期待値を持っていることを

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 
+0

エラーマウント:特殊デバイス/ dev/mapper/loop0p3が既存の3行目に存在しない – w2lame

+0

[sudo mount/dev/mapper/loop0p1/mnt/image]または[sudo mount/dev/mapper/loop0p2/mnt/image](loop0p はあなたのパーティションに依存します) – db42

+0

詳細については、このリンクをクリックしてください。http://blog.dustinkirkland.com/2008/10/mounting-kvm-disk-image.html [kpartx -av/dev/loop0]を使うと、あなたのパーティションに関するいくつかの情報が出力されます。 – db42

1

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

4

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

これを修正するには、モジュールをアンロードしてもう一度modprobingします。

1

私は解決策は、私はちょうどnbd0

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

を変更して、簡単だった私のために同じ問題と同じエラーではなく、VDI

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

につまずい:

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

が処理されました。

これがあなたとどんなタイプの画像でも機能する場合は、コメントを残してください。

+1

これは動的vdiで私のために働いた –

関連する問題