株式会社インタフェース Topページへ
 Site Map  English site
Made in 日本!
新着情報 download サポート 会社概要 採用情報 購入方法 資料請求
 
SH_Howtoタイトル ご意見・ご要望はこちら
>>How toのTopへ

GNU/Linuxが入ったCFをリードオンにする方法 最終更新日:2003/01/15
 
このHow-toでは、GNU/Linuxが入ったCFをリードオンリーにする方法を説明します。
注1) 記載している内容は、動作の保証はありません。使用される場合は、すべて自己責任でお願いします。
注2)この変更はとても危険です。間違えるとLinuxが起動しなくなる事もあります。 バックアップを取り、バックアップ側で試してみることを 強くお勧めします。
注3)弊社Web siteからファイルをダウンロードする場合は、ユーザIDを取得してください。

1. 変更方法
(1) リードオンリーにしたいCFでLinuxを起動します。
(2) /etc/fstab, /etc/init.d/rcS, /etc/init.d/modutilsを変更します。diffした結果を、後程紹介します。
(3) shutdown して完了です。


2. 確認してみましょう
(1) 上で変更したCFでLinuxを起動します。すると、起動中に以下のメッセージが表示されます。
(ご使用の環境により表示は異なります。)
      :
      :

INIT: version 2.84 booting
mke2fs 1.30-WIP (30-Sep-2002)
mke2fs 1.30-WIP (30-Sep-2002)
mke2fs 1.30-WIP (30-Sep-2002)
mke2fs 1.30-WIP (30-Sep-2002)
Activating swap

      :
      :
 
何度もLinuxを起動したCFだと、もしかしたら、mke2fsの表示の後で、コピーする為の領域が足りないと言うエラーメッセージが出るかもしれません。その場合は、ls -ll /var/log/でファイルサイズを調べてください。
/var/log/messagesなどのファイルサイズがとても大きくなっていると思われます。
rm, touchでサイズを0にしてから、もう一度試してみてください。
 
rootでloginした後、cat /proc/mountsすると、
/dev/root / ext2 ro 0 0
/dev/ram0 /var ext2 rw 0 0
/dev/ram1 /etc ext2 rw 0 0
/dev/ram2 /dev ext2 rw 0 0
/dev/ram3 /tmp ext2 rw 0 0
proc /proc proc rw 0 0
devpts /dev/pts devpts rw 0 0
usbdevfs /proc/bus/usb usbdevfs rw 0 0
このような感じの結果になります。

3. /etc/fstab, /etc/init.d/rcS, /etc/init.d/modutilsの変更内容(diffした結果)
(1) /etc/fstab
--- ./etc/fstab-orig Fri Oct 11 14:33:37 2002
+++ ./etc/fstab Wed Jan 15 13:08:40 2003
@@ -1,6 +1,5 @@
 # /etc/fstab: static file system information.
 #
-# <file system><mount point><type><options><dump><pass>
-/dev/hda1/ext2defaults,errors=remount-ro11
-proc/procprocdefaults00
-/dev/hda2swapswapdefaults00
+# <file system><mount point><type><options><dump><pass>
+/dev/hda1/ext2ro00
+proc/procprocdefaults00
 
(2) /etc/init.d/rcS
--- ./etc/init.d/rcS-orig Tue Jul 9 09:00:00 2002
+++ ./etc/init.d/rcS Wed Jan 15 15:24:09 2003
@@ -12,6 +12,43 @@
 umask 022
 export PATH runlevel prevlevel

+# make RAM-Disk for Read-only
+#   15.01.15 : GreenArt & Jeanne
+
+mke2fs -q -i 2048 /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
+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
+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
+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/init.d/modutils
--- ./etc/init.d/modutils-orig Fri Jun 21 09:00:00 2002
+++ ./etc/init.d/modutils Wed Jan 15 15:24:05 2003
@@ -7,9 +7,12 @@
[ -f /proc/modules ] || exit 0
[ -e /sbin/depmod ] || exit 0

-echo -n "Calculating module dependencies... "
-depmod -a > /dev/null
-echo "done."
+#########################################################
+##### comment for Read-only, 15.01.15 : GreenArt & Jeanne
+#####echo -n "Calculating module dependencies... "
+#####depmod -a > /dev/null
+#####echo "done."
+#########################################################

# Loop over every line in /etc/modules.
echo -n 'Loading modules: '
 
以上で完了です。
尚、この変更はとても重要です。間違えるとLinuxが起動しなくなる事もあります。
バックアップを取り、バックアップ側で試してみることを 強くお勧めします。
 
番外編   /をrw, roモードに変更する方法〜
/をrwモードに変更するには、
#mount -wn -o remount /
/をroモードに戻すには、
#mount -rn -o remount /
とします。
上へ

|Home |What's New! |Products |Download |Support |Profile |Employment |Sales |Reference |SiteMap |
|個人情報の取扱について |UserID |Logon |Logoff |English site | © 2000, 2010 Interface Corporation. All rights reserved.