準備
libguestfs-toolsが必要ですので、apt等でインストールしておきます。
ファイルシステムの作成
マウントしてアクセスしたいファイルシステムを作成します。ここでは例として、ディレクトリ1個とファイルが2個あるファイルシステムを作ります。
$ mkdir fs
$ echo "abc" > fs/abc.txt
$ mkdir fs/sub
$ echo "cde" > fs/sub/cde.txt
$ tree
.
├── abc.txt
└── sub
└── cde.txt
1 directory, 2 files
$ virt-make-fs -t ext4 -s +10M fs fs.img
これで、fs.imgにファイルシステムが作成されます。
-t ext4により、ext4でファイルシステムを作成することを指定しています。軽量なものが良ければ、ext2がよいそうです。
-s +10M により、空き容量を10MB付け加えたファイルシステムを作るよう指定しています。
ファイルシステムのマウント
ファイルシステムが作成できましたので、これをマウントしてみます。マウントポイントはmpとします。ルート権限は不要です。
$ mkdir mp
$ guestmount -a fs.img -m /dev/sda mp
$ tree mp
mp
├── abc.txt
├── lost+found
└── sub
└── cde.txt
2 directories, 2 files
マウントできました。今回作成したイメージの場合、-mオプションは省略できません。
dfで見てもマウントできていることが確認できます。
$ df -h -t fuse ファイルシス サイズ 使用 残り 使用% マウント位置 /dev/fuse 11M 199K 9.1M 3% /home/xxx/yyy/mpファイルの書き込みもできますし、もともと用意していたファイルの表示もできます。
$ cd mp $ echo "xyz" > xyz.txt $ cat xyz.txt xyz $ cat abc.txt abc $ cat sub/cde.txt cde
ファイルシステムのアンマウント
アンマウントも簡単にできます。
$ guestunmount mp $ tree mp mp 0 directories, 0 files
まとめ
仮想ディスクの作成からマウントし、読み書きして、アンマウントするところまで簡単にできました。 この仕組みを使えば、何かデータを処理したい計算機にファイルシステムごとデータを移動したり、 結果を回収したり、バックアップしたりする作業がお手軽にできそうです。
0 件のコメント :
コメントを投稿