1

既に Linux カーネル 2.6.39 をコンパイルしており、BOCHS でシミュレートしたいと考えています。次に、BOCHS でこのコンパイル済みカーネルから起動する方法を教えてください。
ブート .ISO ファイルを作成する考えがありますが、その方法がわかりません。

4

1 に答える 1

0

Bochs には実行可能ファイルを直接起動する機能がないように思われるため、最初に仮想ディスク ディスク イメージを作成する必要があります(チュートリアル)。次に、kpartx を使用してイメージをループ デバイスとしてセットアップできます。

# kpartx -a image.img

これにより、/dev の下に loopNp1 が作成されます (N は、使用されるループ デバイスに応じて、通常は 0 になります)。これで、フォーマットしてマウントできます。

# mkfs.ext4 /dev/loopNp1
# mount /dev/loopNp1 /mnt

その後、カーネル イメージ (zImage、bzImage など) を /mnt/boot にコピーできます。ただし、それを機能させるには、ブートローダーも必要です。grub を簡単にインストールできます (システムで既に使用している場合)。

# grub-install --boot-directory=/mnt/boot /dev/loopN

次のような grub.cfg も必要です。

set timeout=0
set default=0 # Set the default menu entry

menuentry "Linux" {
   linux /boot/zImage
   boot
}

/mnt/boot/grub の下に配置します。これで完了です。すべてをアンマウントし、bochsrc に次のような行を追加します。

ata0-master: タイプ=ディスク、パス=image.img、モード=フラット、シリンダー=0、ヘッド=0、spt=0、翻訳=自動

(注: 場合によっては、CHS 値を手動で指定する必要があるかもしれません) 動作するはずです (まあ、少なくとも init を実行しようとするまでは - しかし、それは別の問題です)。

于 2013-01-31T19:09:54.640 に答える