私はブートローダー(hello world sort)を書こうとしています。私はシミュレーション用にBochsを使用しています(Linux-Ubuntuプラットフォーム)。しかし私は私のバイナリファイルのためのブート可能なisoを作ることができません。チュートリアルではVFD(仮想フロッピーディスク)が使用されていますが、Windowsプラットフォーム用です。ここに私のブートローダ用コード(テスト用)独自のブートローダをテストするためのブート可能なiso(CDまたはフラッシュドライブではない)を作る方法は?
;*********************************************
; Boot1.asm
; - A Simple Bootloader for testing if cd is booting or not
;
; Operating Systems Development Tutorial
;*********************************************
[BITS 16] ;tell the assembler that its a 16 bit code
[ORG 0x7C00] ;Origin, tell the assembler that where the code will
Start:
cli ; Clear all Interrupts
hlt ; halt the system
times 510 - ($-$$) db 0 ; We have to be 512 bytes. Clear the rest of the bytes with 0
dw 0xAA55 ; Boot Signature
私はUbuntuでマスターISOを試しました。バイナリファイルはISOに変換されますが、起動可能なISOには変換されません。 Bochsは、私がグーグルで見つけた、 "ブート可能なISOの標準であることが分かった"というエラーを表示しています。ブート可能にするために追加しなければならない追加のものは何ですか?私はすでにブートシグネチャを最後に追加しています。 誰でもUbuntu上で起動可能なISOを作成するための信頼できるアプリケーションを提案できますか? 私の仕事はこのために固まっています.... OR Linuxプラットフォーム上でOS開発に関わっている人は多いと思います。どのように人々はテストしますか?
私はブートローダプログラムのisoでUnetbootinでブート可能なフラッシュドライブを作っています。 はVirtual-boxに切り替えられ、pendriveから起動するためにちょっとねじれていましたが、まだ起動できないことを示しています。 誰かがOSの開発に多くの忍耐を必要としていると正しく言っていたと思います。
:ふぅは最終的に私のブートローダープログラムが走った...
私はバーチャルボックスの私のプログラムを起動するために仮想フロッピーイメージを使用していました。誰かが苦労している場合の手順は次のとおりです。
1.ブートローダプログラムを持つboot.asmを作成します。
2. nasmを使用してコンパイルします。 nasm -f bin boot.asm -o boot.bin。
3.sudo mkfs.msdos -C /ホーム/ 名 /floppy.img 1440
4.sudo chownコマンドユーザ名 ./floppy.img。 link text
5. ddでコピーします。 dd if =。/ boot.bin of =。/ floppy.img。
6. VirtualBoxを起動し、新しい仮想マシンで起動デバイスとしてfloppy.imgを選択します。
PS:floppy.imgをデバイスのループに付けて、実際のフロッピーディスクと同じようにマウントすることもできます。フロッピー、ハードディスクの/ USBまたはPXEを使用した検索の全ての記憶場所/メソッドの中で
[カスタムブートローダで起動可能なISOイメージを作成する](https://stackoverflow.com/questions/34268518/creating-a-bootable-iso-image-with-custom-bootloader) –