初代玄箱(無印)をU-Boot化したあと、放置していたのでHDDをフォーマットして再インストールを行った時のメモ。
- HDDのフォーマット
今回は意図的にHDDを取り出して、Windows7でパーティションの削除を行いました。
フォーマットが完了したら玄箱に戻して、組み立てます。 - ncで起動状況の確認とU-Bootコマンドモードへ
Windowsパソコンからncを用意し、玄箱とクロスケーブルで接続(ストレートケーブルと背面スイッチで対応)。
Windowsパソコン側のIPアドレスを198.168.11.149に設定し、コマンドプロンプトからncのフォルダに移動して、以下のコマンドを実行し起動するnc -v -v -n -u -s 192.168.11.149 -p 6666 192.168.11.150 6666
これで192.168.11.150をウォッチする状態になるので、玄箱を起動すると下記のように表示されるはず
U-Boot 1.1.4 LiSt 2.1.0 (Sep 21 2006 - 00:22:56) LinkStation / KuroBox CPU: MPC8245 Revision 1.4 at 196.608 MHz: 16 kB I-Cache 16 kB D-Cache DRAM: 64 MB FLASH: 4 MB ~省略~ Boot in 10 seconds ('s' to stop)...
ここで[s]を入力し、U-Bootのコマンドモードに入る。
Boot in 7 seconds ('s' to stop)... s =>
- EMモードへ
=> run writeng Un-Protected 1 sectors Flash erase: first = 55 @ 0xfff70000 last = 55 @ 0xfff70000 Flash erase: Done Erased 1 sectors Copy to Flash... done => run emboot ## Booting image at ffc00000 ... ******* Product Information ******* [#k0621bb4] ---------------------------------- Product Name: KURO-BOX(IETSUNA) VER: 1.02 Date: 2004/4/16 11:46:41 ---------------------------------- Verifying checksum... OK Uncompressing kernel...done. Loading Ramdisk at 0x03C67000, end 0x03E6E647 ... OK Booting the kernel ~省略~
これでEMモードで立ち上がっているはずなので、クロスケーブルを外し、DHCPが動いているLANに接続する。
- パーティションを作成
HDD全領域を削除root@KURO-BOX:~# /sbin/mfdisk -e /dev/hda delete partition 1 delete partition 2 delete partition 3 delete partition 4 create partitions... deleate all partitions. The partition table has been altered! Syncing disks.
続いて領域確保(第1領域:4GB,第2領域SWAP用:256MB,第3領域:残り)
root@KURO-BOX:~# /sbin/mfdisk -c /dev/hda Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-15798, default 1):[enter] Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-15798, default 15798): +4000M Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 2 First cylinder (8128-15798, default 8128):[enter] Using default value 8128 Last cylinder or +size or +sizeM or +sizeK (8128-15798, default 15798): +256M Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 3 First cylinder (8649-15798, default 8649):[enter] Using default value 8649 Last cylinder or +size or +sizeM or +sizeK (8649-15798, default 15798):[enter] Using default value 15798 Command (m for help): t Partition number (1-4): 2 Hex code (type L to list codes): 82 Changed system type of partition 2 to 82 (Linux swap) Command (m for help): p Disk /dev/hda: 16 heads, 63 sectors, 15798 cylinders Units = cylinders of 1008 * 512 bytes Device Boot Start End Blocks Id System /dev/hda1 1 8127 4095976+ 83 Linux /dev/hda2 8128 8648 262584 82 Linux swap /dev/hda3 8649 15798 3603600 83 Linux Command (m for help): w The partition table has been altered! Syncing disks.
- 作成した領域をフォーマット
まずは第1領域(LinuxOS)root@KURO-BOX:~# /sbin/mke2fs -j /dev/hda1 mke2fs 1.22, 22-Jun-2001 for EXT2 FS 0.5b, 95/08/09 Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 512000 inodes, 1023994 blocks 51199 blocks (5.00%) reserved for the super user First data block=0 32 block groups 32768 blocks per group, 32768 fragments per group 16000 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736 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.
次に第2領域(Swap)
root@KURO-BOX:~# /sbin/mkswap /dev/hda2 Setting up swapspace version 1, size = 268881920 bytes
最後に第3領域(Data)
root@KURO-BOX:~# /sbin/mke2fs -j -m 0 /dev/hda3 mke2fs 1.22, 22-Jun-2001 for EXT2 FS 0.5b, 95/08/09 Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 450688 inodes, 900900 blocks 0 blocks (0.00%) reserved for the super user First data block=0 28 block groups 32768 blocks per group, 32768 fragments per group 16096 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736 Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 28 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.
- 作成した領域をマウント
root@KURO-BOX:~# mount -t ext3 /dev/hda1 /mnt root@KURO-BOX:~# mount -t ext3 /dev/hda3 /mnt2 root@KURO-BOX:~# df -h Filesystem Size Used Available Use% Mounted on /dev/ram0 9.5M 5.0M 4.5M 53% / /dev/hda1 3.8G 32.1M 3.6G 1% /mnt /dev/hda3 3.4G 32.1M 3.4G 1% /mnt2
- OSデータの転送
FTP(FileZilla等)で下記のファイルを/mnt2(/dev/hda3)にu-bootフォルダを作成して下記の3つを保存する- Revulo’s Laboratoryより debian5.0 lenny の圧縮ファイル(debian-lenny-kuroBOX-20090317.tgz)
- カーネルイメージ(kernelimage-2.6.20-kuroBOX-uImage.tgz)
- カーネルモジュール(modules-2.6.20-kuroBOX.tgz)
転送が終わったら確認してみる。
root@KURO-BOX:~# ls /mnt2/u-boot debian-lenny-kuroBOX-20090317.tgz kernelimage-2.6.20-kuroBOX-uImage.tgz modules-2.6.20-kuroBOX.tgz
- OSのインストール
Debian5.0(lenny)を /dev/hda1(/mnt)に展開root@KURO-BOX:~# cd /mnt root@KURO-BOX:~# pwd /mnt root@KURO-BOX:~# tar xvzf /mnt2/u-boot/debian-lenny-kuroBOX-20090317.tgz ~省略~
/dev/hda1(/mnt)の確認
root@KURO-BOX:~# ls /mnt bin home mnt sbin tmp boot lib opt selinux usr dev lost+found proc srv var etc media root sys
カーネルイメージ(2.6.20)を /dev/hda1/boot(/mnt/boot) に展開
root@KURO-BOX:~# tar xvfz /mnt2/u-boot/kernelimage-2.6.20-kuroBOX-uImage.tgz .config System.map vmlinux.UBoot uImage
/boot の内容を確認
root@KURO-BOX:~# ls /mnt/boot System.map uImage vmlinux.UBoot
カーネルモジュール(2.6.20)を /dev/hda1/lib/modules(/mnt/lib/modules) に展開
root@KURO-BOX:~# cd /mnt/lib/modules root@KURO-BOX:~# pwd /mnt/lib/modules root@KURO-BOX:~# tar xvzf /mnt2/u-boot/modules-2.6.20-kuroBOX.tgz ~省略~
/lib/modules/2.6.20-kuroboxが出来ていることを確認
root@KURO-BOX:~# ls 2.6.20-kurobox root@KURO-BOX:~# ls 2.6.20-kurobox build modules.dep modules.pcimap kernel modules.ieee1394map modules.symbols modules.alias modules.inputmap modules.usbmap modules.ccwmap modules.isapnpmap source
-
lenny のネットワーク設定
再起動前にネットワークの設定を行っておく、念のため固定IPを付与root@KURO-BOX:~# vi /mnt/etc/network/interfaces iface eth0 inet static address 192.168.0.100 network 192.168.0.0 netmask 255.255.255.0 broadcast 192.168.0.255 gateway 192.168.0.1 iface lo inet loopback auto eth0 lo
root@KURO-BOX:~# vi /mnt/etc/hosts 127.0.0.1 localhost 192.168.0.100 KURO-BOX
root@KURO-BOX:~# vi /mnt/etc/hosts.allow #ALL: 192.168.0.0/255.255.0.0 #ALL: 127.0.0.1 ALL : ALL : ALLOW
root@KURO-BOX:~# vi /mnt/etc/resolv.conf search nameserver 192.168.0.1
-
fstabの設定を自環境に修正
root@KURO-BOX:~# vi /mnt/etc/fstab # /etc/fstab: static file system information. # #
proc /proc proc defaults 0 0 /dev/hda2 none swap sw 0 0 /dev/hda1 / ext3 defaults,noatime,errors=remount-ro 0 0 /dev/hda3 /mnt ext3 defaults,noatime 0 0 -
EMを抜けて再起動
EMモードを抜けるコマンドを書くroot@KURO-BOX:~# echo -n "OKOK" > /dev/fl3
コマンドの書き込みが行えているか確認
root@KURO-BOX:~# dd if=/dev/fl3 bs=4 count=1 OKOK1+0 records in 1+0 records out 4 bytes transferred in 0.006583 seconds (608 bytes/sec)
再起動
root@KURO-BOX:~# reboot
-
Debian5.0 Lennyの起動確認
telnetで先ほど設定したIPに接続しログイン後rootになれることを確認Debian GNU/Linux 5.0 KURO-BOX login: tmp-kun Password: tmp-kun ~省略~ tmp-kun@KURO-BOX:~$ su パスワード: root KURO-BOX:/home/tmp-kun#
玄箱がDHCPで取得したIPアドレスを調べて、telnetでログインを行う。
Kroutoshikou KURO-BOX (IETSUNA)
kernel 2.4.17_kuro-box on ppc
KURO-BOX login: root
Password: kuro