Thanks Driven Life

日々是感謝

【Debian (etch から lenny) on Libretto L1】 インストール

前回の記事からの続きで、簡単に流れを。
やりたいことと制限仕様は

  • Libretto L1 では HDD 、USB-FDD もしくは 純正の USB-CDD からしか起動できない
  • なので、 HDD に debian/netboot の vmlinuz と initrd を置いて起動する
  • ファイルは USB メモリから入れる。

1) 1 FD Linux から起動し、起動ファイルを HDD へコピー
前回も書いたように、Partboot for USB floppy drives (Partboot-usb) を使います。 USB-FDD は研究室のを使い、FD への書き込みは Windows で行いました。 書き込みソフトは、rwwrtwin を使いました。 http://ftp.jp.debian.org/debian/tools/ にあります。 Partboot のイメージを上のサイトからとってきて、FD に書き込みます。 基本的に必要なのは partboot-x.x.xx-usb.img と supp.img です。 なのでフロッピーは2枚必要になるかと。 partboot-x.x.xx-usb.img の方が boot ディスクになるので、そいつから起動。 起動し終わるとプロンプトが出るので〜ってのは上のサイト見ればわかるかな。 supp.img を読み込まないと、USB メモリのデータが見れないので(VFAT)。 あと、HDD のフォーマットとか、ファイルシステムの変更とか、 パーティション変更とかをしたい場合は、parted というコマンドで出来ます。 USB メモリ経由で、netboot/debian-installer/i386/ にある initrd と linux (あとで vmlinuz に rename) を HDD に入れます。入れる場所はのちほど grub とかで指定するので覚えて置くように。
2) grub で vmlinuz 、initrd を指定して起動
HDD にはブートローダが入ってない(正確に言えば壊れた)ので、FD の grub から起動します。 どっかから grub の CDイメージを探してきて、その中に grub.img ってのがあるので そいつを FD に書き込んで、起動すれば grub のプロンプトになります。 あとは、さっき置いた initrd や vmlinuz を指定して起動すればおk。 たとえば、置いた場所が /dev/hda1 の /boot/ だとすると
grub> kernel (hd0,0)/boot/vmlinuz root=/dev/ram0
grub> initrd (hd0,0)/boot/initrd
grub> boot
ぐらいでいけないかな。まあデバイス名とかは環境で変わるので適当に。 うまくいけば、Debian (lenny) のネットワークインストールが始まります。
3) インストール中の話
サーバからパッケージ落としてくるときに、こんなメッセージが
eth0:bogus packet size:32864 status=0x21 nxpg=0xed
eth0:nextframe inconsistency 0xcd
(数字は適当。) これが出ると、ほぼ確実に回線、というか LAN カードの調子が悪くなり ネットにつながらなくなるということが。 HDD フォーマットし終わった後にこれされると、再び 1) から始めないといけない。疲れる。 調べてみると、1回に受信したパケットサイズがでかすぎるってことらしい。 なので、インターフェースの MTU を変えてやってみることに。 ifconfig は無いので IP コマンドで。 # ip link show eth0 とかすると、文中に MTU = 1500 ぐらいが出てきました。 こいつを # ip link set eth0 mtu 1000 とかやると MTU が変更されました。 1300 とか 1454 でもよかったかもしれないけど とりあえずこれでやるとエラーメッセージも出ず、平和に終わりました。

以上。ここまでくるのにダイブ時間かかったなー。まあいい勉強です。
インストール後、まだ弄ってません。なぜか入ってなかった sudo を入れたくらいかな。
これからどんどn弄っていこうと思うって前も書いた気がするがまあいいか。

参考
図解 Debian Linux 3.1 のFTPインストール
ブートローダに GRUB を使う
GNU Partedの使い方
[linux-users:71757] eth0 bogus packet size(Re: 追加したら・・・)