環境:Windows の Ubuntu 18.04 仮想マシン
実践してみる#
🎯目標:自分のシステムに「Hello OS」と表示させる
ソースコードのダウンロード#
- システムの任意の場所で、ターミナルを開いて以下のコマンドを実行し、ソースコードを仮想マシンにダウンロードします
git clone https://gitee.com/lmos/cosmos.git
bin ファイルの生成#
- ライブラリ内の特定の場所:/lesson02/HelloOS に移動し、ソースコードをコンパイルして HelloOS.bin を生成します
- まず、gcc、make、nasm のツールをインストールする必要があります。デフォルトでは nasm しかありませんが、他のツールがない場合はインストールしてください
sudo apt update
sudo apt install nasm
- 次に、コンパイルを実行します。デフォルトでは Makefile のルールに従って、HelloOS.binを生成します
make
bin ファイルの移動#
- HelloOS.bin を /boot/ ディレクトリに移動します
mv HelloOS.bin /boot/
grub の起動設定の変更⭐#
- /boot/grub/grub.cfg ファイルを変更します
- sudo 権限を使用して、vim で開きます
sudo vim /boot/grub/grub.cfg
- 最後の位置に以下のコードを挿入します。set root、multiboot2 の 2 つの箇所を変更することに注意してください
menuentry 'HelloOS' {
insmod part_msdos # GRUBがパーティションモジュールをロードしてパーティションを認識する
insmod ext2 # GRUBがextファイルシステムモジュールをロードしてextファイルシステムを認識する
set root='hd0,msdos4' # bootディレクトリがマウントされているパーティションに注意してください
multiboot2 /boot/HelloOS.bin # GRUBがmultiboot2プロトコルでHelloOS.binをロードする
boot # GRUBがHelloOS.binを起動する
}
- 変更内容はこの手順を参考にしてください。別のターミナルを開いて、df /boot/ の結果を観察し、ファイルシステムとマウントポイントに注意してください
- ファイルシステム⭐
- /dev/sda1 の場合、「set root='hd0,msdos1'」に変更します
- sda 以外の場合 [他のシステム環境]、状況に応じて変更する必要があります [コースのコメントを参照]
- マウントポイント⭐
- /boot の場合、「multiboot2 /HelloOS.bin」に対応します
- / の場合、変更の必要はありません
PS::w!
で保存し、:q
で編集を終了します