コンパイルされたアセンブリコードをUSBデバイスのブートセクタに移動します。

コンパイルされたアセンブリコードをUSBデバイスのブートセクタに移動します。

私は簡単なオペレーティングシステムを書いてそれをテストしようとしています。 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ドライブのデバイス名に変更できます。

おすすめ記事