GRUB sur key USB – Ajout d'OS

Quelques antécédents:

  • Venant d'un environnement largement Windows (même si je suis familier avec Ubuntu, etc.) et en utilisant une machine Windows 7 pour accomplir cette tâche
  • Avoir installé GRUB avec succès sur le MBR du lecteur USB (lecteur FAT32 de 8 Go):
  • Ont créé une structure de base sur le lecteur: / boot / grub, / boot / img, / boot / kernel

Question:

J'ai quelques questions de base, débutantes, mais celles que j'ai eu du mal à find des réponses via Google / StackExchange, etc.

  • Je comprends que le dossier / boot / img / [SystemName] va stocker l'image pour un système spécifique, qui peut utiliser des versions différentes (ou les mêmes) des kernelx Linux stockés dans le directory / boot / kernel 'aimerais le mettre en place)
  • Cependant, la plupart de ces systèmes ont juste un kernel dans leurs directorys appelé "linux" (pas en indiquant la version). Je peux searchr quel kernel utilise tous, mais quel est le premier endroit pour get les kernelx eux-mêmes pour copyr dans / boot / kernel?
  • Après avoir récupéré les kernelx, j'imagine que le rest consiste principalement à copyr le périphérique dans / boot / img / et à créer l'input appropriée dans menu.lst, correct? Je peux le faire sur un système par système une fois que je peux faire reference aux kernelx.

But général:

Je tente de créer un lecteur flash USB de 8 Go qui me permettra de démarrer plusieurs systèmes d'exploitation à partir d'un menu de démarrage GRUB. Pour append ou soustraire des systèmes d'exploitation, je voudrais seulement copyr les files appropriés dans un file / boot / img / [SystemName] et un file / boot / kernel, puis éditer le file menu.lst. Donc, cette première étape consiste à find les kernelx que plusieurs de ces systèmes d'exploitation partagent, car j'espère réduire les duplications.

Je pourrais être confus quant à la façon dont le process fonctionne ou la terminologie, mais je promets que j'ai travaillé dans l'informatique en général pendant 7 ans et plus. Appréciez toute aide que vous pouvez donner!

Ce que vous essayez d'get, c'est d'étirer la technologie de démarrage 🙂 Cependant, je pense que c'est possible, même si je ne suis pas assez compétent pour donner une solution complète.

Tout d'abord, comme dit précédemment, les dissortingbutions ont des exigences très différentes. Deuxièmement, la bonne chose d'autre part, vous pouvez également find des dissortingbutions qui ont besoin d'exigences minimales.

Je recommand d'utiliser GRUB4DOS comme bootloader. Voir ce lien comment l'utiliser avec USB (car il a la command find –set root – ce qui est important si vous avez un appareil mobile comme usb).

Ensuite, vous devez décider du nombre de partitions que vous utiliserez. Standard "Installation complète" est toujours dans une seule partition. Donc, si vous avez une key USB de 8 Go et une partition de 4 Go (ce qui permet une installation minimale), vous serez limités à 2 "Installations complètes" différentes de distros principaux comme debian ou fedora.

Cependant, il existe quelques petites dissortingbutions Linux spécialisées. Par exemple, "Puppy Linux" est très petit et a un mode spécial "Installation Frugale". Il existe de nombreuses variantes (par exemple MacPup essaie d'implémenter un Apple comme Desktop ou Fatdog64 qui est un Linux 64 bits).

Dans ce mode "installation frugale", il utilise exactement un seul directory et peut être installé en parallèle à un Linux ou Windows existant sur le disque dur (ou USB). Je suis sûr qu'il existe d'autres dissortingbutions qui supportent des modes similaires.

Puisque Puppy Linux est petit (<150 Mo) et en supposant que vous réservez un petit file de sauvegarde pour chaque installation (512 Mo), vous pouvez facilement installer comme 10 systèmes d'exploitation différents sur la key USB. Il y a même des Linux plus petits (Slitaz, Tinycore), que vous pourriez utiliser.

Par exemple, je joins le file menu.lst (GRUB4DOS) de mon installation PC actuelle, Les 8 premières inputs sont toutes différentes Installation de Puppy Linux sur hd0,2 (c'est-à-dire la 3ème partition sur le 1er disque dur), puis il y a un debian minimal installation dans une petite partition supplémentaire et aussi l'original 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 

Le menu.lst sur votre key USB pourrait ressembler, la command GRUB4DOS find --set-root --ignore-floppies /lupq511/initrd.gz (search ce file dans tous les lecteurs) pourrait être très utile si vous utilisez USB, donc vous n'avez pas à utiliser des inputs fixes pour votre lecteur.

Avec les informations ci-dessus quelques commentaires sur vos questions d'origine:

Q: Je comprends que le dossier / boot / img / [SystemName] stockera l'image pour un système spécifique, qui peut utiliser différentes versions (ou les mêmes) des kernelx Linux stockés dans le directory / boot / kernel (au less, c'est comme ça que j'aimerais le mettre en place)

R: Je ne sais pas si cela fonctionnera, car la plupart des dissortingbutions principales s'attendent à avoir le droit exclusif de leur partition et à installer une structure de directorys spécifique pour leurs files. À mon avis, il est préférable de respecter la configuration par défaut et de fournir ce que la dissortingbution attend, c'est à dire que certains ont besoin d'une partition exclusive, certains seront heureux avec seulement un directory sur une partition partagée. Je ne dis pas qu'il n'est pas possible d'installer OSES multilignes sur une partition d'une manière non par défaut, mais il supplie des ennuis et à mon avis pas pratique pour un linux-nouveau venu. Une solution de contournement possible que je mentionne au bas de mon post (installations "Wubi-like").

Q: * Cependant, la plupart de ces systèmes ont juste un kernel dans leurs directorys appelé "linux" (pas de version). Je peux searchr quel kernel utilise tous, mais quel est le meilleur endroit pour get les kernelx eux-mêmes pour copyr dans / boot / kernel?

R: Je pense que les kernelx devraient aller exactement là où les dissortingbutions les ont généralement. Il n'est pas nécessaire de les stocker dans un dossier distinct / boot / kernel, et je ne reorderais pas non plus de les partager entre les dissortingbutions. L'espace de stockage est minimal pour un kernel (comme 2-3 Mo). Il y a vraiment beaucoup de versions et de subversions et parfois il y a même des correctifs spécifiques appliqués aux kernelx de dissortingbutions. Le greffon dans un kernel différent / non testé est une expérience inutile.

Q: * Après avoir récupéré les kernelx, j'imagine que le rest consiste à copyr le périphérique dans / boot / img / et à créer l'input appropriée dans menu.lst, correct? Je peux le faire sur un système par système une fois que je peux faire reference aux kernelx.

R: Comme mentionné précédemment, mieux créer des partitions séparées pour les dissortingbutions qui en ont besoin et mélanger les dissortingbutions less gourmandes dans leurs propres dossiers. Traitez le kernel, initrd et le rest de la dissortingbution comme une unité.

Une dernière idée. Si vous ne souhaitez pas utiliser différentes partitions, vous pouvez essayer quelque chose comme "WUBI" pour les dissortingbutions exigeant une installation complète sur sa propre partition. Cela signifie que vous créez des files volumineux avec ses propres filesystems ext2 / ext3 sur le port USB, puis montez-les en tant que «lecteurs» et installez le operating system. (Je l'appelle WUBI, parce que c'est l'application la plus connue).

le suivant devrait être une input menu.lst Grub4dos pour démarrer une "installation 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 

D' ici .

Vous voyez, il y a 2 commands "set root", la seconde après "root.disk" qui contient le Linux, est montée en loop0.

J'espère que je pourrais donner quelques idées, même si ce n'est pas une procédure complète, le meilleur Emil

Voici deux guides:

  • Un guide sur le forum Unity Linux
  • Et un autre en PClos

Je pense que les deux utilisent des partitions séparées pour chaque kernel.

Les inputs dans " /boot/grub/menu.lst " sont comme ceci:

 title Unity-2010 -- With Persistence kernel (hd0,0)/isolinux/vmlinuz vga=788 livecd=livecd fromusb root=Label=Unity-2010 changes_dev=LABEL=Unity-2010 acpi=on fstab=rw,noauto initrd (hd0,0)/isolinux/initrd.gz title Unity-2010 -- No Persistence kernel (hd0,0)/isolinux/vmlinuz vga=788 livecd=livecd fromusb root=Label=Unity-2010 acpi=on fstab=rw,noauto initrd (hd0,0)/isolinux/initrd.gz 

Cela dépend vraiment de la dissortingbution que vous mettez là. Certains d'entre eux font des trucs désagréables dans les initramfs, donc ça devient difficile. Certaines dissortingbutions en direct searchnt une label, une search d'uuid. Vous ne pouvez pas fournir cela.

La solution n'est pas simple, vous devez créer de nouveaux disques virtuels personnalisés pour vos dissortingbutions en direct.

j'espère que je ne me suis pas trompé: D

Vous aurez certainement besoin d'une sorte d'espace user pour aller avec chacun de ces kernelx. (Programmes, configuration, les travaux). Traditionnellement, vous utiliseriez au less une partition pour chaque operating system distinct, et la partition GRUB serait elle-même montée en tant que / boot (donc vous n'auriez pas en boot sous-directory partition, ce serait le directory racine, avec grub / comme sous-directory.)