LinuxでRouterを作る - CFへのコピー

Last Modified: 2004.02.18

5. CFへのコピー
このページは、Single Board Computer(SBC)でLinuxThe Linux Bootdisk HOWTOを参考にさせて頂きました。

1. 全体の流れ

CFに書き込むことの出来るマシンに、2種類のLinuxをインストールする。
  1. Kernel再構築、rp-ppoeインストールに利用するための、コンパイル作業が可能なLinux
  2. Routerに使うための最小構成のLinux
この2種類のLinuxを利用して、CFにRouter環境を構築する。
今回は、CFをSCSIドライブとして認識可能なデスクトップで作業した。
コンパイル可能なLinux /dev/sdb2
Router用最小構成Linux /dev/sdb3
CF /dev/sdc1

2. CFのフォーマット

コンパイル可能なLinux(/dev/sdb2)で、CFをフォーマットする。
64MBのCFではinode数が少ないので、inodeを増やしておく。

 [root@router root]# fdisk /dev/sdc
 [root@router root]# mke2fs /dev/sdc1 -N 32768            <--- inodeを32768に増やしてフォーマット
 [root@router root]# mkdir /mnt/cf
 [root@router root]# mount /dev/sdc1 /mnt/cf              <--- /mnt/cfにCFをマウント

3. KernelのCFへのコピー


 [root@router root]# mkdir /mnt/cf/boot
 [root@router root]# cp /usr/src/linux/arch/i386/boot/bzImage /mnt/cf/boot/vmlinuz
 [root@router root]# cp /usr/src/linux/System.map /mnt/cf/boot

4. CFへのファイルのコピー

/mnt/sdb3にrouter用の最小構成Linux(/dev/sdb3)をマウントし、必要なファイルをcp -aでCFにコピーする。

 [root@router root]# mkdir /mnt/sdb3
 [root@router root]# mount /dev/sdb3 /mnt/sdb3
 [root@router root]# cp -a /mnt/sdb3/dev /mnt/cf
 .....

必要なファイルは以下の通り。
/dev そのままコピー(不要なデバイスは消せるか、大して容量は変わらない)。
/etc そのままコピー。
/home
/mnt
/root
/sbin
/tmp
/var
/bin tcsh, csh以外全てコピー
/lib modulesの下以外全てコピー
/usr /bin 全てコピー
/etc
/usr/libexec
/local
/sbin
/tmp
/lib /perl5以外をコピー。
/share 以下のファイルだけコピー
/dict,
/vim/vimrc, /vim/vim61/syntax/syntax.vim, /vim/vim61/syntax/nosyntax.vim,
/tabset,
/terminfo/vt100, /terminfo/kterm, /terminfo/rxvt, /terminfo/linux,
pci.ids
/proc マウントポイントとして/mnt/cfにディレクトリだけ作成し、chmod 555 /mnt/cf/proc を実行。

5. /mnt/cf/etc/fstabの編集

MicroPCのCFは、/dev/hdc1として認識されることに注意。

 /dev/hdc1    /        ext2    defaults 1 1
 none         /proc    proc    defaults 0 0

6. initrd

mkinitrdがエラーを出すので、空の/lib/modules/2.4.20-Rを作っておく。

 [root@router root]# mkinitrd --omit-scsi-modules --fstab=/mnt/cf/etc/fstab /mnt/cf/boot/initrd 2.4.20-R

7. LILOの設定

LILOに必要なファイルをコピー

 [root@router root]# cp /boot/boot-text.b /mnt/cf/boot/boot.b

CFはデスクトップからは/dev/sdc1, MicroPCからは/dev/hdc1と見えることに注意して、 /mnt/cf/etc/lilo.confを編集

 boot=/dev/sdc                                            <--- sdc(デスクトップから見たCF)のMBRを書き換え
 disk=/dev/sdc
     bios=0x80                                            <--- 0x80は1台目のHDDと言う意味。
 map=/boot/map
 install=/boot/boot.b
 prompt
 timeout=10
 lba32
 default=linux

 image=/boot/vmlinuz
         label=linux
         initrd=/boot/initrd
         read-only
         root=/dev/hdc1

以下のコマンドで、/mnt/cfに一度chrootしてからliloが実行される。

 [root@router root]# /sbin/lilo -r /mnt/cf -v

<Prev Top Next>
Copyright(C) 2001-2003 Katsuyuki Kobayashi.
このサイトへのリンクや引用時はメール頂戴
webmaster@kkoba.com