ブートローダーの説明
- NetBSDカーネル用に、0x90000からロード&実行する
- カーネルのデフォルト文字列が"netbsd.bin"になっている
- initrdのサポートが無い
- カーネル起動オプション文字列のデフォルトが""(空)
となっています。
中がどうなっているか、等々技術的な話は別文書で解説しています。
注意事項
(オリジナルのドキュメントには書かれていませんが)オリジナル同様、大きな制限として
- カーネルサイズは最大4190208バイト(4*1024*1024 - 4096)まで
があります。ご注意ください。
更新に伴う警告
以下の文章は古くなっています。現時点でベストな方法は『なんちゃってブートセレクタ』を使う方法です。こちらをお試し下さい。(2005-09-02)
基本的な使い方
nbloader.oとnetbsd.binを同じ所に置き、Linux上からrootユーザにて
# insmod nbloader.o kernel=netbsd.bin[ret] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
とコマンドを入力すると、いきなりNetBSDのブートが始まります。
(比較的)安全な使い方
まず、カーネルの置き場としてLinuxのルートパーティションにディレクトリを準備します。
/usr/tmpでも良いでしょう。
ここに、nbloader.oとnetbsd.binをおきます。
/usr/tmpでも良いでしょう。
ここに、nbloader.oとnetbsd.binをおきます。
次に、Linuxをシングルユーザモードにします。シリアルコンソールが必須です。
# shutdown now[ret] ^^^^^^^^^^^^^^^^^
次に、必要に応じてルートのパスワードを入れてシングルユーザモードのプロンプトを出します。
先ほどnbloader.oとnetbsd.binを置いたところへ移動します。
# cd /usr/tmp[ret] ^^^^^^^^^^^^^^^^
ディスクをアンマウントします。
# umount -a[ret] ^^^^^^^^^^^^^^
ローダはルートパーティションに置いてあるので、まだ見えると思います。
(この時点でルートパーティションもリードオンリーマウントになって
いるようです
います。)
(この時点でルートパーティションもリードオンリーマウントになって
最後に、おもむろに実行します。
念のためsyncも同時に実行します。(本当にリードオンリーマウントになっていればsyncは不要です)
# insmod nbloader.o kernel=netbsd.bin[ret] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
これでブートするはずです。
ご連絡先: E.Kawauchi atto gmail dotto com
このwikiの更新情報RSS