前回はP-Plamo独自のinitスクリプトの前半,
この部分では書き込み不可なsquashfsをルートファイルシステムとして利用するための作業が中心で,
aufsとは
aufsについては,
aufsはJunjiro Okajima氏が開発しているunion mountの実装で,
Erez Zadok教授のUnion FSは,
aufsについて理解するには,
# modprobe aufs # dmesg | tail aufs 2-standalone.tree-32-20100208
aufsの典型的な使い方として,
% df Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/sda4 27435156 15801396 10240100 61% / none 1557276 192 1557084 1% /dev /media 1557276 0 1557276 0% /media .... /dev/sr0 1632774 1632774 0 100% /cdrom % ls /cdrom ChangeLog initrd isolinux/
/tmpにaufs用の領域を用意し,
# mkdir /tmp/aufs ; chmod 777 /tmp/aufs # mount -t aufs -o br:/tmp/aufs:/cdrom none /cdrom # df Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/sda4 27435156 15803972 10237524 61% / none 1557276 192 1557084 1% /dev /media 1557276 0 1557276 0% /media .... /dev/sr0 1557276 26180 1531096 2% /cdrom none 1557276 26180 1531096 2% /cdrom
この状態で/cdromを見ると,
% ls /cdrom ChangeLog initrd isolinux/
一方,
% touch /cdrom/aufs_test % ls -l /cdrom 合計 6,299,136 -r--r--r-- 1 root root 5,271 3月 28日 23:53 ChangeLog -rw-r--r-- 1 kojima users 0 5月 3日 10:42 aufs_test -r--r--r-- 1 root root 6,291,456 3月 28日 01:47 initrd dr-xr-xr-x 2 root root 2,048 3月 28日 11:13 isolinux/
ChangeLogは本来DVDメディア上に存在する変更不可なファイルですが,
% sudo chmod a+rw /cdrom/ChangeLog パスワード: ***** % emacs /cdrom/ChangeLog ... % ls -l cdrom 合計 6,309,888 -rw-rw-rw- 1 root root 5,305 5月 3日 10:46 ChangeLog -rw-rw-rw- 1 kojima users 5,271 3月 28日 23:53 ChangeLog~ -rw-r--r-- 1 kojima users 0 5月 3日 10:42 aufs_test -r--r--r-- 1 root root 6,291,456 3月 28日 01:47 initrd dr-xr-xr-x 2 root root 2,048 3月 28日 11:13 isolinux/
ファイルの先頭を見ると,
% head /cdrom/ChangeLog -*- text -*- 平成22年5月3日(月) テストの入力 平成22年3月28日(日) ...
また,
% rm /cdrom/ChangeLog % ls -al /cdrom 合計 6,305,792 drwxrwxrwx 5 root root 160 5月 3日 10:57 ./ drwxr-xr-x 26 root root 4,096 4月 30日 13:59 ../ -rw-rw-rw- 1 kojima users 5,271 3月 28日 23:53 ChangeLog~ -rw-r--r-- 1 kojima users 0 5月 3日 10:42 aufs_test -r--r--r-- 1 root root 6,291,456 3月 28日 01:47 initrd dr-xr-xr-x 2 root root 2,048 3月 28日 11:13 isolinux/
この例のように,
% sudo umount /cdrom % df Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/sda4 27435156 15804032 10237464 61% / none 1557276 192 1557084 1% /dev .. /dev/sr0 1632774 1632774 0 100% /cdrom % ls -al /cdrom 合計 6,299,136 -r--r--r-- 1 root root 5,271 3月 28日 23:53 ChangeLog -r--r--r-- 1 root root 6,291,456 3月 28日 01:47 initrd dr-xr-xr-x 2 root root 2,048 3月 28日 11:13 isolinux/
aufsに書き込まれたデータは,
% ls -al /tmp/aufs/ 合計 8,192 drwxrwxrwx 4 root root 160 5月 3日 10:57 ./ drwxrwxrwt 15 root root 660 5月 3日 11:00 ../ -r--r--r-- 2 root root 0 5月 3日 10:38 .wh..wh.aufs drwx------ 2 root root 40 5月 3日 10:38 .wh..wh.orph/ drwx------ 2 root root 40 5月 3日 10:38 .wh..wh.plnk/ -r--r--r-- 2 root root 0 5月 3日 10:38 .wh.ChangeLog -rw-rw-rw- 1 kojima users 5,271 3月 28日 23:53 ChangeLog~ -rw-r--r-- 1 kojima users 0 5月 3日 10:42 aufs_test
今回はROメディアを例に用いましたが,