起動可能なCDをプログラムで作成するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/425519

  •  06-07-2019
  •  | 
  •  

質問

私は、作業中のOSの基礎としてベアボーンチュートリアルを使用しています。これは古いチュートリアルのようです。カーネルをフロッピーイメージにコンパイルし、GRUBでロードしています。

基本的には、引き続きGRUBを使用したいのですが、代わりにOSをCDから実行したいのですが。主な理由は、実際のフロッピードライブを実際に使用できないためです(現在VirtualBoxでテストしています)。したがって、実際のハードウェアでOSをテストする方法がありません。

私はネット上でいろいろと調べてみましたが、フロッピーイメージからブータブルCDを作成する多くのユーティリティを見つけることができますが、これらはすべて実際のフロッピードライブを必要とするようです。にとって。イメージをフロッピーに配置する必要なしに、理想的にはメイクステップ中にブータブルCDを作成できるようにしたいのですが、これはかなり無意味です。

これに答える簡単な方法だと思います:CDからカーネルイメージを読み取るようにGRUBを設定するにはどうすればよいですか? Windowsからこれを行うには、特別なユーティリティが必要ですか? (カーネルはまだ自分自身をコンパイルすることはできません、それはしばらくの間ではありません)

ありがとう!

役に立ちましたか?

解決

私は自分のプロジェクトの解決策を自分で見つけました。OSdevの人々からのアドバイスもありました。ディレクトリを取得し、CDに書き込むことができるISOイメージにそのディレクトリを作成するmkisofs(cygwin dllを使用してWindowsで実行可能)と呼ばれるユーティリティがあります。 -bフラグを使用すると、ディスクのブートセクターに存在するファイルを指定できます。

解決策は、ブートセクタにGRUBを配置し、GRUBを使用してカーネルイメージをロードすることです。これをフロッピー以外の形式で簡単にコンパイルできます。

他のヒント

ブート可能なCDは、ブート可能なフロッピーとほとんど同じです。ブートローダー(GRUB)をブートセクターなどに配置する必要があります。プロテクトモードに切り替えるまで、BIOSが低レベルのものを処理します。

おそらくイメージを作成してから、実際の物理ディスクにddする必要があります。

El ToritoブータブルCDの仕様は次のとおりです。 http://www.phoenix。 com / NR / rdonlyres / 98D3219C-9CC9-4DF5-B496-A286D893E36A / 0 / specscdrom.pdf

編集:カーネルをテストする別の方法は、起動可能なUSBスティックです。繰り返しになりますが、A20をオンにして保護モードにジャンプするまで、BIOSは低レベルのUSBを処理します。

コードを見ることに興味があるなら、 Moblin Image Creator は、おそらくチェックアウトするのに適したアプリケーションです。 Pythonで書かれており、Moblin Linuxのライブ構成とインストール可能構成の両方に対して、さまざまなタイプのブート可能イメージ(CD、USB、およびNAND)を作成できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top