Mazn.net

やってみて 調べてみて 苦労しなけりゃ 箱は動かじ

qcow2のディスクイメージをマウントして編集する@Ubuntu12.04

      2013/11/05

KVMなどで使われているqcow2形式のディスクイメージは、単純なディスクイメージと異なり、そのままループバックに繋いでもマウントすることができません。中身を編集するには、qemu-nbd コマンドを使って nbd (Network Block Device) 経由で扱います。nbd は、ネットワーク経由でローカルディスク上にあるディスクイメージをリモートからブロックデバイスとして扱えるようにするための機能がメインのものですが、今回はローカルにあるqcow2のディスクイメージをマウントするのに使うので、ネットワークはあまり関係ありません。

今回は、Ubuntu のクラウド向けの qcow2 ディスクイメージ precise-server-cloudimg-amd64-disk1.img をマウントしてみます。

qemu-utils パッケージがインストールされていない場合はインストールします。

# apt-get install qemu-utils

nbd カーネルモジュールをロードします。

# modprobe nbd

ロードが正常に完了すると、/dev/nbd0 や /dev/nbd1 といったデバイスが見えます。

# ls /dev/nbd*
/dev/nbd0    /dev/nbd1   /dev/nbd11  /dev/nbd13  /dev/nbd15  /dev/nbd3  /dev/nbd5  /dev/nbd7  /dev/nbd9
/dev/nbd0p1  /dev/nbd10  /dev/nbd12  /dev/nbd14  /dev/nbd2   /dev/nbd4  /dev/nbd6  /dev/nbd8

/dev/nbd0 に ディスクイメージを繋ぎます。
※ファイル名は絶対パスを書かないとエラーになるので、`pwd`を付けています。

# qemu-nbd --connect=/dev/nbd0 `pwd`/precise-server-cloudimg-amd64-disk1.img

connectすると、パーティションがある場合は自動的にパーティションに応じたデバイスが自動的に作らるので、kpartxは不要です。

# ls /dev/nbd0*
/dev/nbd0  /dev/nbd0p1

いまどのデバイスを使っているかは、コマンドでは確認できそうにないですが、プロセスをgrepして確認可能です。

# ps -ef | grep [q]emu-nbd
root     11461     1  0 10:49 ?        00:00:00 qemu-nbd --connect=/dev/nbd0 /home/share/img/precise-server-cloudimg-amd64-disk1.img

後は、/dev/nbd0p1 を適当にマウントすれば中身が見られます。

# mkdir /mnt/tmp
# mount /dev/nbd0p1 /mnt/tmp

ディスクイメージのデフォルトのパスワード変更したいなら、chroot して passwd コマンド叩けば、イメージ起動後にコンソールからログインできるようにもなります。

# chroot /mnt/tmp
# passwd ubuntu
# exit

後始末は、アンマウントして、disconnectします。disconnectの時は、デバイス名の前に”=”は不要です。

# umount /mnt/tmp
# qemu-nbd --disconnect /dev/nbd0 
/dev/nbd0 disconnected

 - IT技術, サーバ構築 ,

336px

Message

メールアドレスが公開されることはありません。

  関連記事

no image
grubの起動画面で日本語キーボート配列を使う

grub 起動時に起動オプションを変更する場合、日本語キーボード配列ではなくスト …

no image
vimで改行に置換

viで改行を置換(削除)するには、 :%s/\\n//g とすればよいですが、改 …

no image
isoなどのCDイメージを手軽にマウント

Daemon ToolsというCDのイメージをマウントする有名なツールがあるので …

no image
OpenStackをインストール中にはまった@Ubuntu 12.04

OpenStack は様々なコンポーネントがあるため、インストールのための支援ツ …

no image
QRコードスキャナーのようなカメラ使うアプリが起動しない@Galaxy S (2.2)

標準のカメラアプリは正常に動作するのに、QRコードスキャナやFxCamera と …

no image
Transcend Micro SDHC 32GB UHS-I PREMIUM 300x ベンチマーク

Transcend Micro SDHC 32GB UHS-I PREMIUM …

no image
Janetterのデータベースサイズが大きすぎる

ふと気づいたら、以下のフォルダのJanetterのデータベースのサイズが5GBも …

no image
Linuxコンテナ(LXC)を使ってみた@Ubuntu 14.04

Linuxコンテナ(LXC)をUbuntu 14.04上で使用した時のメモです。 …

no image
nForceのマザーM2NPV-VMでのRAID (NVRAID) の使用

数年前に買ったASUSのnForceのマザーボード M2NPV-VMで使っていた …

no image
iモーションのエクスポート属性と着信音について@SH906i

iモーションを自作の着うたにする場合に、エクスポート属性をつけた場合とつけない場 …