玄箱でNetBSDを動かす easy-pack

スーパーお手軽パック(仮称)

(最終更新日: 2006-04-16)
(注意: まだ実験中です。動作レポートをお願いします。)

特徴

  • 玄箱とLinkStationで動作します(TeraStationでは動作しません)。
  • ハードディスクの再構成や再フォーマット、ラベル付けを行う必要はありません。Linux側でアーカイブを展開するだけでインストール出来ます。
    • Linux側からいろいろ触れるので設定が非常に容易になっています。
  • NetBSDユーザランドはLinuxの/mnt(/dev/hda3)に共存する形になります。

動作原理

当方で公開しているサンプルカーネルの2006-09-29版以降では、Linuxのファイルシステムをfictitious disklabelに出来るだけ正しく反映するようにしています。特に、LinuxのswapパーティションをNetBSDのswapパーティションとして正しく扱えるように値を補正するようにしています。このため、disklabelを付けずともswapを使用することが出来るようになっています。
また、あまり使用されてませんが、NetBSDはext2ファイルシステムをrootパーティションとして使用することが出来ます。
これらを組み合わせると、NetBSDを導入する際に大きな障壁となっているディスクのスライスとパーティション操作を省略することが出来るわけです。

ファイルシステム・パーティション

Linux側は次の構成であることを仮定しています。

/dev/hda1 : ext3 : /
/dev/hda2 : swap : (swap)
/dev/hda3 : ext3 : /mnt
/dev/hda4 :(ext3): (unused)

この場合NetBSDのfictitiousディスクラベルは次のようになります。

/dev/wd0b: swap
/dev/wd0e: ext2fs : Linux /
/dev/wd0f: none
/dev/wd0g: ext2fs : Linux /mnt
/dev/wd0h: ext2fs : (unused)

上記のうち、/dev/wd0gをrootファイルシステムとして使用します。

ALPHA版アーカイブのダウンロード


http://kurobsd.ki.nu/download/testing/sandpoint/easy-pack/easy-pack.20061224.ALPHA.tar.gz
(28482404バイト: 28MB弱) … /dev/hda3が/mntにマウントされていると仮定したもの
MD5 (easy-pack.20061224.ALPHA.tar.gz) = 5cfcb3924377a74b11db28de04d8c2cc
RMD160 (easy-pack.20061224.ALPHA.tar.gz) = e28c2e89ea31334a7b46b7bae5aed6411db274a7

  • Linux側とNetBSDユーザランド側に分割したもの:
http://kurobsd.ki.nu/download/testing/sandpoint/easy-pack/easy-pack.20061224.ALPHA.netbsd-part.tar.gz (26669889バイト: 26MB弱) … /dev/hda3のマウントポイントで展開
MD5 (easy-pack.20061224.ALPHA.root-part.tar.gz) = 6b3d0a577ededef74b0bcd20ecd18e48
RMD160 (easy-pack.20061224.ALPHA.root-part.tar.gz) = ac14c6471bdf70b5f0c6e9f97907e20e515e15dd
MD5 (easy-pack.20061224.ALPHA.netbsd-part.tar.gz) = 4ad7f5b60dcae49fd52ad7dac3daedcd
RMD160 (easy-pack.20061224.ALPHA.netbsd-part.tar.gz) = abe808d7a71c59c57c79761214d0001c73ca131c

注意:ALPHA版につき、テストが十分ではありません。ブートセレクタ周辺で問題が発生すると、ディスクを取り外し、他のPC等での修復が必要となる場合があります。あらかじめこの点をご承知おき下さい。

Linux側で簡単に展開することが出来るように、tar+gzipとしています。
展開後は約80MB使用します。

アーカイブ内容

アーカイブの内容は今までの集大成(?)となっています。
  • /boot以下: NetBSD3.1サンプルカーネル, ブートセレクタ(バイナリ部)
  • /lib/modules以下: ブートローダー
  • /etc以下: ブートセレクタ(設定, スクリプト)
  • /mnt以下: NetBSDユーザランド

実際に展開する前に内容物を確認し、意図せず既存ファイルが上書きされないように気をつけて下さい。

インストール (/dev/hda3が/mntにマウントされている場合)

  • ダウンロードしたアーカイブ(easy-pack.20061224.ALPHA.tar.gz)をLinuxの/(root)から展開します。
    • パーミションを保持する必要がありますので、tarにはpを付けます。
  • 必要に応じて/etc/kuro_boot.confを修正します。 少なくともAVRのポートは正しく設定して下さい。 自動認識にしてみました。
  • 以上です。リブートするとブートセレクタによってNetBSDが選択可能になっています。

インストール (/dev/hda3が/mnt *以外* にマウントされている場合)

  • ダウンロードしたアーカイブ(easy-pack.20061224.ALPHA.root-part.tar.gz)をLinuxの/(root)から展開します。
  • ダウンロードしたアーカイブ(easy-pack.20061224.ALPHA.netbsd-part.tar.gz)を/dev/hda3がマウントされている場所で展開します。
    • パーミションを保持する必要がありますので、双方ともtarにはpを付けます。
  • 必要に応じて/etc/kuro_boot.confを修正します。
  • 以上です。リブートするとブートセレクタによってNetBSDが選択可能になっています。

ブートセレクタのデフォルト設定

ブートセレクタには次の2つがあらかじめ設定してあります。

1: Linux
2: NetBSD

ブートのデフォルトは1です。NetBSDを起動する場合はDISK FULLが点いている間に電源ボタンを2回押してください。

デフォルトのネットワーク設定

DHCPで取得したIPアドレスを使用します。
(192.168.200.200/24、または192.168.200.210/24も使用可能です。)
telnetが開いていますのでteraterm等のtelnetクライアントを使ってログインして下さい。

ログイン

bsduserが使えます。(パスワードなし)
シリアルコンソールからはrootで直接ログイン(パスワードなし)できます。

bsduserはsuでrootになれます(パスワードなし)。

その他


bin.tgzとetc.tgzのみ入っていますので、その他コンパイラ等はNetBSD/sandpoint 3.1のアーカイブを取得してLinuxの/mntで展開して下さい。(tarのpオプションを忘れないで下さい。)

注意・制限事項


  • Linux側はext3ファイルシステムとなっていますが、NetBSD側からはext2ファイルシステムとしてマウントします。このため、ジャーナルが不整合を起こすことがあります。問題が発生した場合にはLinux側でファイルシステムをチェック&修復して下さい。
  • TeraStationでは動作しません。これはTeraStationのファイルシステムがSGI XFSを使用しているためです。
  • Linuxの/mntには/mnt/lost+found, /mnt/share, /mnt/spoolが存在しますが、これらと混ざってNetBSD用のディレクトリが置かれてしまいます。NetBSDのアンインストール等、削除する際はお気を付け下さい。
  • 世間一般的には、NetBSDでのext2fsはあまりアクティブに使われているとは言えません。このためなにか問題が発生するかもしれません。

余談

この方法をあと一歩進めると、玄箱やLinkStationの標準インストーラを使ったインストールも可能になると思います。が、どうしても容量の問題が...。

名前:
コメント:


18602