To, co próbujesz osiągnąć, to rozciągnięcie technologii rozruchowej :) Myślę jednak, że jest to możliwe, chociaż nie mam wystarczającej wiedzy, aby przeprowadzić pełne przejście.
Po pierwsze, jak powiedziano wcześniej, dystrybucje mają bardzo różne wymagania. Po drugie, dobrą rzeczą jest to, że możesz także znaleźć dystrybucje, które wymagają minimalnych wymagań.
Poleciłbym użyć GRUB4DOS jako bootloadera. Zobacz ten link, jak używać go z USB (ponieważ ma polecenie find --set root - co jest ważne, jeśli masz urządzenie mobilne takie jak USB).
Następnie musisz zdecydować, z ilu partycji będziesz korzystać. Standardowa „Pełna instalacja” jest zawsze na jednej partycji. Więc jeśli masz 8 GB pamięci USB i weź partycję 4 GB (co pozwala na minimalną instalację), będziesz ograniczony do 2 różnych „pełnych instalacji” głównych dystrybucji, takich jak Debian lub Fedora.
Istnieją jednak małe i wyspecjalizowane dystrybucje Linuksa. Na przykład „Puppy Linux” jest bardzo mały i ma specjalny tryb „Oszczędna instalacja”. Występuje w wielu odmianach (np. Jest MacPup z próbami wdrożenia Apple takiego jak Desktop lub Fatdog64, który jest 64-bitowym Linuksem).
W tym trybie „Oszczędna instalacja” używa tylko 1 katalogu i może być zainstalowany równolegle do istniejącego systemu Linux lub Windows na dysku twardym (lub USB). Jestem pewien, że istnieją inne dystrybucje, które obsługują podobne tryby.
Ponieważ Puppy Linux jest mały (<150 MB) i przy założeniu, że zarezerwujesz mały plik zapisu dla każdej instalacji (512 MB), możesz łatwo zainstalować 10 różnych systemów operacyjnych na pamięci USB. Istnieją jeszcze mniejsze Linuxesy (Slitaz, Tinycore), których możesz użyć.
Jako przykład dołączam plik menu.lst (GRUB4DOS) z mojej bieżącej instalacji na PC. Pierwsze 8 wpisów to różne instalacje Puppy Linux na hd0,2 (tj. 3. partycja na 1. dysku twardym), wtedy jest minimalny Instalacja Debiana na małej dodatkowej partycji, a także w oryginalnym systemie Windows XP.
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
Menu.lst na twoim USB może wyglądać podobnie, polecenie GRUB4DOS
find --set-root --ignore-floppies /lupq511/initrd.gz
(szuka tego pliku na wszystkich dyskach) może być bardzo przydatne, jeśli używasz USB, więc nie musisz używać stałych wpisów dla dysku.
Dzięki powyższym informacjom niektóre komentarze do twoich oryginalnych pytań:
P: * Rozumiem, że folder / boot / img / [SystemName] będzie przechowywać obraz dla określonego systemu, który może korzystać z różnych (lub takich samych) wersji jąder systemu Linux przechowywanych w katalogu / boot / kernel (przynajmniej tak chciałbym to skonfigurować)
Odp .: Nie jestem pewien, czy to zadziała, ponieważ większość głównych dystrybucji oczekuje wyłącznego prawa do partycji i instaluje określoną strukturę katalogów dla swoich plików. Moim zdaniem lepiej jest przestrzegać domyślnej konfiguracji i zapewnić to, czego oczekuje dystrybucja, tj. Niektórzy potrzebują wyłącznej partycji, inni będą zadowoleni z samego katalogu na wspólnej partycji. Nie twierdzę, że nie jest możliwe zainstalowanie wielu systemów operacyjnych na 1 partycji w sposób inny niż domyślny, ale prosi o kłopoty i moim zdaniem nie jest praktyczny dla początkujących Linuksa. Możliwe obejście, o którym wspomniałem na dole mojego postu (instaluje się „wubi-podobne”).
P: * Jednak większość z tych systemów ma po prostu jądro w swoich katalogach o nazwie „linux” (nie podając wersji). Mogę znaleźć jądro, którego wszyscy używają, ale jakie jest najlepsze miejsce, aby same jądra skopiowały do / boot / kernel?
Odp .: Myślę, że jądra powinny iść dokładnie tam, gdzie zwykle je mają dystrybucje. Nie ma potrzeby przechowywania ich w osobnym folderze / boot / kernel, a także nie zalecałbym próby dzielenia się nimi między dystrybucjami. Przestrzeń pamięci jest minimalna dla jądra (jak 2-3 MB). Naprawdę istnieje wiele wersji i pod-wersji, a czasem nawet specyficzne łatki są stosowane do jądra dystrybucji. Podłączenie innego / nieprzetestowanego jądra jest niepotrzebnym eksperymentem.
P: * Po otrzymaniu jąder, wyobrażam sobie, że reszta w większości kopiuje urządzenie do / boot / img / i tworzy odpowiedni wpis w menu.lst, prawda? Mogę to zrobić w systemie dla poszczególnych systemów, gdy tylko będę mógł uzyskać dostęp do jąder.
Odp .: Jak wspomniano wcześniej, lepiej utwórz osobne partycje dla tych dystrybucji, które ich potrzebują, i dodaj niezbyt chciwe dystrybucje do własnych folderów. Traktuj jądro, initrd i resztę dystrybucji jako jednostkę.
Ostatni pomysł. Jeśli nie chcesz używać różnych partycji, możesz wypróbować coś takiego jak instalacje „WUBI” dla dystrybucji wymagających pełnej instalacji na własnej partycji. Oznacza to, że tworzysz duże pliki z własnymi systemami plików ext2 / ext3 na USB, a następnie montujesz je jako „dyski” i instalujesz w nim system operacyjny. (Nazywam to WUBI, ponieważ jest to najbardziej znana aplikacja).
Poniżej powinien znajdować się wpis menu Grub4dos.lst, aby uruchomić „instalację Wubi”.
# 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
Od tutaj .
Widzisz, istnieją 2 polecenia „ustaw root”, drugi po „root.disk”, który zawiera Linux, jest montowany jako loop0.
Mam nadzieję, że mógłbym podać kilka pomysłów, chociaż nie jest to kompletny przewodnik.