準備
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 件のコメント :
コメントを投稿