続 NetBSD/landisk ブートローダ

ブートローダコンパイルとインストール方法。

  • 前提
    • 作業は NetBSD/i386 上で行う
    • ブートローダインストール先は sd0 とする
    • インストール作業は root 権限を持つアカウントで行う
    • インストール作業は $(NETBSDSRCDIR)/sys/arch/landisk/stand で行う
  • コンパイル
    • 入手したアーカイブを $(NETBSDSRCDIR)/sys/arch に展開する。$(NETBSDSRCDIR)/sys/arch/landisk が存在すれば正常に展開されている。
    • $(NETBSDSRCDIR)/sys/arch/landisk/00PATCH/*.diff のパッチを適応する。現時点では $(NETBSDSRCDIR)/sys/sys/bootblock.h と $(NETBSDSRCDIR)/sys/lib/libkern/arch/sh3/byte_swap_[24].S へのパッチが存在する。
    • $(NETBSDSRCDIR)/sys/arch/landisk/stand/ で SH3 クロスツールチェインを使用し make する。stand/minikernel はカーネルロードテスト用なので make 対象になっていない。
  • インストール(インストール先の内容をすべて破棄してもいい人向けの方法)
    • とりあえずインストール先の先頭付近セクタを破壊する。
# dd if=/dev/zero of=/dev/rsd0d count=100
    • MBR ブートコードをインストールする。
# dd if=mbr/mbr/mbr of=/dev/rsd0d bs=512 count=1
# fdisk -0 -u sd0
# fdisk -a sd0
    • disklabel & newfs。
    • installboot を使用し primary boot loader をインストールする。
# installboot -v /dev/rsd0a bootxx/bootxx_ffsv1/bootxx_ffsv1
    • /dev/sd0a に secondary boot loader をインストールする。
# mount /dev/sd0a /mnt && cp boot/boot/boot /mnt && umount /mnt