[Armadillo:08877] Re: flatfsd のバグ?
Yanagihara, Kosaku
email@hidden
2013年 5月 31日 (金) 12:03:28 JST
柳原です。
>> ■その2: flash(config)と/etc/configの両方が空っぽの場合の-rオプション
> :
> (中略)
> :
> 上の2番目の質問にも関係しますが、"-r"オプションは、
> configフラッシュが空か、壊れているときは"-w"と同じ動作を
> するようです。
> このことは、以前[Armadillo:07930]でも書いてます。
> http://lists.atmark-techno.com/pipermail/armadillo/2012-March/007933.html
「(-cオプションで検査できるとされる)configフラッシュが壊れているとき」に
ついては(どうやったら意図的にフラッシュを壊せるのか分からないので)取り敢
えずおいといて・・・
[Armadillo:07930]でも指摘されている「configフラッシュが空の場合」の分析
については異議があります。理由は・・・実験の方が分かりやすそうなので、以
下参照。
結論を言うと、configフラッシュは空でも/etc/configが空っぽじゃなければ
(8,9)何も実行されていません。言い換えると「空っぽで上書き」的な挙動です。
一方、configフラッシュと/etc/configが両方空っぽ(10,11)だと、-wと同じ結果
になります。
1. まず/etc/configにファイルを1つだけ入れる。
# rm -fr /etc/config
# mkdir /etc/config
# touch /etc/config/armadillo
# ls -la /etc/config
drwxr-xr-x 2 root root 1024 Jan 1 00:14 ./
drwxr-xr-x 17 root root 1024 Jan 1 00:14 ../
-rw-r--r-- 1 root root 0 Jan 1 00:14 armadillo
# date -r /etc/config/armadillo
Thu Jan 1 00:14:52 UTC 1970
2. configフラッシュに保存する。
# flatfsd -s
flatfsd: saving fs to partition 0, tstamp=1
flatfsd: Wrote 168 bytes to flash in 1 seconds
3. flatfsdの実行による/etc/configへの影響を確認する。
# ls -la /etc/config
drwxr-xr-x 2 root root 1024 Jan 1 00:15 ./
drwxr-xr-x 17 root root 1024 Jan 1 00:14 ../
-rw-r--r-- 1 root root 0 Jan 1 00:14 armadillo
# date -r /etc/config/armadillo
Thu Jan 1 00:14:52 UTC 1970
4. /etc/configを空っぽにする。
# rm -f /etc/config/armadillo
# ls -la /etc/config
drwxr-xr-x 2 root root 1024 Jan 1 00:15 ./
drwxr-xr-x 17 root root 1024 Jan 1 00:14 ../
5. configフラッシュから/etc/configへ書き戻す。
# flatfsd -r
flatfsd: restore fs+ from partition 0, tstamp=1
flatfsd: Created 1 configuration files (0 bytes)
# ls -la /etc/config
drwxr-xr-x 2 root root 1024 Jan 1 00:16 ./
drwxr-xr-x 17 root root 1024 Jan 1 00:14 ../
-rw-r--r-- 1 root root 0 Jan 1 00:16 armadillo
# date -r /etc/config/armadillo
Thu Jan 1 00:16:32 UTC 1970
6. /etc/configを再び空っぽに(/tmp/へ退避)する。
# mv /etc/config/armadillo /tmp/
# ls -la /etc/config
drwxr-xr-x 2 root root 1024 Jan 1 00:17 ./
drwxr-xr-x 17 root root 1024 Jan 1 00:14 ../
7. configフラッシュに保存する。
# flatfsd -s
flatfsd: saving fs to partition 0, tstamp=1
flatfsd: Wrote 118 bytes to flash in 1 seconds
8. /etc/config/armadilloを復元する。
# mv /tmp/armadillo /etc/config/
# ls -la /etc/config
drwxr-xr-x 2 root root 1024 Jan 1 00:17 ./
drwxr-xr-x 17 root root 1024 Jan 1 00:14 ../
-rw-r--r-- 1 root root 0 Jan 1 00:16 armadillo
# date -r /etc/config/armadillo
Thu Jan 1 00:16:32 UTC 1970
9. configフラッシュから/etc/configへ書き戻す(空っぽで上書きする)。
# flatfsd -r
flatfsd: restore fs+ from partition 0, tstamp=1
flatfsd: Created 1 configuration files (0 bytes)
# ls -la /etc/config
drwxr-xr-x 2 root root 1024 Jan 1 00:17 ./
drwxr-xr-x 17 root root 1024 Jan 1 00:14 ../
-rw-r--r-- 1 root root 0 Jan 1 00:16 armadillo
# date -r /etc/config/armadillo
Thu Jan 1 00:16:32 UTC 1970
10. /etc/configを再び空っぽにする。
# rm -f /etc/config/armadillo
# ls -la /etc/config
drwxr-xr-x 2 root root 1024 Jan 1 00:18 ./
drwxr-xr-x 17 root root 1024 Jan 1 00:14 ../
11. configフラッシュから/etc/configへ書き戻す(空っぽで上書きする)。
# flatfsd -r
flatfsd: restore fs+ from partition 0, tstamp=1
flatfsd: Nonexistent or bad flatfs (0), creating new one...
flatfsd: saving fs to partition 0, tstamp=1
flatfsd: Wrote 14096 bytes to flash in 1 seconds
flatfsd: Created 20 configuration files (11056 bytes)
# ls -la /etc/config
drwxr-xr-x 4 root root 1024 Jan 1 00:18 ./
drwxr-xr-x 17 root root 1024 Jan 1 00:14 ../
-rw-r--r-- 1 root root 37 Jan 1 00:18 .romfsid
drwxr-xr-x 8 root root 1024 Jan 1 00:18 cron/
-rw-r--r-- 1 root root 38 Jan 1 00:18 hosts
-rw-r--r-- 1 root root 603 Jan 1 00:18 hosts.allow
-rw-r--r-- 1 root root 714 Jan 1 00:18 hosts.deny
-rw-r--r-- 1 root root 20 Jan 1 00:18 htpasswd
-rw-r--r-- 1 root root 19 Jan 1 00:18 httpd.conf
-rw-r--r-- 1 root root 9117 Jan 1 00:18 local.conf
-rw-r--r-- 1 root root 41 Jan 1 00:18 pointercal
-rwxr-xr-x 1 root root 142 Jan 1 00:18 rc.local*
drwxr-x--- 2 root root 1024 Jan 1 00:18 ssl/
# ls -la /etc/default
drwxr-xr-x 4 root root 1024 May 31 2013 ./
drwxr-xr-x 17 root root 1024 Jan 1 00:14 ../
-rw-rw-r-- 1 root root 37 May 31 2013 .romfsid
drwxr-xr-x 8 root root 1024 May 23 2013 cron/
-rw-r--r-- 1 root root 38 Nov 21 2012 hosts
-rw-r--r-- 1 root root 603 Nov 19 2012 hosts.allow
-rw-r--r-- 1 root root 714 Nov 19 2012 hosts.deny
-rw-r--r-- 1 root root 20 May 31 2013 htpasswd
-rw-r--r-- 1 root root 19 May 31 2013 httpd.conf
-rw-r--r-- 1 root root 9117 Nov 22 2012 local.conf
-rw-r--r-- 1 root root 41 Nov 19 2012 pointercal
-rwxrwxr-x 1 root root 142 Apr 22 2013 rc.local*
drwxr-x--- 2 root root 1024 Nov 21 2012 ssl/
以上
armadillo メーリングリストの案内