Mazn.net

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

ディスクイメージをデバイスファイルとして扱う@CentOS5.4 + Xen

      2015/04/30

※ 2015/4/30追記 : mountオプションで直接マウントする方法を書きました

Xenの仮想マシンのディスクは、パーティションやファイルを使用できますが、これらのパーティションやファイルを、仮想マシンを起動せずに中身を覗きたい場合があります。こういうときは、パーティションやファイルをLinuxのデバイスファイルとして扱ってあげることで、ディスクイメージをマウントすることができます。

デバイスファイルにするには、losetupコマンド、さらに作ったデバイスファイルをディスクと見立ててパーティションを読み取るのがkpartxコマンドです。

まずはlosetupコマンドで、パーティションやファイルをループバックデバイスとして設定していきます。ループバックデバイスは/dev/loop0や/dev/loop1などですが、使われていないループバックデバイスを探します。

# losetup -f
/dev/loop1

ディスクイメージを/dev/loop1にマッピングします。ここではファイルを指定していますが、パーティションでもOKです。

# losetup /dev/loop1 /root/xen.img

設定できたかを確認します。下の例ではloop1にxen.imgが設定されています。

# losetup -a
/dev/loop0: [0803]:41058319 (/root/cent5.4.iso)
/dev/loop1: [0803]:42238103 (/root/xen.img)

これで/dev/loop1は、通常のディスクでいう/dev/hdaなどに相当します。しかし実際のディスクの場合、パーティションをつくると、/dev/hda1とか/dev/hda2とかいった風に番号がついていきますが、losetupだけではこれらのパーティション毎のデバイスファイルが作られません。そこで使用するのがkpartxコマンドです。

kpartxでloop1上のパーティションを見てみます。ここでは3っつのパーティションを確認できます。

# kpartx -l /dev/loop1 
loop1p1 : 0 208782 /dev/loop1 63
loop1p2 : 0 4192965 /dev/loop1 208845
loop1p3 : 0 20980890 /dev/loop1 4401810

パーティションテーブルから、パーティションのデバイスファイルを作成します。

# kpartx -a /dev/loop1

確認します。/dev/mapperやfdiskコマンドで確認します。

# ls /dev/mapper/
# fdisk -lu /dev/loop1 
~省略~
/dev/loop1p1   *          63      208844      104391   83  Linux
/dev/loop1p2          208845     4401809     2096482+  82  Linux swap / Solaris
/dev/loop1p3         4401810    25382699    10490445   83  Linux

ext3フォーマットのパーティションなどはそのままマウント可能です。

# mount /dev/mapper/loop1p3 /mnt/tmp

元に戻すには、アンマウント後、以下のようにコマンドを実行するだけです。

# umount /mnt/tmp
# kpartx -d /dev/loop1
# losetup -d /dev/loop1

 - IT技術 , ,

336px

Message

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

  関連記事

no image
オフラインファイルの削除@Windows XP

Windowsにはオフラインフォルダといって、ネットワーク共有のファイルをネット …

no image
アプリケーションの追加と削除@RHEL5

RHEL5からはパッケージ管理のフロントエンドがyumになってしまったため、リポ …

no image
起動時にswaponを実行して、スワップを有効にする @ Android Galaxy S with root

Galaxy S は、Google Map 使うとフリーズしてしまうが、スワップ …

no image
EJB3 JPAのmapping-type @ JBoss 4.2

JBoss 4.2 でEJB3のJPA (JAVA Persistence AP …

no image
vimでシンタックスのハイライトがおかしくなる

vim では、テキストファイルの種類に応じて色をつけてくれる機能(ハイライト機能 …

no image
Ubuntuの起動画面が途中で見えなくなる@Ubuntu 9.04

Ubuntu 9.04を入れてみました。 起動時の画面が途中で真っ暗になったり、 …

no image
USB LANアダプタ GU-1000Air 購入@Ubuntu 9.04 beta

プラネックスのUSBギガビットLANアダプタ GU-1000Airを購入。 搭載 …

no image
mysqldump でのバックアップで文字化けする

MySQLのバックアップのため、定期的にmysqldumpでバックアップしている …

no image
akamaitechnologies.comってなに??

ふとWindowsでnetstatを叩くと、akamaitechnologies …

no image
ソースコードのインデントを整形する@vim

vimでソースコードを編集していてインデントが崩れてしまった場合の整形の方法。 …