Einige Hintergrundinformationen:
- Ich komme aus einem Windows-Hintergrund (obwohl ich mit Ubuntu usw. vertraut bin) und verwende einen Windows 7-Computer, um diese Aufgabe abzuschließen
- Haben Sie GRUB erfolgreich auf dem MBR des USB-Laufwerks (8 GB FAT32-Laufwerk) installiert:
- Haben eine Grundstruktur auf dem Laufwerk erstellt: / boot / grub, / boot / img, / boot / kernel
Frage:
Ich habe einige grundlegende Fragen für Anfänger, aber solche, auf die ich über Google / StackExchange usw. keine Antworten finden konnte.
- Ich verstehe, dass der Ordner / boot / img / [SystemName] das Image für ein bestimmtes System speichert, das möglicherweise verschiedene (oder dieselben) Versionen von Linux-Kerneln verwendet, die im Verzeichnis / boot / kernel gespeichert sind (zumindest so möchte es einrichten)
- Die meisten dieser Systeme haben jedoch nur einen Kernel in ihren Verzeichnissen namens "Linux" (ohne Angabe der Version). Ich kann herausfinden, welchen Kernel diese alle verwenden, aber was ist der erste Ort, um die Kernel selbst zum Kopieren nach / boot / kernel zu bringen?
- Nachdem ich die Kernel erhalten habe, stelle ich mir vor, dass der Rest das Gerät hauptsächlich nach / boot / img / kopiert und den richtigen Eintrag in menu.lst erstellt, richtig? Ich kann das System für System tun, sobald ich die Kernel erhalten habe, auf die ich verweisen kann.
Gesamtziel:
Ich versuche, ein 8-GB-USB-Flash-Laufwerk zu erstellen, mit dem ich mehrere Betriebssysteme über ein GRUB-Startmenü starten kann. Um Betriebssysteme hinzuzufügen oder zu entfernen, möchte ich nur die entsprechenden Dateien in einen Ordner / boot / img / [Systemname] und einen Ordner / boot / kernel kopieren und dann die Datei menu.lst bearbeiten müssen. In diesem ersten Schritt geht es darum, die Kernel zu finden, die viele dieser Betriebssysteme gemeinsam nutzen, da ich hoffe, die Duplizierung zu reduzieren.
kernel
usb
dual-boot
boot-loader
grub-legacy
SeanKilleen
quelle
quelle
Antworten:
Was Sie erreichen möchten, ist die Stretching-Boot-Technologie :) Ich denke jedoch, dass dies möglich ist, obwohl ich nicht gut genug informiert bin, um einen vollständigen Durchgang zu ermöglichen.
Erstens haben Distributionen, wie bereits erwähnt, sehr unterschiedliche Anforderungen. Zweitens, das Gute ist, dass Sie auch Distributionen finden können, die nur minimale Anforderungen erfordern.
Ich würde empfehlen, GRUB4DOS als Bootloader zu verwenden. Unter diesem Link erfahren Sie, wie Sie es mit USB verwenden (da es den Befehl find --set root - enthält, der wichtig ist, wenn Sie ein mobiles Gerät wie USB haben).
Dann müssen Sie entscheiden, wie viele Partitionen Sie verwenden möchten. Die Standard-Vollinstallation befindet sich immer in einer einzelnen Partition. Wenn Sie also einen 8-GB-USB-Stick haben und eine 4-GB-Partition verwenden (was eine minimale Installation ermöglicht), sind Sie auf 2 verschiedene "Vollinstallationen" von Hauptdistributionen wie Debian oder Fedora beschränkt.
Es gibt jedoch einige kleine und spezialisierte Linux-Distributionen. Zum Beispiel ist "Puppy Linux" sehr klein und hat einen speziellen "Frugal Installation" -Modus. Es gibt viele Varianten (z. B. gibt es MacPup mit Versuchen, einen Apple wie Desktop oder Fatdog64, ein 64-Bit-Linux, zu implementieren).
In diesem "sparsamen Installationsmodus" wird nur genau 1 Verzeichnis verwendet und kann parallel zu einem vorhandenen Linux oder Windows auf der Festplatte (oder USB) installiert werden. Ich bin sicher, dass es andere Distributionen gibt, die ähnliche Modi unterstützen.
Da Puppy Linux klein ist (<150 MB) und vorausgesetzt, Sie reservieren für jede Installation eine kleine Sicherungsdatei (512 MB), können Sie problemlos 10 verschiedene Betriebssysteme auf dem USB-Stick installieren. Es gibt noch kleinere Linuxes (Slitaz, Tinycore), die Sie verwenden könnten.
Als Beispiel hänge ich die Datei menu.lst (GRUB4DOS) von meiner aktuellen PC-Installation an. Die ersten 8 Einträge sind alle verschiedene Puppy Linux-Installationen auf hd0,2 (dh die 3. Partition auf der 1. Festplatte), dann gibt es eine minimale Debian-Installation in einer kleinen zusätzlichen Partition und auch das ursprüngliche Windows-XP.
Die Datei menu.lst auf Ihrem USB-Stick könnte ähnlich aussehen. Der Befehl GRUB4DOS
find --set-root --ignore-floppies /lupq511/initrd.gz
(sucht in allen Laufwerken nach dieser Datei) kann sehr nützlich sein, wenn Sie USB verwenden, sodass Sie keine festen Einträge für Ihr Laufwerk verwenden müssen.Mit den obigen Informationen einige Kommentare zu Ihren ursprünglichen Fragen:
F: * Ich verstehe, dass der Ordner / boot / img / [Systemname] das Image für ein bestimmtes System speichert, das möglicherweise verschiedene (oder dieselben) Versionen von Linux-Kerneln verwendet, die im Verzeichnis / boot / kernel gespeichert sind (zumindest) so möchte ich es einrichten)
A: Ich bin nicht sicher, ob das funktionieren wird, da die meisten großen Distributionen erwarten, dass sie das ausschließliche Recht auf ihre Partition haben und eine bestimmte Verzeichnisstruktur für ihre Dateien installieren. Meiner Meinung nach ist es besser, das Standard-Setup zu respektieren und anzugeben, was die Distribution erwartet, dh einige benötigen eine exklusive Partition, andere sind nur mit einem Verzeichnis auf einer gemeinsam genutzten Partition zufrieden. Ich sage nicht, dass es nicht möglich ist, mehrere Betriebssysteme nicht standardmäßig auf einer Partition zu installieren, aber es bittet um Probleme und ist meiner Meinung nach für einen Linux-Neuling nicht praktikabel. Eine mögliche Problemumgehung erwähne ich am Ende meines Beitrags ("Wubi-like" -Installationen).
F: * Die meisten dieser Systeme haben jedoch nur einen Kernel in ihren Verzeichnissen namens "Linux" (ohne Angabe der Version). Ich kann herausfinden, welchen Kernel diese alle verwenden, aber was ist der beste Ort, um die Kernel selbst zum Kopieren nach / boot / kernel zu bringen?
A: Ich denke, die Kernel sollten genau dort sein, wo die Distributionen sie normalerweise haben. Sie müssen nicht in einem separaten Ordner / boot / kernel gespeichert werden, und ich würde auch nicht empfehlen, sie zwischen Distributionen freizugeben. Der Speicherplatz für einen Kernel ist minimal (wie 2-3 MB). Es gibt wirklich viele Versionen und Unterversionen und manchmal gibt es sogar spezielle Patches, die auf Kernel von Distributionen angewendet werden. Das Einstecken eines anderen / nicht getesteten Kernels ist ein nicht benötigtes Experiment.
F: * Nachdem ich die Kernel erhalten habe, stelle ich mir vor, dass der Rest das Gerät hauptsächlich nach / boot / img / kopiert und den richtigen Eintrag in menu.lst erstellt, richtig? Ich kann das System für System tun, sobald ich die Kernel erhalten habe, auf die ich verweisen kann.
A: Wie bereits erwähnt, erstellen Sie besser separate Partitionen für die Distributionen, die sie benötigen, und mischen Sie die nicht so gierigen Distributionen in ihre eigenen Ordner. Behandle Kernel, Initrd und den Rest der Distribution als Einheit.
Eine letzte Idee. Wenn Sie keine unterschiedlichen Partitionen verwenden möchten, können Sie versuchen, "WUBI" für die Distributionen zu installieren, die eine vollständige Installation auf einer eigenen Partition erfordern. Dies bedeutet, dass Sie große Dateien mit eigenen ext2 / ext3-Dateisystemen auf dem USB-Stick erstellen, diese dann als "Laufwerke" bereitstellen und das Betriebssystem darin installieren. (Ich nenne es WUBI, weil dies die bekannteste Anwendung ist).
Das Folgende sollte ein Grub4dos menu.lst-Eintrag sein, um eine "Wubi-Installation" zu starten.
Von hier aus .
Sie sehen, es gibt 2 "set root" -Befehle, der zweite nach "root.disk", der Linux enthält, wird als loop0 gemountet.
Ich hoffe, ich konnte einige Ideen geben, obwohl es kein vollständiger Durchgang ist.
quelle
Hier sind zwei Anleitungen:
Ich denke, beide verwenden separate Partitionen für jeden Kernel.
Die Einträge in " /boot/grub/menu.lst " lauten wie folgt :
quelle
Es hängt wirklich davon ab, welche Distributionen Sie dort platzieren. Einige von ihnen machen einige böse Sachen in den Initramfs, so dass es schwierig wird. Einige Live-Distributionen suchen nach einem Label, andere nach UUID. Das können Sie nicht angeben.
Die Lösung ist nicht einfach. Sie sollten neue angepasste Ramdisks für Ihre Live-Distributionen erstellen.
Ich hoffe, ich habe es nicht falsch verstanden: D.
quelle
Sie werden sicherlich eine Art Benutzerbereich benötigen, um mit jedem dieser Kernel zu arbeiten. (Programme, Konfiguration, das funktioniert.) Traditionell würden Sie mindestens eine Partition für jedes separate Betriebssystem verwenden, und die GRUB-Partition würde selbst als / boot gemountet (so hätten Sie boot tatsächlich nicht als Unterverzeichnis davon Partition; es wäre das Stammverzeichnis mit grub / als Unterverzeichnis.)
quelle