ss/cpをマウントしてみる

確認用のファイルを作成。

# touch /mnt/nilfs/testfile
# ls -al /mnt/nilfs/testfile
-rw-r--r-- 1 root root 0 2008-03-07 13:06 /mnt/nilfs/testfile


マウントポイントを作ってssをマウント。

# mkdir /mnt/nilfs-backup
# mount -t nilfs2 -r -o cp=170 /dev/sda6 /mnt/nilfs-backup/

確認用ファイルがないことを確認。

# ls -l /mnt/nilfs-backup/testfile
ls: /mnt/nilfs-backup/testfile: そのようなファイルやディレクトリはありません

マウント状態の情報。

# df
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/sda6             10002428    638972   8855552   7% /mnt/nilfs
/dev/sda6             10002428    638972   8855552   7% /mnt/nilfs-backup
# cat /proc/mounts
/dev/sda6 /mnt/nilfs nilfs2 rw,noatime 0 0
/dev/sda6 /mnt/nilfs-backup nilfs2 ro,noatime 0 0


古いファイルを最新のファイルに上書きはできない。

# ls -l /mnt/nilfs/dd.text
-rw-r--r-- 1 root root 102400000 2008-03-06 17:38 /mnt/nilfs/dd.text
# cp /mnt/nilfs-backup/dd.text /mnt/nilfs/dd.text
cp: `/mnt/nilfs-backup/dd.text' と `/mnt/nilfs/dd.text' は同じファイルです

最新のファイルを削除するなら出来る。

# rm /mnt/nilfs/dd.text
# cp /mnt/nilfs-backup/dd.text /mnt/nilfs/dd.text
# ls -al /mnt/nilfs/dd.text
-rw-r--r-- 1 root root 102400000 2008-03-07 13:54 /mnt/nilfs/dd.text

最新のファイルを削除しなくてもファイル名を変えればできる。

# cp /mnt/nilfs-backup/dd.text /mnt/nilfs/dd.text2
# ls -al /mnt/nilfs/dd.text2
-rw-r--r-- 1 root root 102400000 2008-03-07 13:13 /mnt/nilfs/dd.text2


cp/ssのアンマウント。

# umount /mnt/nilfs-backup


-r なしだとどうなる? 
コマンドエラーでマウントできない。

# mount -t nilfs2 -o cp=170 /dev/sda6 /mnt/nilfs-backup
mount.nilfs2: the device already has a rw-mount on /mnt/nilfs.
                multiple rw-mount is not supported.


元がマウントされていないくてもcp/ssはマウントできる?
できる。

# umount /mnt/nilfs
# mount -t nilfs2 -r -o cp=170 /dev/sda6 /mnt/nilfs-backup/
# df
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/sda6             10002428    843772   8650752   9% /mnt/nilfs-backup


同一cp/ssの多重マウントはできる? 意味があるとは思わないけど。

# mount -t nilfs2 -r -o cp=170 /dev/sda6 /mnt/nilfs-backup/
# mkdir /mnt/nilfs-backup2
# mount -t nilfs2 -r -o cp=170 /dev/sda6 /mnt/nilfs-backup2
# df
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/sda6             10002428    843772   8650752   9% /mnt/nilfs-backup
/dev/sda6             10002428    843772   8650752   9% /mnt/nilfs-backup2
# diff /mnt/nilfs-backup /mnt/nilfs-backup2
# ls -al /mnt/nilfs-backup
合計 100413
drwxr-xr-x  3 root root      4096 2008-03-06 19:10 .
drwxr-xr-x  6 root root      4096 2008-03-07 14:04 ..
-rw-r--r--  1 root root         0 2008-03-06 17:33 .nilfs
-rw-r--r--  1 root root         0 2008-03-06 17:33 .sketch
drwxr-xr-x 97 root root      8192 2008-03-06 19:11 clients
-rw-r--r--  1 root root 102400000 2008-03-06 17:38 dd.text
# ls -al /mnt/nilfs-backup2
合計 100413
drwxr-xr-x  3 root root      4096 2008-03-06 19:10 .
drwxr-xr-x  6 root root      4096 2008-03-07 14:04 ..
-rw-r--r--  1 root root         0 2008-03-06 17:33 .nilfs
-rw-r--r--  1 root root         0 2008-03-06 17:33 .sketch
drwxr-xr-x 97 root root      8192 2008-03-06 19:11 clients
-rw-r--r--  1 root root 102400000 2008-03-06 17:38 dd.text


一応試したのでメモしておく。
当然ながら、同じNILFS2領域の二重マウントはエラーになる。

# mount /dev/sda6 /mnt/nilfs/ -t nilfs2
mount.nilfs2: the device already has a rw-mount on /mnt/nilfs.
                multiple rw-mount is not supported.