あなたが達成しようとしているのは、ブートテクノロジーを伸ばすことです:)しかし、完全なウォークスルーを行うには十分な知識がありませんが、それは可能だと思います。
まず、前述のように、ディストリビューションには非常に異なる要件があります。第二に、一方で良いことは、最小要件を必要とするディストリビューションを見つけることもできます。
ブートローダーとしてGRUB4DOSを使用することをお勧めします。USBでの使用方法については、このリンクを参照してください(USBのようなモバイルデバイスがある場合に重要なfind --set root-コマンドがあるため)。
次に、使用するパーティションの数を決定する必要があります。標準の「完全インストール」は常に単一のパーティションにあります。したがって、8 GBのUSBスティックがあり、4 GBのパーティション(最小のインストールが可能)を取る場合、DebianやFedoraのようなメインディストリビューションの2つの異なる「フルインストール」に制限されます。
ただし、小規模で特殊なLinuxディストリビューションがいくつかあります。たとえば、「Puppy Linux」は非常に小さく、特別な「質素なインストール」モードがあります。これには多くの種類があります(たとえば、デスクトップのようなAppleを実装しようとするMacPup、または64ビットLinuxであるFatdog64があります)。
この「質素なインストール」モードでは、ディレクトリを1つだけ使用し、ハードディスク(またはUSB)上の既存のLinuxまたはWindowsと並行してインストールできます。同様のモードをサポートする他のディストリビューションがあると確信しています。
パピーリナックスは小さい(150 MB未満)ため、インストールごとに小さい保存ファイル(512 MB)を予約すると想定すると、USBスティックに10種類のオペレーティングシステムのように簡単にインストールできます。さらに小さなLinux(Slitaz、Tinycore)を使用できます。
例として、現在のPCインストールからmenu.lst(GRUB4DOS)ファイルを添付します。最初の8エントリはすべてhd0,2上の異なるPuppy Linuxインストール(つまり、1番目のハードディスクの3番目のパーティション)であり、最小小さな追加パーティションと元のWindows-XPへのDebianインストール。
timeout=10
default=0
title Linux Buero (on /dev/sda3)
root (hd0,2)
kernel /puppy431-de/vmlinuz psubdir=puppy431-de pkeys=de ro vga=normal
initrd /puppy431-de/initrd.gz
title Live CD build (on /dev/sda3)
root (hd0,2)
kernel /puppylivecdbuild/vmlinuz psubdir=puppylivecdbuild ro vga=normal
initrd /puppylivecdbuild/initrd.gz
title sage developement(on /dev/sda3)
root (hd0,2)
kernel /Sage46dev/vmlinuz psubdir=Sage46dev pfix=nocopy ro vga=normal
initrd /Sage46dev/initrd.gz
title sage developement test and fun
root (hd0,2)
kernel /Sage-test/vmlinuz psubdir=Sage-test pfix=nocopy,noram ro vga=normal
initrd /Sage-test/initrd.gz
title Lupq 511
find --set-root --ignore-floppies /lupq511/initrd.gz
kernel /lupq511/vmlinuz psubdir="lupq511" pfix=nocopy pkeys=de ro vga=normal
initrd /lupq511/initrd.gz
title Lupu 520 - New kid on the block
find --set-root --ignore-floppies /lupu-520/initrd.gz
kernel /lupu-520/vmlinuz psubdir="lupu-520" pfix=nocopy pkeys=de ro vga=normal
initrd /lupu-520/initrd.gz
title wary beta (on /dev/sda3)
root (hd0,2)
kernel /wary/vmlinuz psubdir=wary ro vga=normal
initrd /wary/initrd.gz
title spup (on /dev/sda3)
root (hd0,2)
kernel /spup/vmlinuz psubdir=spup ro vga=normal
initrd /spup/initrd.gz
title Debian (on /dev/sda2)
find --set-root --ignore-floppies /initrd.img
kernel /vmlinuz root=/dev/sda2 ro
initrd /initrd.img
title Windows NT/2K/XP\nStart Windows if installed on HDD
fallback 7
find --set-root --ignore-floppies /ntldr
chainloader /ntldr
boot
USBのmenu.lstは同様に見えるかもしれませんが、GRUB4DOSコマンド
find --set-root --ignore-floppies /lupq511/initrd.gz
(すべてのドライブでこのファイルを探す)は、USBを使用する場合に非常に役立つため、ドライブに固定エントリを使用する必要はありません。
上記の情報を使用して、元の質問に対するいくつかのコメント:
Q:* / boot / img / [SystemName]フォルダーには、/ boot / kernelディレクトリに保存されているLinuxカーネルのさまざまな(または同じ)バージョンを使用する特定のシステムのイメージが保存されることを理解しています(少なくとも、それが私がそれを設定したい方法です)
A:それがうまくいくかどうかはわかりません。ほとんどの主要なディストリビューションは、それらのパーティションの排他的権利を持ち、それらのファイルに特定のディレクトリ構造をインストールすることを期待しているからです。私の意見では、デフォルトの設定を尊重し、ディストリビューションが期待するものを提供することをお勧めします。つまり、一部には専用パーティションが必要であり、一部は共有パーティション上のディレクトリだけで満足します。デフォルトではない方法で1つのパーティションに複数のOSをインストールすることは不可能だとは言えませんが、問題が発生しやすく、Linuxの初心者には実用的ではないと私は思います。私が投稿の下部で言及している可能な回避策(「Wubiのような」インストール)。
Q:*ただし、これらのシステムのほとんどは、「linux」と呼ばれるディレクトリにカーネルを持っています(バージョンを示していない)。これらすべてが使用するカーネルを検索できますが、カーネル自体を/ boot / kernelにコピーするのに最適な場所はどこですか?
A:カーネルはディストリビューションが通常持っている場所に正確に行くべきだと思います。それらを別の/ boot / kernelフォルダーに保存する必要はありません。また、ディストリビューション間で共有することもお勧めしません。カーネルの記憶域は最小限です(2〜3 MBなど)。本当にたくさんのバージョンとサブバージョンがあり、時にはディストリビューションのカーネルに適用される特定のパッチさえあります。別の/テストされていないカーネルにプラグインすることは、不要な実験です。
Q:*カーネルを入手した後、残りのほとんどはデバイスを/ boot / img /にコピーして、menu.lstに適切なエントリを作成していると思いますか?カーネルが参照できるようになれば、システムごとにそれを行うことができます。
A:前述のように、それらを必要とするディストリビューション用に個別のパーティションを作成し、あまり貪欲ではないディストリビューションを独自のフォルダーに混在させることをお勧めします。カーネル、initrd、および残りのディストリビューションを1つのユニットとして扱います。
最後のアイデア。別のパーティションを使用したくない場合は、独自のパーティションへのフルインストールを要求するディストリビューションに対して「WUBI」インストールなどを試すことができます。これは、USB上に独自のext2 / ext3ファイルシステムで大きなファイルを作成し、それらを「ドライブ」としてマウントして、OSをそれにインストールすることを意味します。(これは最もよく知られているアプリケーションであるため、私はWUBIと呼びます)。
以下は、「Wubiインストール」を起動するためのGrub4dos menu.lstエントリです。
# Add the ntfs module - just needed for Installation on a Windows Partition
insmod ntfs
# Set root (normally would be sda1, or hd0,1 Change as necessary
set root=(hd0,1)
loopback loop0 /ubuntu/disks/root.disk
set root=(loop0)
linux /boot/vmlinuz root=/dev/sda1 loop=/ubuntu/disks/root.disk ro
initrd /boot/initrd/initrd.img
boot
ここから。
2つの「set root」コマンドがあり、Linuxを含む「root.disk」の2番目がloop0としてマウントされています。
完全なウォークスルーではありませんが、いくつかのアイデアを提供できれば幸いです。