第 3 章 各機能の設定方法 46
3.2 リードオンリCF
ここでは、CPZ-SH03のCFをリードオンリにする方法を説明します。
注意
!
ここで説明する方法を誤ると、OSが起動できなくなります。
必ず、『29ページ
2.4 CFのリカバリ手順』ができることを確認してから行ってください。
3.2.1 リードオンリにする方法
CPZ-SH03のCFをリードオンリにするためには、CF内の /etc/fstab,/etc/init.d/rcS,/etc/init.d/modutilsを変
更する必要があります。開発キットCD内の/cpz-readonlyディレクトリに、変更したファイルがありますので、CPZ-SH03側
CFの/etcディレクトリ,/etc/init.dディレクトリにコピーし、シャットダウンします。
注意
!
何度も起動・終了を繰り返すと、/var/logディレクトリのファイルサイズが大きくなり、コピーする ための領域が足りず、起動できなくなることがあります。
apt-get cleanを実行し、パッケージのローカル情報を削除します。また、/var/logディレクトリを開
発キットCD内の/cpz-readonly/clean-var-logディレクトリを参考に、ログファイルのサイズを小さ くした後、/etcディレクトリの変更を行ってください。1.
開発キットCD内のcpz-readonlyディレクトリのetcファイルをCPZ-SH03にコピーします。最後にシャットダウンします。
greenart:~# mount kitty:/opt/ /mnt/
greenart:~# cd /mnt/cpz-readonly/
greenart:/mnt/cpz-readonly# cp -a fstab /etc/
greenart:/mnt/cpz-readonly# cp -a rcS /etc/init.d/
greenart:/mnt/cpz-readonly# cp -a modutils /etc/init.d/
greenart:/mnt/cpz-readonly# cd greenart:~# umount /mnt/
greenart:~# shutdown -h now INIT: Switching to runlevel: 0
INIT: Sending processes the TERM signal INIT: Sending processes the KILL signal ・
・ ・
Unmounting remote filesystems... done.
Deconfiguring network interfaces: done.
Deactivating swap... done.
Unmounting local filesystems... done.
Power down.
3.2.2 リードオンリを解除する方法
リードオンリを、元に戻すに場合は、
greenart:~# umount /etc/
greenart:~# mount -wn -o remount /
と実行した後、開発キットCD内の./cpz-readonly/内にあるfstab-orig, rcS-orig, modutils-origを、それぞ れ、/etc/fstab,/etc/init.d/rcS,/etc/init.d/modutilsにコピーし、rebootすることで行えます。
1.
開発キットCD内のcpz-readonly/ディレクトリのetcファイル(xxx-orig)をCPZ-SH03にコピーします。最後にシャットダウンします。
greenart:~# umount /etc/
greenart:~# mount -wn -o remount /
EXT3 FS 2.4-0.9.16, 02 Dec 2001 on ide0(3,1), internal journal greenart:~# mount kitty:/opt /mnt/
greenart:~# cd /mnt/cpz-readonly/
greenart:/mnt/cpz-readonly# cp -a fstab-orig /etc/fstab greenart:/mnt/cpz-readonly# cp -a rcS-orig /etc/init.d/rcS
greenart:/mnt/cpz-readonly# cp -a modutils-orig /etc/init.d/modutils greenart:/mnt/cpz-readonly# cd
greenart:~# umount /mnt/
greenart:~# shutdown -h now
Broadcast message from root (ttySC1) (Thu Jun 30 13:27:33 2005):
The system is going down for system halt NOW!
INIT: Switching to runlevel: 0
INIT: Sending processes the TERM signal INIT: Sending processes the KILL signal ・
・ ・
Unmounting remote filesystems... done.
Deconfiguring network interfaces: done.
Deactivating swap... done.
Unmounting local filesystems... done.
Power down.
2. CPZ-SH03の電源を入れ、echoで書き込みができることを確認します。
greenart:~# echo "abc" >xxx.xxx greenart:~# cat xxx.xxx
abc greenart:~#
3.2.3 リードオンリ設定ファイルの変更内容
リードオンリ設定で変更したファイルの変更内容は以下の通りです。
(diffコマンドを実行した差分情報です。)
1. /etc/fstab
--- fstab-orig 2005-05-17 10:09:29.000000000 +0900 +++ fstab 2005-05-19 15:05:48.000000000 +0900
@@ -1,5 +1,5 @@
# /etc/fstab: static file system information.
#
-# <file system> <mount point> <type> <options> <dump> <pass>
-/dev/hda1 / ext3 defaults,errors=remount-ro1 1
-proc /proc proc defaults 0 0
+# <file system> <mount point> <type> <options> <dump> <pass>
+/dev/hda1 / ext3 ro 0 0
+proc /proc proc defaults 0 0
2. /etc/init.d/rcS
--- rcS-orig 2002-07-09 09:00:00.000000000 +0900 +++ rcS 2005-05-19 13:26:52.000000000 +0900
@@ -12,6 +12,44 @@
umask 022
export PATH runlevel prevlevel
+#######################################
+##### make RAM-Disk for Read-only #####
+#######################################
+
+mke2fs -q -i 2048 /dev/ram0; tune2fs -O ^dir_index /dev/ram0 +mount -n -o rw /dev/ram0 /mnt
+for i in `ls -1 /var | grep -v "cache" | grep -v "lib"`
+do
+ cp -a /var/$i /mnt/
+done
+mkdir /mnt/cache
+for i in `ls -1 /var/cache | grep -v "apt"`
+do
+ cp -a /var/cache/$i /mnt/cache/
+done
+mkdir /mnt/lib
+for i in `ls -1 /var/lib | grep -v "apt" | grep -v "dpkg"`
+do
+ cp -a /var/lib/$i /mnt/lib/
+done
+umount -n /mnt
+mount -n -o rw /dev/ram0 /var +
+mke2fs -q -i 2048 /dev/ram1; tune2fs -O ^dir_index /dev/ram1 +mount -n -o rw /dev/ram1 /mnt
+cp -a /etc/* /mnt/
+umount -n /mnt
+mount -n -o rw /dev/ram1 /etc +
+mke2fs -q -i 2048 /dev/ram2; tune2fs -O ^dir_index /dev/ram2 +mount -n -o rw /dev/ram2 /mnt
+cp -a /dev/* /mnt/
+umount -n /mnt
+mount -n -o rw /dev/ram2 /dev +
+mke2fs -q -i 2048 /dev/ram3; tune2fs -O ^dir_index /dev/ram3 +mount -n -o rw /dev/ram3 /tmp
+ #
# See if system needs to be setup. This is ONLY meant to # be used for the initial setup after a fresh installation!
3. /etc/modutils
--- modutils-orig 2002-06-21 09:00:00.000000000 +0900 +++ modutils 2005-05-19 13:38:04.000000000 +0900
@@ -7,9 +7,11 @@
[ -f /proc/modules ] || exit 0 [ -e /sbin/depmod ] || exit 0
-echo -n "Calculating module dependencies... "
-depmod -a > /dev/null -echo "done."
+#######################################################
+#####echo -n "Calculating module dependencies... "
+#####depmod -a > /dev/null +#####echo "done."
+#######################################################
# Loop over every line in /etc/modules.
echo -n 'Loading modules: '