0から作るソフトウェア開発

日々勉強中。。。

0から作るOS開発

環境準備

環境設定

ブートローダ

カーネルローダ

GRUB

カーネル

ドライバーその他

0から作るOS開発 GRUBその2 GRUBのインストール

前回までの内容

これまでで、 についてわかりました。それではGRUBから自作OSを起動していきましょう!

今回は前回みてきましたGRUBを実際にインストールして、自分で作ったカーネルを

ブートしていきたいと思います。



それでは、順番に見ていきます。

推奨

カーネルから開発してみたいという方もいらっしゃるかと存じますが、一度ブートローダーを

アセンブラで作ってみることをおすすめ致します。CPU周りの制御の仕方の基本的なことが

わかるようになりますので、ぜひ一度最初から作ってみてください。

GRUB 2のインストール

ここでは、現在GNUから正式にリリースされたGRUB 2をCygwinでインストールしていきます。

ソースコードをダウンロードしてコンパイルしていきますので、事前にCygwinの
diffutils、lex、bisonなどをインストールしておいてください。必要な
ツールが無ければ、configureコマンドが途中で止まりますので、その都度
インストールされていただいてもいいかと思います。

ソースコードのダウンロード

GRUBを使用するにはGRUB 2と、そしてISOイメージを作成するためにxorrisoを
インストールします。この2つのソースコードの最新版を下記サイトよりダウンロード
してください。どちらもGNUのサイトからダウンロードできます。

それではコンパイルしていきます。

GRUB 2のコンパイル

ダウンロードしたソースコードを次の例のように展開します。
この例ではgrub2.0のソースコードとなります。


$ tar xvf grub2.0.tar.xv


展開が終わるとカレントディレクトリにgrub2.0ディレクトリができています。
(バージョンは最新版により異なります)。

コンパイルを始める前に環境変数を次の例のようにセットしておきます。


$ export TARGET_CFLAGS="-Qn"


展開されたソースディレクトリに移動してから、configureコマンドを実行します。


$ ./configure --disable-werror


configureコマンドが途中で止まってしまった場合は、必要なツールをインストールして
もう一度configureコマンドをやり直してください。

makeしてmake installします。


$ make
$ make install


コンパイルが終わりましたら、コマンドが正常に動作するか確認してみてください。

補足

コマンドが正常に動作しない場合は、一度grubのソースコードが格納されている
ディレクトリを削除してから、もう一度ソースコードの展開からやり直してみてください。


xorrisoのコンパイル

xorrisoも同様に次の例のように展開します。


$ tar zxvf xorriso-1.4.2.tar.gz


この例ではxorriso-1.4.2ディレクトリにソースコードが展開されます。
展開されたディレクトリに移動して、同じようにconfigureコマンドします。
そしてmakeコマンドでコンパイラしてインストールします。


$ ./configure
$ make
$ make install


これでインストールが終わりました。

補足

configureコマンドが途中で止まった場合、Cygwinパッケージの
Libs→libiconv-develをインストールしてからやり直してみてください。


GRUB 2のパッケージ内容

GRUB 2パッケージとして次の内容がインストールされます。

(流し読みしていただいて問題ありません。。。)。

インストールされる内容

インストールされるGRUB 2のツール

次のコマンドがインストールされます。

GRUB 2のツール詳細
Cygwin上のパス ツール 説明
/usr/local/bin grub-bin2h バイナリファイルをC言語のヘッダーファイルに変換します。GRUBをソースから ビルドするとき以外は使用しません。
grub-editenv 環境ブロックの編集、変数の表示、変数の設定、変数の削除を行います。
grub-fstest GRUBで使用するファイルシステムのデバッグします。
grub-mkelfimage GRUBのELF形式の起動イメージを作成します。
grub-mkfont GRUBで使用するフォントを作成します。
grub-mkimage GRUBの起動ディスクイメージを作成します。
grub-mkisofs GRUBの起動ディスクISOイメージを作成します。
grub-mkpasswd-pbkdf2 入力したパスワードを暗号化(英数字の文字列)します。 GRUB 2でパスワードを使用するときに使います。
grub-mkrelpath 指定したパスを、システムが使用するルートディレクトリとします。 grub-mkconfigが使用します。
grub-mkrescue 起動レスキューディスクイメージを作成します。ソースで指定した ファイルやディレクトリをレスキューイメージに入れることができます。
grub-script-check GRUBの設定ファイル(デフォルトではgrub.cfg)の文脈チェックを 行います。
/usr/local/sbin grub-install 指定したドライブにGRUBをインストールします。
grub-mkconfig GRUBの設定ファイルを作成します。
grub-mkdevicemap 自動でデバイスマップファイルを作成します。
grub-probe 指定したパス(-dオプションがあればデバイス)のデバイス情報を検出します。
grub-reboot 指定したエントリーを次に起動するときだけデフォルトブートエントリーに設定します。
grub-set-default 指定したエントリーをデフォルトブートエントリーに設定します。
grub-setup 指定したデバイスから起動するブートイメージをセットアップします。 指定するデバイスはGRUBフォーマットで指定します。 (例、(hd0,1)など)
grub-setup.exe.manifest grub-setupにXMLのマニフェストファイルを指定してます。


grub-bin2hのオプション

			
grub-bin2h [オプション] シンボル名

オプション:
    -h, --help
        ヘルプを表示します。
    -V, --version
        バージョンを表示し、終了します。



grub-editenvのオプション

			
grub-editenv [オプション] [ファイル名] コマンド

コマンド:
    create
        空の環境ブロックファイルを作成します。
    list
        現在の変数をリストアップします。
    set [変数名=値...]
        変数に値を設定します。
    unset [変数名]
        変数を削除します。

オプション:
    -h, --help
        ヘルプを表示します。
    -V, --version
        バージョンを表示し、終了します。
    -v, --verbose
        メッセージを極力表示します。
    
    [ファイル名]の指定が無い場合には、/boot/grub/grubenvを使用します。



grub-fstestのオプション

			
grub-fstest [オプション]... イメージパス コマンド

コマンド:
    ls パス
        パスに含まれるファイルを表示します。
    cp ファイル名 現在のパス
        現在のパスにファイルをコピーします。
    cmp ファイル名 現在のパス
        現在のパスのファイルとファイルを比較します。
    hex ファイル名
        ファイルを16進数の値で出力します。
    crc ファイル名
        ファイルのCRCの値を取得します。
    blocklist ファイル名
        ファイルのブロックリストを表示します。

オプション:
    -r, --root=デバイス名
        ルートデバイスを設定します。
    -s, --skip=Nバイト
        出力ファイルのNバイトをスキップします。
    -n, --length=Nバイト
        出力ファイルのサイズを設定します。
    -c, --diskcount=N数
        入力ファイル数を指定します。
    -d, --debug=S
        デバッグ環境変数を設定します。
    -h, --help
        ヘルプを表示します。
    -V, --version
        バージョンを表示し、終了します。
    -v, --verbose
        メッセージを極力表示します。



grub-mkelfimageのオプション

			
grub-mkelfimage -o ファイル名 [オプション]... [モジュール]

オプション:
    -d, --directory=ディレクトリ名
        指定したディレクトリ名のイメージとモジュールを使用します。
        (デフォルトは/usr/lib/grub/i386-pc)
    -p, --prefix=ディレクトリ名
        grub_prefixディレクトリを指定します。
    -m, --memdisk=ファイル名
        メモリーディスクとしてファイルを埋め込みます。
    -c, --config=ファイル名
        GRUBの設定ファイルを埋め込みます。
    -o, --output=ファイル名
        指定したファイル名にイメージを書き込みます。
    -h, --help
        ヘルプを表示します。
    -V, --version
        バージョンを表示し、終了します。
    -v, --verbose
        メッセージを極力表示します。



grub-mkfontのオプション

			
grub-mkfont [オプション] フォントファイル

オプション:
    -o, --output=ファイル名
        作成するファイル名を指定します。
    --ascii-bitmapas
        アスキービットマップのみ保存します。
    -i, --index=N
        フェイスインデックスを指定します。
   -r, --range=A-B[,C-D]
       フォントの範囲を指定します。
   -n, --name=ファミリーネーム
       フォントのファミリーネームを指定します。
   -s, --size=フォントサイズ
       フォントのサイズを指定します。
   -d, --desc=N
       フォントの下のサイズを指定します。
   -c, --asce=N
       フォントの上のサイズを指定します。
   -b, --bold
       ボールドフォントに変換します。
   -a, --force-autohint
       オートヒントの強制を有効にします。
   --no-hinting
       ヒントを無効にします。
   --no-bitmap
       ロード時にビットマップを無視します。
    -h, --help
        ヘルプを表示します。
    -V, --version
        バージョンを表示し、終了します。
    -v, --verbose
        メッセージを極力表示します。



grub-mkimageのオプション

			
grub-mkimage -o ファイル名 [オプション]... [モジュール]

オプション:
    -d, --directory=ディレクトリ名
        指定したディレクトリ名のイメージとモジュールを使用します。
        (デフォルトは/usr/lib/grub/i386-pc)
    -p, --prefix=ディレクトリ名
        grub_prefixディレクトリを指定します。
    -m, --memdisk=ファイル名
        メモリーディスクとしてファイルを埋め込みます。
    -c, --config=ファイル名
        GRUBの設定ファイルを埋め込みます。
    -o, --output=ファイル名
        指定したファイル名にイメージを書き込みます。
    -h, --help
        ヘルプを表示します。
    -V, --version
        バージョンを表示し、終了します。
    -v, --verbose
        メッセージを極力表示します。



grub-mkisofsのオプション

			
grub-mkisofs [オプション] ファイル名...

オプション:
    -a, -all-files
        全てのファイルを処理します。
        (バックアップファイルもスキップしません。)
    -abstract ファイル名
        抽象ファイル名を指定します。
    -A ID, -appid ID
        アプリケーションIDを指定します。
    -biblio FILE
        ビブリオグラフィックファイルを指定します。
    -copyright FILE
        コピーライトファイルを指定します。
    -G FILE, --embedded-boot FILE
        ISOイメージに埋め込む
        ブートイメージを指定します。
    --protective-msdos-label
        ISOイメージに保護MS-DOSラベルフラグ
        を付けます。
    -b FILE, -eltorito-boot FILE
        El Toritoブートイメージを指定します。
    -c FILE, -eltorito-catalog FILE
        El Toritoブートカタログを指定します。
    -boot-info-table
        El Toritoブートイメージに
        ブートインフォテーブルを追加します。
    -no-emul-boot
        旧バージョンとの互換性のための
        ダミーオプションです。
    -C PARAMS, -cdwrite-params PARAMS
        マジックナンバーを指定します。
    -d, -omit-period
        拡張子のピリオドを削除します。
    -D, -disable-deep-relocation
        深いディレクトリ構成を無効にします。
    -f, -follow-links
        シンボリックリンクを辿ります。
    -h, --help
        ヘルプを表示します。
    -hide GLOBFILE
        ISO9660/RRファイルを見えなくします。
    -hide-joliet GLOBFILE
        Jolietファイルを見えなくします。
    -i ADD_FILES
        このオプションはサポートしていません。
    -J, -joliet
        Joliet形式のディレクトリ情報を作ります。
    -l, -full-iso9660-filenames
        ISO9660形式のファイル名として32バイトのファイル名が使えます。
    -L, -allow-leading-dots
        ISO9660形式のファイル名としてドット"."で 始まるファイル名が使えます。
    -log-file LOG_FILE
        LOG_FILEにログを記録します。
    -m GLOBFILE, -exclude GLOBFILE
        指定したファイル名を除きます。
    -M FILE, -prev-session FILE
        マージ(結合)したい前回のセッションのファイル名を指定します。
    -N, -omit-version-number
        ISO9660ファイル名からバージョン番号を削除します。
    -no-split-symlink-components
        シンボリックリンクのコンポーネントを分割することを禁止します。
    -no-split-symlink
        シンボリックリンクフィールドを分割することを禁止します。
    -o FILE, -output FILE
        出力するファイル名を指定します。
    -p PREP, -prepare PREP
        ボリュームのプリペアーフィールドを設定します。
    -print-size
        ファイルシステムのサイズを計算して表示し、
        終了します。
    -P PUB, -pulisher PUB
        ボリュームのパブリッシャーフィールドを設定します。
    -quiet
        メッセージを表示しないようにします。
    -r, -rational-rock
        Rationalized Rock Ridge形式のディレクトリ情報を作成します。
    -R, -rock
        Rock Ridge形式のディレクトリ情報を作成します。
    -split-output
        出力ファイルを約1GBに分割します。
    -sysid ID
        システムIDを設定します。
    -T, -translation-table
        ロングファイル名を扱えないシステム用に変換テーブルを作成します。
    -v, --verbose
        メッセージを極力表示します。
    -V ID, -volid ID
        ボリュームIDを設定します。
    -volset ID
        ボリュームIDを設定します。
    -volset-size #
        ボリュームサイズを設定します。
    -volset-seqno #
        ボリュームにシークエンス番号を設定します。
    -x FILE, -old-exclude FILE
        ファイル名を除きます。
        (廃止予定のオプション)
    --creation-date
        作成日を上書きします。
    --modification-date
        修正日を上書きします。
    --expiration-date
        有効期限を上書きします。
    --effective-date
        有効期間を上書きします。



grub-mkpasswd-pbkdf2のオプション

			
grub-mkpasswd-pbkdf2 [オプション]...

オプション:
    -c number, --iteration-count=number
        PBKDF2の試行回数を指定します。
    -l number, --buflen=number
        生成するハッシュコードのサイズを指定します。
    -s number, --salt=number
        ランダムデータのサイズを指定します。



grub-mkrelpathのオプション

			
grub-mkrelpath [オプション] パス

オプション:
    -h, --help
        ヘルプを表示します。
    -V, --version
        バージョンを表示し、終了します。



grub-mkrescueのオプション

			
grub-mkrescue [オプション] ソース...

オプション:
    -h, --help
        ヘルプを表示します。
    -v, --version
        バージョンを表示し、終了します。
    --modules=モジュール名
        事前にロードしておくモジュールを指定します。
    --output=ファイル名
        指定したファイル名にイメージを出力します。



grub-script-checkのオプション

			
grub-script-check [パス]

オプション:
    -h, --help
        ヘルプを表示します。
    -v, --version
        バージョンを表示し、終了します。
    -v, --verbose
        メッセージを極力表示します。



grub-installのオプション

			
grub-install [オプション] インストールデバイス

オプション:
    -h, --help
        ヘルプを表示します。
    -v, --version
        バージョンを表示し、終了します。
    --modules=モジュール名
        事前にロードするモジュールを指定します。
    --root-directory=ディレクトリ
        ルートディレクトリとして指定したディレクトリに
        GRUBのイメージをインストールします。
    --grub-setup=ファイル名
        grub-setup実行時にファイル名で指定したファイルを使用します。
    --grub-mkimage=ファイル名
        grub-mkimage実行時にファイル名で指定したファイルを使用します。
    --grub-mkdevicemap=ファイル名
        grub-mkdevicemap実行時にファイル名で指定したファイルを使用します。
    --grub-probe=ファイル名
        grub-probe実行時にファイル名で指定したファイルを使用します。
    --no-floppy
        フロッピーディスクドライブを検出しないようにします。
    --recheck
        デバイスマップに載っているデバイスについても検出処理を行います。
    --force
        エラーを検出しても、強制的にインストールを続行します。
    --disk-module=モジュール名
        使用するディスクモジュールを指定します。

    インストールデバイスはGRUBが認識できるデバイス名かシステムデバイスファイル名を
    指定します。grub-installはGRUBのイメージを/boot/grub(またはNetBSD、
    OpenBSDでは/grub)にインストールのに使用します。
    --root-directoryオプションが指定されている場合、grub-installは
    GRUBイメージをOSがインストールされているルートディレクトリにコピーします。



grub-mkconfigのオプション

			
grub-mkconfig [オプション]

オプション:
    -o, --output=ファイル名
        指定したファイル名に作成された設定ファイルを出力します。
        (デフォルトは標準出力です)。
    -h, --help
        ヘルプを表示します。
    -v, --version
        バージョンを表示し、終了します。



grub-mkdevicemapのオプション

			
grub-mkdevicemap [オプション]...

オプション:
    -n, --no-floppy
        フロッピーディスクドライブを検出しません。
    -s, --probe=second-floppy
        2番目のフロッピーディスクドライブを検出します。
    -m, --device-map=ファイル名
        指定したファイル名をデバイスマップとして使用します。
        (デフォルトは/boot/grub/device.map)
    -h, --help
        ヘルプを表示します。
    -V, --version
        バージョンを表示し、終了します。
    -v, --verbose
        メッセージを極力表示します。



grub-probeのオプション

			
grub-probe [オプション]... [パス|デバイス]

オプション:
    -d, --device
        指定されたデバイスをパスではなくシステムデバイスとします。
    -m, --device-map=ファイル名
        指定したファイル名をデバイスマップとして使用します。
        (デフォルトは/boot/grub/device.map)
    -t, --target=(fs|fs_uuid|drive|device|partmap|abstraction)
        ファイルシステムモジュール、GRUBドライブ、システムドライブ、
        パティションマップモジュール、抽象モジュールを表示します。
        (デフォルトはfsとなります)
    -h, --help
        ヘルプを表示します。
    -V, --version
        バージョンを表示し、終了します。
    -v, --verbose
        メッセージを極力表示します。



grub-rebootのオプション

			
grub-reboot [オプション] エントリー

エントリー:
    数字またはメニュー項目のタイトル

オプション:
    --root-directory=ディレクトリ
        ルートディレクトリではなく指定したディレクトリの下に、
        GRUBイメージがあるものとします。
    -h, --help
        ヘルプを表示します。
    -v, --version
        バージョンを表示し、終了します。



grub-set-defaultのオプション

			
grub-set-default [オプション] エントリー

エントリー:
    数字またはメニュー項目のタイトル

オプション:
    --root-directory=ディレクトリ
        ルートディレクトリではなく指定したディレクトリの下に、
        GRUBイメージがあるものとします。
    -h, --help
        ヘルプを表示します。
    -v, --version
        バージョンを表示し、終了します。



grub-setupのオプション

			
grub-setup [オプション]... デバイス

オプション:
    -b, --boot-image=ファイル名
        ブートイメージとして指定したファイル名を使用します。
        (デフォルトはboot.img)
    -c, --core-image=ファイル名
        コアイメージとして指定したファイル名を使用します。
        (デフォルトはcore.img)
    -d, --directory=ディレクトリ
        指定したディレクトリのGRUBファイルを使用します。
        (デフォルトは/boot/grub)
    -m, --device-map=ファイル名
        指定したファイル名をデバイスマップとして使用します。
        (デフォルトは/boot/grub/device.map)
    -r, --root-device=デバイス
        指定したデバイスをルートデバイスとして使用します。
        (デフォルトはプログラムが自動検出します)
    -f, --force
        エラーが発生してもインストールを継続します。
    -s, --skip-fs-probe
        デバイスに格納されているファイルシステムの検出を行いません。
    -h, --help
        ヘルプを表示します。
    -V, --version
        バージョンを表示し、終了します。
    -v, --verbose
        メッセージを極力表示します。



重要なGRUBのコマンドと設定ファイル

grub-installコマンド

GRUBをデバイスにインストールするには、次のコマンドを使用します。

			
    grub-install [オプション] インストールデバイス



このコマンドを実行することで指定したデバイスにGRUBをインストールします。

コマンド実行時には、各種のgrub-で始まるコマンドを自動的に実行します。

例えば、1番目のハードディスクのMBR(最初のセクター)にGRUBをインストール

するには次のようにコマンドを実行します。

[IDEハードディスクの場合]
			
    grub-install /dev/hda



[SATAまたはSCSIハードディスクの場合]
			
    grub-install /dev/sda



Cygwinを使用している方は上記コマンドを実行しないでください。

Windows専用のブートローダーを上書きしてしまい、Windowsが起動できなく

なる恐れがあります。


grub-installを実行すると

これで次回起動時にインストールデバイスのMBRに書き込まれたboot.imgが起動され、GRUBが

立ち上がります。

grub-mkconfigコマンド

GRUBが立ち上がった後に、GRUBが起動したディスクの/boot/grub/grub.cfgファイルを

読み込みます(デフォルト設定の場合)。grub.cfgファイルにはGRUBの動作を設定した

ファイルとなります。このファイルに、GRUBのメニューなどを設定することができます。



設定ファイルgrub.cfgを作成するコマンドがgrub-mkconfigコマンドとなります。

grub-installコマンドはgrub-mkconfigコマンドを特に実行しませんので、grub-install

コマンドを実行する前に、grub-mkconfigコマンドを使ってgrub.cfgファイルを作っておきます。

(簡単な内容ですので自分でも0から作ることもできます)。

grub-mkconfigは次のように実行します。

			
    grub-mkconfig /boot/grub/grub.cfg



grub-mkrescueコマンド

grub-rescueコマンドで、レスキューディスクイメージを作成することができます。

できたイメージファイルは約1.44MBでフロッピーディスクからGRUBを起動することもできます。

このサイトではgrub-resucueコマンドを使用して、GRUBを起動していきます。

grub-rescueコマンド実行時に、レスキューイメージに入れ込むディレクトリ(ファイル)を

指定することができます。例えば、上記で作成した設定ファイルgrub.cfgをレスキューイメージに

入れるには次のように実行していきます。

			
    mkdir -p rescue/boot/grub/i386-pc
    cp grub.cfg rescue/boot/grub/i386-pc
    grub-mkrescue --output=rescue.iso rescue





実際にレスキューイメージを作ってVirtualBoxでGRUBを起動してみましょう。

GRUB 2のレスキューイメージの作成

GRUBをデバイスディスクにインストールするにはgrub-installコマンドを使用しますが、

このコマンドを使用して、 VirtualBox などの、仮想PCのフロッピーディスクやハードディスクに

インストールするのは結構難しいです。。。

そこで、このサイトではより簡単に自作OS(カーネル)を起動する方法として

レスキューイメージを使用していきます。レスキューイメージではフロッピーディスク

などから起動できるISOイメージを作ることができます。が、、、 grub-mkresucue

作ることができる起動ディスクイメージはISOのファイルシステムとなります。

このサイトで0から作る初期の自作カーネルではフロッピーディスクからの起動で、

FATファイルシステムからの起動を想定しています。GRUBのISOファイルシステムに

フロッピーディスク起動のみを前提とした、自作カーネルを入れ込もうとすると結構面倒と

なってしまいます。そこで、今回は、より簡単にGRUBから自作OSを起動するために、

とにかく起動できるGRUBのレスキューイメージから起動していきたいと思います。

今回は、作成したレスキューイメージをCDから起動して、フロッピーディスクに

格納されている自作OSを起動していきます。



それでは、習うより慣れろ!で、早速作っていきたいと思います。

GRUBのレスキューイメージを作成してみる

では、まったく何も考えずにレスキューイメージを作ってみましょう!

次のようにコマンドを実行します。

			
    grub-mkrescue --output=rescue.iso



これまで見て来ましたようにgrub-mkrescueを実行します。

grub-mkrescueのオプショに”--output=作りたいイメージファイル名”を指定すると

指定したファイル名のISOイメージとしてレスキューイメージファイルができあがります。

ここでは、rescue.isoというイメージファイルを作りました。

すごく簡単です!これでカーネルを起動するGRUBイメージができあがりました!



それでは、作ったレスキューイメージファイルでGRUBを起動してみます。

GRUBをVirtualBoxで起動してみる

最初に VirtualBoxのインストール VirtualBoxの設定 をしておきます。

またVirtualBoxの設定を次のように行い、GRUBのイメージを読み込めるようにします。

VirtualBoxでGRUBのレスキューイメージを読み込む設定を行う。

それでは、VirtualBoxを起動して、設定ボタンをクリックします。

仮想マシンの設定。設定をクリック

次に、設定のストレージをクリックします。

仮想フロッピードライブの設定。ストレージをクリック

そして、ストレージツリーの「コントローラ:IDEコントローラ」をクリックします。

クリックするとCD/DVDドライブを追加する「+」ボタンが出てきますので、

CD/DVDドライブのコントローラーの追加するボタンをクリックします。

CDドライブのコントローラを追加して「ディスクの選択」でGRUBのレスキューイメージファイルを選択

クリックしたらダイアログが出てきますので、「ディスクの選択」をクリックして、

先ほど作成しましたレスキューイメージファイルrescue.isoを選択します。



すると、GRUBのレスキューディスクがCD/DVDドライブ挿入された状態で追加されます。

仮想マシンにGRUBのレスキューディスクが挿入された状態でCD/DVDドライブに追加された状態

そして仮想マシンのBIOSを設定して、CD/DVDドライブの起動順序を1番上にします。

これで、起動時にCD/DVDドライブのブータブルディスク(ここではGRUBのレスキューディスク)が

起動されるようになります。

仮想マシンのシステムをクリック。そしてCD/DVD-ROMをクリックして選択。上矢印ボタンをクリックしてCD/DVD-ROMを起動順序の一番上になるようにします。

これで準備ができました。OKをクリックして設定を保存しましょう。

それでは、仮想マシンを起動します。

仮想マシンを起動するとWelcome to GRUBと表示された後、GRUBのコンソールが表示されます。

すると、画面に”Welcome to GRUB!”と表示された後に、GRUBのコンソール画面が表示されます。

コンソール画面が出てきたらGRUBの起動成功です!



とりあえずGRUBを起動することができました。次は自作カーネルを起動する準備です。

ここまでで、Cygwin上でGRUB 2のインストールができました。また、主なコマンドについても

見て来ました。次回は、実際にGRUB 2から起動できる自作OS(カーネル)を作成していきます。

inserted by FC2 system