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