May 14, 2004

        onlsbc1: CC/NET用コンパクトフラッシュLinuxシステム
          		---  Red Hat 8 版
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               (http://www-online.kek.jp/~inoue/parallel-CAMAC/
                                   Work/SBC-RAM9.html)



                        高エネルギー加速器研究機構
                            素粒子原子核研究所
                         物理、オンライングループ
                                井上 栄二

	目的

	    CC/NET用コンパクトフラッシュLinuxシステム、Red Hat 8 版を我々のテス
	    トのために作成した。 ここでは、tarファイルをコンパクトフラッシュ上に
	    展開して起動可能なシステムを作成する手順を示す。 復旧用に使用したPC
	    のOSは Debian GNU/Linux 3.0 である。



	(1). tarファイルの確認
	(2). コンパクトフラッシュの準備
	(3). コンパクトフラッシュ上に Linux システムを構築
	(4). 作成したコンパクトフラッシュを起動

  --------------------------------------------------------------------


 (1). tarファイルの確認


onlpc03:/# mount onlpara:/home2/onlpara-wrk /mnt
onlpc03:/# df -k
Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/sda4             14278840   3238852  10314656  24% /
onlpara:/home2/onlpara-wrk
                      22659864   5885280  15623528  28% /mnt
onlpc03:/#

onlpc03:/# ls /mnt/root/compact*
/mnt/root/compact-debian-Dec102003g.tar.gz
/mnt/root/compact-debian-Nov122003g.tar.gz
/mnt/root/compact-debian-Nov182003g.tar.gz
/mnt/root/compact-debian-Nov192003g.tar.gz
/mnt/root/compact-debian-Nov212003g.tar.gz
/mnt/root/compact-debian-Nov52003g.tar.gz
/mnt/root/compact-debian-oct162003.tar.gz
/mnt/root/compact-debian-oct172003.tar.gz
/mnt/root/compact-debian-oct202003A.tar.gz
/mnt/root/compact-debian-oct212003.tar.gz
/mnt/root/compact-debian-oct212003g.tar.gz
/mnt/root/compact-debian-oct222003g.tar.gz
/mnt/root/compact-debian-oct232003g.tar.gz
/mnt/root/compact-debian-oct232003g.tar.gz-old
/mnt/root/compact-debian-oct302003g.tar.gz
/mnt/root/compact-redhat8-May112004.tar.gz
/mnt/root/compact.tar.gz
onlpc03:/# ls -l  /mnt/root/compact-redhat8-May112004.tar.gz
-rw-r--r--    1 nobody   nogroup  160988392 May 11 15:56 /mnt/root/compact-redhat8-May112004.tar.gz
onlpc03:/# 


 (2). コンパクトフラッシュの準備

onlpc03:/home/inoue# fdisk -l

ディスク /dev/sda: ヘッド 255, セクタ 63, シリンダ 4866
ユニット = シリンダ数 of 16065 * 512 バイト

 デバイス ブート   始点      終点  ブロック   ID  システム
/dev/sda1             1      1020   8193118+   b  Win95 FAT32
/dev/sda2          1021      2040   8193150    c  Win95 FAT32 (LBA)
/dev/sda3          3847      4866   8193150    5  拡張領域
/dev/sda4          2041      3846  14506695   83  Linux
/dev/sda5          3847      4866   8193118+   b  Win95 FAT32

領域テーブル項目がディスクの順序と一致しません

ディスク /dev/sdb: ヘッド 255, セクタ 63, シリンダ 4866
ユニット = シリンダ数 of 16065 * 512 バイト

 デバイス ブート   始点      終点  ブロック   ID  システム
/dev/sdb1             1        13    104391   83  Linux
/dev/sdb2          1983      4866  23165730   83  Linux
/dev/sdb3           111      1982  15036840    5  拡張領域
/dev/sdb4            14       110    779152+  82  Linux スワップ
/dev/sdb5   *       111       716   4867663+  83  Linux
/dev/sdb6           717      1610   7181023+   b  Win95 FAT32
/dev/sdb7   *      1611      1982   2988058+  83  Linux

領域テーブル項目がディスクの順序と一致しません

ディスク /dev/sdc: ヘッド 16, セクタ 63, シリンダ 993
ユニット = シリンダ数 of 1008 * 512 バイト

 デバイス ブート   始点      終点  ブロック   ID  システム
/dev/sdc1             1       993    500440+  83  Linux

ディスク /dev/hda: ヘッド 255, セクタ 63, シリンダ 2501
ユニット = シリンダ数 of 16065 * 512 バイト

 デバイス ブート   始点      終点  ブロック   ID  システム
/dev/hda1   *         1       255   2048256    b  Win95 FAT32
/dev/hda2           256       651   3180870   82  Linux スワップ
/dev/hda3           652      2501  14860125    5  拡張領域
/dev/hda5           652       668    136521   82  Linux スワップ
/dev/hda6           669       923   2048256    b  Win95 FAT32
/dev/hda7           924      1289   2939863+   b  Win95 FAT32
/dev/hda8          1290      1544   2048256    b  Win95 FAT32
/dev/hda9          1545      1799   2048256    b  Win95 FAT32
/dev/hda10         1800      2501   5638783+   b  Win95 FAT32
onlpc03:/home/inoue# 

        USB コンパクトフラッシュ・アダプタは /dev/sdc1 として Debian のシステム
        に認識されている。 パーティショニングする。

onlpc03:/home/inoue# fdisk /dev/sdc

コマンド (m でヘルプ): m
コマンドの動作
   a   ブート可能フラグをつける
   b   bsd ディスクラベルを編集する
   c   dos 互換フラグをつける
   d   領域を削除する
   l   既知の領域タイプをリスト表示する
   m   このメニューを表示する
   n   新たに領域を作成する
   o   新たに空の DOS 領域テーブルを作成する
   p   領域テーブルを表示する
   q   変更を保存せずに終了する
   s   空の Sun ディスクラベルを作成する
   t   領域のシステム ID を変更する
   u   表示/項目ユニットを変更する
   v   領域テーブルを照合する
   w   テーブルをディスクに書き込み、終了する
   x   特別な機能 (エキスパート専用)

コマンド (m でヘルプ): p

ディスク /dev/sdc: ヘッド 16, セクタ 63, シリンダ 993
ユニット = シリンダ数 of 1008 * 512 バイト

 デバイス ブート   始点      終点  ブロック   ID  システム
/dev/sdc1             1       993    500440+  83  Linux

コマンド (m でヘルプ): d
領域番号 (1-4): 1

コマンド (m でヘルプ): n
コマンドアクション
   e   拡張
   p   基本領域 (1-4)
p
領域番号 (1-4): 1
最初 シリンダ (1-993, 初期値 1): 
初期値 1 を使います
終点 シリンダ または +サイズ または +サイズM または +サイズK (1-993, 初期値 993): 
初期値 993 を使います

コマンド (m でヘルプ): w
領域テーブルは交換されました!

ioctl() を呼び出して領域テーブルを再読込みします。
ディスクを同期させます。
onlpc03:/home/inoue# 

        ファイルシステムを作成する。

onlpc03:/home/inoue# mke2fs -j /dev/sdc1
mke2fs 1.27 (8-Mar-2002)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
125488 inodes, 500440 blocks
25022 blocks (5.00%) reserved for the super user
First data block=1
62 block groups
8192 blocks per group, 8192 fragments per group
2024 inodes per group
Superblock backups stored on blocks: 
        8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409

Writing inode tables: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 21 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
onlpc03:/home/inoue# 

        コンパクトフラッシュをマウントする。

onlpc03:/home/inoue# mount -t ext3 /dev/sdc1 /mnt1
onlpc03:/home/inoue# df -k
Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/sda4             14278840   3236600  10316908  24% /
onlpara:/home2/onlpara-wrk
                      22659864   5885280  15623528  28% /mnt
/dev/sdc1               484602      8239    451341   2% /mnt1
onlpc03:/home/inoue# 


 (3). コンパクトフラッシュ上に Linux システムを構築

        /mnt/rootcompact-redhat8-May112004.tar.gzファイルをコンパクトフラッシュ
	上に展開する。

onlpc03:/mnt1# ls -l /mnt/root/compact-redhat8-May112004.tar.gz
-rw-r--r--    1 nobody   nogroup  160988392  5月 11 15:56 /mnt/root/compact-redhat8-May112004.tar.gz
onlpc03:/mnt1# 

onlpc03:/mnt1# pwd
/mnt1
onlpc03:/mnt1# ls -l
合計 12
drwx------    2 root     root        12288  5月 14 10:46 lost+found
onlpc03:/mnt1# 
onlpc03:/mnt1# tar xzf /mnt/root/compact-redhat8-May112004.tar.gz
onlpc03:/mnt1# 

onlpc03:/mnt1# pwd
/mnt1
onlpc03:/mnt1# ls -l
合計 136
drwxr-xr-x    2 root     root         2048  1月 16  2000 bin
drwxr-xr-x    3 root     root         1024  8月  1  2003 boot
drwxr-xr-x   20 root     root       116736  5月 11 15:27 dev
drwxr-xr-x   25 root     root         2048  5月 11 15:27 etc
drwxr-xr-x    3 root     root         1024  8月  4  2003 home
drwxr-xr-x    2 root     root         1024  6月 22  2001 initrd
drwxr-xr-x    5 root     root         3072  1月 16  2000 lib
drwx------    2 root     root         1024  1月 16  2000 lost+found
drwxr-xr-x    3 root     root         1024  5月 11 14:23 mnt
drwxr-xr-x    2 root     root         1024  4月  8  2003 mnt1
drwxr-xr-x    2 root     root         1024  8月 24  1999 opt
drwxr-xr-x    2 root     root         1024  1月 16  2000 proc
drwxr-xr-x    4 root     root         1024  4月  3  2000 ramfs
drwxr-x---    3 root     root         1024  8月  1  2003 root
drwxr-xr-x    2 root     root         3072  1月 16  2000 sbin
lrwxrwxrwx    1 root     root            9  5月 14 11:05 tmp -> ramfs/tmp
drwxr-xr-x   16 root     root         1024  4月 10  2003 usr
lrwxrwxrwx    1 root     root            9  5月 14 11:05 var -> ramfs/var
onlpc03:/mnt1# 

onlpc03:/mnt1# e2label /dev/sdc1

onlpc03:/mnt1# e2label /dev/sdc1 /
onlpc03:/mnt1# e2label /dev/sdc1
/
onlpc03:/mnt1# 

	grub のセットアップを行う。
	現在、作業中のPCにつないであるディスクは、
	  ディスク /dev/hda
	  ディスク /dev/sda
	  ディスク /dev/sdb
	  ディスク /dev/sdc
	の4台である。

	grub はこれらのディスクを以下のように認識する。
	  ディスク /dev/hda を hd0 として認識する
	  ディスク /dev/sda を hd1 として認識する
	  ディスク /dev/sdb を hd2 として認識する
	  ディスク /dev/sdc を hd3 として認識する

	コンパクトフラッシュは /dev/sdc として Linuxシステムは認識しているので、
	ここでは hd3 に対して grub のセットアップを行えばよいことになる。

onlpc03:/mnt1/sbin# pwd
/mnt1/sbin
onlpc03:/mnt1/sbin# ls -l grub
-rwxr-xr-x    1 root     root       248416  9月  6  2002 grub
onlpc03:/mnt1/sbin# 

onlpc03:/mnt1/sbin# ./grub
./grub: /lib/libc.so.6: version `GLIBC_2.3' not found (required by ./grub)
onlpc03:/mnt1/sbin# 

	この部分は KNOPPIX で処理しよう。
	KNOPPIX を起動する。 ok.  立ち上がった。

root@ttyp2[knoppix]# mount -t ext3 /dev/sdc1 /mnt/sdc1
root@ttyp2[knoppix]# ls -l /mnt/sdc1
合計 136
drwxr-xr-x    2 root     root         2048 2000-01-16 10:48 bin
drwxr-xr-x    3 root     root         1024 2003-08-01 10:06 boot
drwxr-xr-x   20 root     root       116736 2004-05-11 15:27 dev
drwxr-xr-x   25 root     root         2048 2004-05-11 15:27 etc
drwxr-xr-x    3 root     root         1024 2003-08-04 13:44 home
drwxr-xr-x    2 root     root         1024 2001-06-22 03:32 initrd
drwxr-xr-x    5 root     root         3072 2000-01-16 10:49 lib
drwx------    2 root     root         1024 2000-01-16 10:34 lost+found
drwxr-xr-x    3 root     root         1024 2004-05-11 14:23 mnt
drwxr-xr-x    2 root     root         1024 2003-04-08 16:52 mnt1
drwxr-xr-x    2 root     root         1024 1999-08-24 01:03 opt
drwxr-xr-x    2 root     root         1024 2000-01-16 10:35 proc
drwxr-xr-x    4 root     root         1024 2000-04-03 15:18 ramfs
drwxr-x---    3 root     root         1024 2003-08-01 09:30 root
drwxr-xr-x    2 root     root         3072 2000-01-16 10:48 sbin
lrwxrwxrwx    1 root     root            9 2004-05-14 11:05 tmp -> ramfs/tmp
drwxr-xr-x   16 root     root         1024 2003-04-10 14:54 usr
lrwxrwxrwx    1 root     root            9 2004-05-14 11:05 var -> ramfs/var
root@ttyp2[knoppix]#

root@ttyp2[sbin]# pwd
/mnt/sdc1/sbin
root@ttyp2[sbin]# ls -l grub
-rwxr-xr-x    1 root     root       248416 2002-09-06 05:59 grub
root@ttyp2[sbin]#
root@ttyp2[sbin]# ./grub
Probing devices to guess BIOS drives. This may take a long time.

    GRUB  version 0.92  (640K lower / 3072K upper memory)

 [ Minimal BASH-like line editing is supported.  For the first word, TAB
   lists possible command completions.  Anywhere else TAB lists the possible
   completions of a device/filename. ]

grub> root (hd3,0)
 Filesystem type is ext2fs, partition type 0x83

grub> setup (hd3)
 Checking if "/boot/grub/stage1" exists... yes
 Checking if "/boot/grub/stage2" exists... yes
 Checking if "/boot/grub/e2fs_stage1_5" exists... yes
 Running "embed /boot/grub/e2fs_stage1_5 (hd3)"...  22 sectors are embedded.
succeeded
 Running "install /boot/grub/stage1 (hd3) (hd3)1+22 p (hd3,0)/boot/grub/stage2
/boot/grub/grub.conf"... succeeded
Done.

grub> quit
root@ttyp2[sbin]#

root@ttyp2[sbin]# df -k
Filesystem           1K-ブロック    使用   使用可 使用% マウント位
/dev/root                 2471      1709       762  70% /
/dev/cdrom              690882    690882         0 100% /cdrom
/dev/cloop             1830152   1830152         0 100% /KNOPPIX
/ramdisk                303288      5908    297380   2% /ramdisk
/dev/sdc1               484602    443634     15946  97% /mnt/sdc1
root@ttyp2[sbin]# cd /
root@ttyp2[/]# umount /mnt/sdc1
root@ttyp2[/]#


        注.
           "root (hd3,0)" および "setup (hd3)" のコマンドで指定するハードディス
          クの番号は、ユーザの使用環境によって変わる。 私の環境では、
              内蔵IDEハードディスク               :  /dev/hda    hd0
              外部SCSIディスク                   :    /dev/sda    hd1
              外部SCSIディスク                   :    /dev/sdb    hd2
              USB-コンパクトフラッシュR/Wアダプタ :    /dev/sdc    hd3
          となっている。


 (4). 作成したコンパクトフラッシュを起動

	作成したコンパクトフラッシュをCC/NETに装着して、電源をONにする。

	正常に立ち上がった。 ok.



---xxxx