OS自作を入門し始めた(何もしないブートローダを作った)

参考にしているサイト

調べていたら、RKX1209先生のこのブログを見つけて、とりあえず書籍を買う資金がマジでないので紹介されていたこちらのサイトを見てやっていくことになった

やったところ

とりあえずここまでやりました。 正直写経だけなのでそんな時間かからんやろ、と思うんですが、Cygwinを入れたくないという強い気持ちを持っていたのでWSLとか駆使して頑張っていました。 実行環境はQEMUとか用意するのも面倒だなという気持ちになったのでHyper-Vです

困ったこと

写経だけなのでそれ以外の部分なんですが、Hyper-VマネージャのGUIからVFDを作って、WindowsにマウントしてWSLからddでいい感じに書き込もうと思ったんですが、WindowsではVFDをマウントする機構がないみたいでブチ切れました。

WSLでVFDをマウントしたかった(むりだった)

いろいろ調べると出てくるんですが

$ sudo mkdir /mnt/vfd
$ sudo mount /mnt/d/os/boot.vfd /mnt/vfd

とかすると、WSLくんは「loopデバイスなんぞ知るか」といってきたし、とても厳しい気持ちになりました

$ ls /dev/

するととても悲しい気持ちになりました(loopとか一切ねえ)

調べてたら/boot/grub/menu.lstを編集すればいい感じにloopデバイスを増やせるみたいなのを見つけたんですが、WSLでそれができるのか分からんのと、作業環境をBSODで壊すのは嫌だったので試してません。誰か試してくれるとうれしいです。

困ったのでHyper-VゲストのArch Linuxを使う

とりあえずSambaで適当にvfdあるところまで行って、vfdをmountして、ddで/dev/loop0に書き込もうと思ったんですが、ダメでした(というかなんでダメかもちゃんとわかってないので教えてほしい)

というわけで普通にHyper-Vマシンにvfdマウントしてddで/dev/fd0にブートローダをぶち込んで解決しました。

結果

何もしないブートローダHyper-Vで起動できました。失敗してるとBootable driveがねえよ馬鹿って言われるんですが、成功したので何も表示されませんでした。

なんか何も表示されないのですごいのかよくわからないけど謎の達成感があった。

とりあえず飽きてすぐやめないように進捗が出たらブログに書いていくつもりです。

以上です。