このページは、Single Board Computer(SBC)でLinux、The Linux Bootdisk HOWTOを参考にさせて頂きました。
1. 全体の流れ
CFに書き込むことの出来るマシンに、2種類のLinuxをインストールする。
- Kernel再構築、rp-ppoeインストールに利用するための、コンパイル作業が可能なLinux
- 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
|
|