Algunos antecedentes:
- Procedente de un fondo en gran parte de Windows (aunque estoy familiarizado con Ubuntu, etc.) y usando una máquina con Windows 7 para completar esta tarea
- Se ha instalado GRUB correctamente en el MBR de la unidad USB (unidad FAT32 de 8 GB):
- Haber creado una estructura básica en la unidad: / boot / grub, / boot / img, / boot / kernel
Pregunta:
Tengo algunas preguntas básicas para principiantes, pero a las que he tenido problemas para encontrar respuestas a través de Google / StackExchange, etc.
- Entiendo que la carpeta / boot / img / [SystemName] almacenará la imagen para un sistema específico, que puede usar varias versiones (o las mismas) de los núcleos de Linux almacenados en el directorio / boot / kernel (al menos, así es como yo me gustaría configurarlo)
- 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 obtener los kernel para copiar / boot / kernel?
- 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.
Objetivo general:
Estoy tratando de crear una unidad flash usb de 8GB que me permita iniciar múltiples sistemas operativos desde un menú de inicio de GRUB. Para agregar o restar sistemas operativos, solo me gustaría tener que copiar los archivos apropiados a / boot / img / [SystemName] y una carpeta / boot / kernel según corresponda y luego editar el archivo menu.lst. Entonces, este primer paso se trata de encontrar los núcleos que comparten muchos de estos sistemas operativos, ya que espero reducir la duplicación.
kernel
usb
dual-boot
boot-loader
grub-legacy
SeanKilleen
fuente
fuente
Respuestas:
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.
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".
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.
fuente
Aquí hay dos guías:
Creo que ambos usan particiones separadas para cada núcleo.
Las entradas en " /boot/grub/menu.lst " son así:
fuente
Realmente depende de qué distribuciones estés poniendo allí. Algunos de ellos hacen cosas desagradables en initramfs, por lo que se vuelve difícil. Algunas distribuciones en vivo buscan una etiqueta, otras buscan uuid. No puedes proporcionar eso.
La solución no es fácil, debe construir nuevos discos ram personalizados para sus distribuciones en vivo.
Espero no haberme equivocado: D
fuente
Seguramente necesitará algún tipo de espacio de usuario para cada uno de estos núcleos. (Programas, configuración, trabajos). Tradicionalmente, usaría al menos una partición para cada sistema operativo separado, y la partición GRUB se montaría como / boot (de modo que, de hecho, no tendría boot como un subdirectorio de este partición; sería el directorio raíz, con grub / como subdirectorio).
fuente