私は簡単なオペレーティングシステムを書いてそれをテストしようとしています。 VirtualBoxがインストールされており、8GBのフラッシュドライブもあり、ただ使用しても構いません。しかし、USBドライブを起動可能にする方法がわかりません。起動可能なISOイメージを作成する方法については多くのチュートリアルに従いましたが、VirtualBoxとディスクユーティリティの両方を読むことはできません。誰かがUSBドライブを起動可能にする検証済みの方法を教えてもらえますか?
私が所有しているもの
8GBフラッシュドライブ
VirtualBox 仮想マシン
.binはnasmを使用してコンパイルされたアセンブリコードから生成されました。
私は必要です
USBデバイスのブートセクタを埋める方法に関する簡単で明確な情報
.bin以外のファイルが必要な場合は、正しい方向にスワイプ
既存のコード
;*********************************************
; Boot1.asm
; - A Simple Bootloader
;
; Operating Systems Development Tutorial
;*********************************************
org 0x7c00 ; We are loaded by BIOS at 0x7C00
bits 16 ; We are still in 16 bit Real Mode
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
私がフォローしたチュートリアル
http://www.quilime.com/code/bootable_iso http://www.acm.uiuc.edu/sigops/roll_your_own/ http://www.brokenthorn.com/Resources/OSDevIndex.html http://www.brokenthorn.com/Resources/OSDev1.html http://www.brokenthorn.com/Resources/OSDev2.html http://www.brokenthorn.com/Resources/OSDev3.html
答え1
一般的なアプローチは次dd
のとおりです。syslinuxブートローダmbr.bin
にインストールするには/dev/sda
。
dd bs=440 count=1 conv=notrunc if=mbr/mbr.bin of=/dev/sda
ここに/dev/sda
ターゲットデバイスがあります。 (of
「出力ファイル」です。)
これをUSBドライブのデバイス名に変更できます。
答え2
いいですね。最小限のオペレーティングシステムをインストールしました。今始めるには、ある種のマシンが必要です。
どのコンピュータ(ノートブック、VirtualBoxなど)を使用しても、起動時にオペレーティングシステムをロードして起動するためのコードを含むROMが必要です。これは通常BIOSに似ています。これは一般的に単に取得されますブートセクタブートメディアを設定し、そこで見つかったすべてを実行します。
したがって、最小限のオペレーティングシステムをブートセクタに配置するだけです。オペレーティングシステムが十分にミニマリストでない場合は、ブートセクタにより多くのオペレーティングシステムをロードするコードが必要です。
答え3
私はこれがあなたが要求したものではないことを知っていますが、VirtualBoxで.binファイルを起動する簡単な方法があります。
まず、VirtualBox仮想フロッピーディスクである.vfdファイルを作成する必要があります。空の .vfd ファイルを作成するには、シェルで次のコマンドを実行します。
$ head -c 1474560 /dev/zero > bootloader.vfd
次に、コンパイルされた.binを.vfdファイルに含めるようにシェルに入れます。
$ dd status=noxfer conv=notrunc if=[bin_name].bin of=bootloader.vfd
これで仮想フロッピーディスクが作成されました。しかし、次に何をすべきですか?
VirtualBoxで新しい仮想マシンを作成します。タイプはギターを選択し、バージョンはDOSを選択します。ハードドライブは必要ありません。
仮想マシンを作成したら、その設定に移動して[ストレージ]タブに移動して、出力.vfdファイルをフロッピーディスクとして追加します。
それだけです!