どっかの国のPX-EH25L買った人用に書いたものを追試する

LANDISK(HDL-xxxU)に素のLinux環境を入れて起動する方法。
Eat Your Own Dogfood! ってわけで検証。
いまさら、UNIX USERのバックナンバー(2004.11)を買えってのもないだろう。だいたい、在庫あるのかな?
でも、元原稿はZopeで作った原稿管理システムで書いていたので、いまは冷たいドライブの中で拾うのたいへんだ。
あれからだいぶ状況も変わったので、どっかの国の人向けに書き下ろしてみた。
debootstrapからやっておくべきなんだろうけど、今回はそこまで手をかけていない。kogiidenaさんに感謝。
LANDISK壊れたな人もいるだろうから、メモしておく。
ただ、記憶を頼りに書いたので、これでよかったっけ?という部分もあって追試をしてみる。

Try it.

  • At first let's prepare for a new hard drive.
  • Make boot(sda1:keep small),swap(sda2),and rootfs(sda3) partition.
  • Format sda1/3 mkfs.ext3

Maxtor DiamondMax Plus9 80GB(6Y080L)をUSBアダプタ経由で接続。

# fdisk /dev/sda
Command (m for help): p
Disk /dev/sda: 80.0 GB, 80001105920 bytes
16 heads, 63 sectors/track, 155012 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1         993      500440+  83  Linux
/dev/sda2             994        1986      500472   82  Linux swap / Solaris
/dev/sda3            1987      155012    77125104   83  Linux

# mkfs.ext3 /dev/sda3
# mkfs.ext3 /dev/sda3
# mkswap /dev/sda2

次。

  • mount sda3 and do this.

# mount /dev/sda3 /media/
# cd /media/
# wget http://iohack.sourceforge.jp/kogiidena/debian26/base/base26-sh4-20060329-etch.tgz
# wget http://iohack.sourceforge.jp/kogiidena/debian26/base/landisk-tools-20061204.tgz
# tar zxvfp base26-sh4-20060329-etch.tgz
# mv debian26/* ./
# rm -r debian26/
# tar zxvfp landisk-tools-20061204.tgz
# mkdir arc
# mv base26-sh4-20060329-etch.tgz landisk-tools-20061204.tgz arc/

  • mount sda1 and do this.

# mount /dev/sda1 /mnt
# cp /media/boot/vmlinuz-2.6.16-sh /mnt
# cp /media/boot/boot.b-selk /mnt/boot.b

これは、まったくこの通り。

  • edit network settings, change fstab/hosts.allow, make lilo.cross.

linear
boot=/dev/sda
disk=/dev/sda
bios=0x80
timeout=50
default=linux
image=/boot/vmlinuz-2.6.16-sh
label=linux
root=/dev/hda3
read-only

# vi etc/network/interfaces とりあえず固定アドレスで設定。
# vi etc/resolv.conf これも同じ。
# vi etc/hosts.allow これも。
# vi etc/fstab
/dev/hda1     /boot        ext3    defaults        0 0
/dev/hda2     swap         swap    defaults        0 0
/dev/hda3     /            ext3    defaults        0 0
# vi etc/lilo.cross これは例の通り。
  • get lilo and do it.

# cd /home
# wget http://slackware.cs.utah.edu/pub/slackware/slackware-7.1/slakware/a8/lilo.tgz
# tar zxvf lilo.tgz sbin
# /home/sbin/lilo -r /media -C /etc/lilo.cross -v
# umount /dev/sda3 /dev/sda1

作業領域は、homeはやめて、/media/arcにする。

# /media/arc/sbin/lilo -r /media -C /etc/lilo.cross -v
LILO version 21.4-3, Copyright (C) 1992-1998 Werner Almesberger
'lba32' extensions Copyright (C) 1999,2000 John Coffman

Reading boot sector from /dev/sda
Merging with /boot/boot.b
Fatal: open /boot/boot.b: No such file or directory

ありゃ、ダメだな。
hda3のほうの/bootを見にいく仕組みなのね。

# /media/arc/sbin/lilo -r /mnt -C /etc/lilo.cross -v
LILO version 21.4-3, Copyright (C) 1992-1998 Werner Almesberger
'lba32' extensions Copyright (C) 1999,2000 John Coffman

/etc/lilo.cross: No such file or directory

こっちもダメか。
これならどをよ。

install=/mnt/boot.b
image=/mnt/vmlinuz-2.6.16-sh

Reading boot sector from /dev/sda
Merging with /mnt/boot.b
Fatal: open /mnt/boot.b: No such file or directory

だめだな。
sh-liloは1024シリンダ問題ありでセクタ決め打ちだっけ?
それとも、ローダーはext2を理解しているはずだから、boot.bは見つけられるのだっけ?

# cp /media/boot/boot.b-selk /media/boot/boot.b
# /media/arc/sbin/lilo -r /media -C /etc/lilo.cross -v
LILO version 21.4-3, Copyright (C) 1992-1998 Werner Almesberger
'lba32' extensions Copyright (C) 1999,2000 John Coffman

Reading boot sector from /dev/sda
Merging with /boot/boot.b
Warning: device 0x0803 exceeds 1024 cylinder limit
Fatal: sector 62565121 too large for linear mode (try 'lba32' instead)

やっぱ、そうか。
とすると、一ヶ所に詰めないとダメなのね。
必要な最低ラインは、関連するブロックデバイスファイルだったかな。

# mkdir /mnt/dev
# mknod /mnt/dev/hda b 3 0
# mknod /mnt/dev/hda1 b 3 1
# mknod /mnt/dev/hda2 b 3 2
# mknod /mnt/dev/hda3 b 3 3
# mknod /mnt/dev/sda b 8 0
# mknod /mnt/dev/sda1 b 8 1
# mknod /mnt/dev/sda2 b 8 2
# mknod /mnt/dev/sda3 b 8 3

# mkdir /mnt/etc
# cp /media/etc/lilo.cross /mnt/etc/
# vi /mnt/etc/lilo.cross
linear
boot=/dev/sda
disk=/dev/sda
bios=0x80
timeout=50
install=/boot.b
default=linux
image=/vmlinuz-2.6.16-sh
        label=linux
        root=/dev/hda3
        read-only

# /media/arc/sbin/lilo -r /mnt -C /etc/lilo.cross -v

Reading boot sector from /dev/sda
Merging with /boot.b
Fatal: mknod /tmp/dev.0: No such file or directory

/tmpもいるのかよ。

# mkdir /mnt/tmp

Fatal: creat /boot/map~: No such file or directory

をいをい。

# mkdir /mnt/boot

# /media/arc/sbin/lilo -r /mnt -C /etc/lilo.cross -v
LILO version 21.4-3, Copyright (C) 1992-1998 Werner Almesberger
'lba32' extensions Copyright (C) 1999,2000 John Coffman

Reading boot sector from /dev/sda
Merging with /boot.b
Boot image: /vmlinuz-2.6.16-sh
Added linux *
Backup copy of boot sector in /boot/boot.0800
Writing boot sector.

やっとうまくいったかな。

# cd /
# umount /mnt /media

接続して試験。
うまく起動してきているようだ。

# telnet 192.168.123.11
Trying 192.168.123.11...
Connected to 192.168.123.11.
Escape character is '^]'.
Debian GNU/Linux testing/unstable
landisk login: landisk
Password:
Linux landisk 2.6.16-sh #1 Tue Mar 28 22:23:50 JST 2006 sh4 GNU/Linux

訂正メール送らなきゃだな。