Lo que está tratando de lograr es extender la tecnología de arranque :) Sin embargo, creo que es posible, aunque no estoy lo suficientemente informado como para dar un recorrido completo.
Primero, como se dijo antes, las distribuciones tienen requisitos muy diferentes. En segundo lugar, lo bueno, por otro lado, también puede encontrar distribuciones que necesitan requisitos mínimos.
Recomendaría usar GRUB4DOS como gestor de arranque. Consulte este enlace sobre cómo usarlo con USB (porque tiene el comando find --set root -, que es importante si tiene un dispositivo móvil como USB).
Luego tienes que decidir cuántas particiones usarás. La "instalación completa" estándar siempre está en una única partición. Entonces, si tiene una memoria USB de 8 GB y toma una partición de 4 GB (que permite una instalación mínima), estaría limitado a 2 "Instalaciones completas" diferentes de distribuciones principales como Debian o Fedora.
Sin embargo, hay algunas distribuciones de Linux pequeñas y especializadas. Por ejemplo, "Puppy Linux" es muy pequeño y tiene un modo especial de "Instalación Frugal". Viene en muchos sabores (por ejemplo, hay MacPup con intentos de implementar una Apple como Desktop, o Fatdog64, que es un Linux de 64 bits).
En este modo de "instalación frugal", solo usa exactamente 1 directorio y puede instalarse en paralelo a un Linux o Windows existente en el disco duro (o USB). Estoy seguro de que hay otras distribuciones que admiten modos similares.
Dado que Puppy Linux es pequeño (<150 MB) y suponiendo que reserve un pequeño archivo guardado para cada instalación (512 MB), puede instalar fácilmente como 10 sistemas operativos diferentes en la memoria USB. Incluso hay Linuxes más pequeños (Slitaz, Tinycore), que puedes usar.
Como ejemplo, adjunto el archivo menu.lst (GRUB4DOS) de mi instalación de PC actual. Las primeras 8 entradas son todas diferentes instalación de Puppy Linux en hd0,2 (es decir, la tercera partición en el primer disco duro), luego hay un mínimo Instalación de Debian en una pequeña partición adicional y también el Windows-XP original.
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
El menu.lst en su USB podría ser similar, el comando GRUB4DOS
find --set-root --ignore-floppies /lupq511/initrd.gz
(busca este archivo en todas las unidades) podría ser muy útil si usa USB, por lo que no tiene que usar entradas fijas para su unidad.
Con la información anterior, algunos comentarios sobre sus preguntas originales:
P: * Entiendo que la carpeta / boot / img / [SystemName] almacenará la imagen para un sistema específico, que puede usar varias (o las mismas) versiones de los núcleos de Linux almacenados en el directorio / boot / kernel (al menos, así es como me gustaría configurarlo)
R: No estoy seguro de si eso funcionará, ya que la mayoría de las distribuciones principales esperan tener el derecho exclusivo de su partición e instalar una estructura de directorio específica para sus archivos. En mi opinión, es mejor respetar la configuración predeterminada y proporcionar lo que la distribución espera, es decir, algunos necesitan una partición exclusiva, algunos estarán contentos con solo un directorio en una partición compartida. No digo que no sea posible instalar múltiples SO a 1 partición de una manera no predeterminada, pero está pidiendo problemas y, en mi opinión, no es práctico para un recién llegado de Linux. Una posible solución que menciono al final de mi publicación (instalaciones "similares a Wubi").
P: * Sin embargo, la mayoría de estos sistemas solo tienen un núcleo en sus directorios llamado "linux" (sin indicar la versión). Puedo buscar qué kernel usan todos, pero ¿cuál es el mejor lugar para copiar los kernel en / boot / kernel?
R: Creo que los núcleos deberían ir exactamente allí donde las distribuciones generalmente los tienen. No es necesario almacenarlos en una carpeta / boot / kernel separada, y tampoco recomendaría intentar compartirlos entre distribuciones. El espacio de almacenamiento es mínimo para un núcleo (como 2-3 MB). Realmente hay muchas versiones y subversiones y, a veces, incluso hay parches específicos aplicados a los núcleos de distribuciones. Complementar en un núcleo diferente / no probado es un experimento innecesario.
P: * Después de obtener los núcleos, imagino que el resto es principalmente copiar el dispositivo a / boot / img / y crear la entrada adecuada en menu.lst, ¿correcto? Puedo hacerlo sistema por sistema una vez que pueda hacer referencia a los núcleos.
R: Como se mencionó anteriormente, es mejor crear particiones separadas para aquellas distribuciones que las necesitan y mezclar las distribuciones no tan codiciosas en sus propias carpetas. Trate el núcleo, initrd y el resto de la distribución como una unidad.
Una última idea Si no desea utilizar diferentes particiones, puede probar algo como las instalaciones "WUBI" para las distribuciones que exigen una instalación completa en su propia partición. Esto significa que crea archivos grandes con sus propios sistemas de archivos ext2 / ext3 en el USB, luego los monta como "unidades" e instala el sistema operativo en él. (Lo llamo WUBI, porque esta es la aplicación más conocida).
Lo siguiente debería ser una entrada de Grub4dos menu.lst para iniciar una "instalación de 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
A partir de aquí .
Verá, hay 2 comandos "set root", el segundo después de "root.disk" que contiene Linux, está montado como loop0.
Espero poder dar algunas ideas, aunque no es un recorrido completo.