2011年10月3日月曜日

bind mount って使ってる?


このエントリーをはてなブックマークに追加


覚えておくと便利なマウント方法。

何に便利かって、なんかの設定ファイルを弄ってテストしてる時。


bind mount とは

すでにマウントされているツリーの一部を、別の場所にマウントさせるオプション。

それだけのものですが非常に便利です。


使い方

# mount --bind /xxx/source /yyy/dest

こうすることで /yyy/dest の中身は /xxx/source になります。



# ls -l /root/conf
-rw-r--r--. 1 root root 0 10月  3 01:26 example.conf

# ls -l /root/conf-new
-rw-r--r--. 1 root root 0 10月  3 01:26 new.conf

# mount --bind /root/conf-new /root/conf
# ls -l /root/conf
-rw-r--r--. 1 root root 0 10月  3 01:26 new.conf

# df /root/conf
ファイルシステム     1K-ブロック    使用 使用可    使用% マウント位置
/dev/mapper/vg_f15x121e-lv_root
                     206424760  12821532 183117468   7% /root/conf


fstabでの指定

fstabに記述して起動時にマウントさせる場合は以下のように記載します。
/root/conf-new   /root/conf   none   bind  0 0


使い所

chrootするftp等で良く例に出ます。またCDROMだけで動くLive系のLinuxで使われていたりします。

が、個人的によく使っているのが設定ファイルの書換えテストや、コンテンツの入れ替えの時です。

/etc/mail や /etc/httpd みたいなディレクトリに設定が全て保存されており、かつ複数のファイルを一度にいじるような場合。

まず元ディレクトリをcp -a /etc/mail /etc/mail.cp.date みたいにコピーしてやり、中の設定をいじった上でbind mountして動作テストします。OKであれば改めてディレクトリごと入れ替え、みたいな感じです。

コンテンツの入れ替えも同様です。ファイル単位でxxx.bkみたいな感じで残しておくと複数ファイルを編集した場合に戻し忘れたり、ソフトによってはディレクトリ内に存在するファイルを全部読んでしまうような /xxxx.d/ 系のディレクトリもあるので、こうやって独立した領域で編集・テストすると安全です。

0 件のコメント:

コメントを投稿