
私は、ミニマルなカスタムカーネルを作るためのチュートリアルを読みましたここチュートリアルで説明されているように、ブートローダーとして GRUB を使用して仮想マシン上で起動することができます。
起動可能なペンドライブを使用して、同じことをハードウェア単体で実行できれば、もっと楽しいと思います。つまり、GRUB、ペンドライブ、およびカーネル実行可能ファイルを使用して起動可能なペンドライブを作成し、このペンドライブからカーネルを起動します。
質問1.起動可能な Linux ペンドライブを作成する通常の手順を使用することを考えましたが、カーネルは実際には ISO イメージではなく、ELF 形式の実行可能ファイルです。実行可能ファイルを何らかの方法で ISO 形式に変換した場合、通常の方法は機能しますか?
質問2.他に、どのように進めればよいかのアイデアやリソースへのリンクはありますか?
追伸:これは Linux カーネルそのものではなく、完全に最小限のカーネルであり、ファイル システムは何もありません。起動して、コンソールに何かを出力し、キーボード イベントを処理できるだけです。
答え1
起動の観点から見ると、カーネル ファイル自体は grub に渡される設定オプションにすぎません。grub がカーネルを見つけられる限り、問題なく実行できるはずです。
ただし、rootfs として使用するものが必要になるため、USB キーにパーティションまたは dd イメージを作成して、そこにカーネル ファイルを保存するのが適切です。おそらく、すべての grub のものを /boot に直接配置しても問題ありません。したがって、少なくとも、起動するには USB キーに mbr を設定し、grub 構成を含むファイルシステムが必要になります... (グーグルで検索したところ、/boot に fat と ext の両方が使用されている例が見つかりました。ほとんどの USB ブート キー ツールはベースに fat を使用しているため、それをお勧めしますが、ext でも機能すると思います。) 情報があります。ここUbuntu の例です。あなたの立場なら、これらのツールの 1 つを使用して起動可能な USB を作成し、それを自分のニーズに合わせて変更すると思います。そうすれば、GRUB のインストールと MBR 関連の作業が自動的に処理されます。
結局のところ、grubをUSBキーで起動して実行する方法が問題だと思います。その後はgrub configを実行するだけです。これリンクは過去に私を助けてくれました。
答え2
読むDebian のライブビルド システムについて。
--linux-package
linux-kernel.deb を指すオプションがあり、独自のカーネルを指定して、それを Debian 形式にパックするだけです。