Booten Sie mit GRUB von USB

48

Der Laptop meines Freundes hatte einen Autounfall (es geht ihm gut!). Allerdings ist der Laptop sehr alt, es ist ein Acer Aspire 1520, das CD-ROM-Laufwerk ist kaputt und es gibt kein Diskettenlaufwerk.

Ich habe ihn über USB gebootet, bevor ich es mir angesehen habe und festgestellt habe, dass sein BIOS nicht über USB booten kann. Die einzige Sache , die ich habe , ist eine GRUB - Konsole , aber er ist sehr daran interessiert, nur XP installieren (auf USB) und verwenden Sie es nur für Filme.

Ist es möglich, über die GRUB-Konsole auf den USB-Stick zuzugreifen und die Windows-Installation zu starten? Es ist eine große Herausforderung, aber ich denke, dies könnte der Weg sein, oder der Versuch, über LAN zu installieren, was ich nicht für erreichbar halte.

Simon Sheehan
quelle
1
Ich würde versuchen, ein USB-CD / DVD-Laufwerk zu bekommen und daran zu arbeiten, den Computer dazu zu bringen, damit zu booten.
Jmreicha
1
In diesem Beitrag werden die erforderlichen manuellen Befehle angezeigt. Sie müssen lediglich die Laufwerksnummer ermitteln, was durch das Ausfüllen der Registerkarte in GRUB erreicht werden kann.
new123456

Antworten:

39

Hier ist ein kurzes Beispiel für Grub-Befehle, die möglicherweise funktionieren, Erklärungen und Vorsichtsmaßnahmen.

grub2

Am wahrscheinlichsten für Installationen nach 2010.

set root=(hd1,1)
chainloader +1
boot

grub

Am wahrscheinlichsten für Installationen vor 2005.

root (hd1,0)
chainloader +1
boot

Für den Zeitraum 2005-2010 ist Ihre Einschätzung so gut wie meine, aber wenn Sie den Befehl für die falsche Version verwenden, wird nur beim ersten Befehl ein harmloser Syntaxfehler angezeigt.

Die richtige Wurzel wählen

Beim Start sucht grub nach Ihren Geräten und weist ihnen Nummern zu. Allen Geräten, die partitioniert sind (Festplatten und Flash-Laufwerke), werden auch Nummern zugewiesen. Das Format ist (<deviceName>,<partitionIndex>). In grub2haben sich die Partitionsindizes geändert, sodass die beiden obigen Beispiele trotz der Suche nach unterschiedlichen Roots den gleichen Effekt haben.

Ihr erstes Gerät ( hd0) ist das Gerät, von dem Sie gerade geladen haben. Danach können Sie normalerweise davon ausgehen, dass alle internen Geräte vor Ihren externen Geräten stehen. Sie werden höchstwahrscheinlich in Form von hdund einer Zahl vorliegen .

Nach dem Komma steht der Partitionsindex. Da Festplatten und USB-Sticks fast immer partitioniert sind, müssen Sie die richtige (und höchstwahrscheinlich nur) Partition auswählen. CD-ROMs sind normalerweise nicht partitioniert.

Weitere Dokumentation: http://www.gnu.org/software/grub/manual/html_node/Device-syntax.html

Bei der Auswahl Ihrer Root-Partition können Sie mit der Tabulatortaste nach Gerätenamen und Partitionsindizes suchen. Öffnen Sie einfach die Klammer und drücken Sie die Tabulatortaste, um die Liste anzuzeigen.

Ekevoo
quelle
5
Es ist auch möglich, set root=(hd1)(usw.) vom gesamten Gerät zu booten, wenn es nicht partitioniert ist, z. B. von einem bootfähigen USB-Laufwerk.
white_gecko
6
Zum Hinzufügen können Sie lsdie Liste der angeschlossenen Geräte anzeigen.
AntouanK
2
Ich weiß, Stapelaustausch entmutigt danke Kommentare, aber diese Antwort verdient wirklich eine. Du hast mir viel Zeit gespart.
John Militer
kann Befehl nicht findenroot
Bjorks Nummer eins Fan
13

Um auf den Kommentar von new123456 einzugehen:

Das USB-Gerät sollte als Massenspeichergerät erkannt und wie eine Festplatte behandelt werden. root (hdGeben Sie also in grub ein (drücken Sie noch nicht die Eingabetaste) und drücken Sie dann ein- oder zweimal die Tabulatortaste, um zu sehen, welche Festplatten Grub sehen kann. Wenn das USB-Gerät erkannt wird, ist es wahrscheinlich hd1. Geben Sie keine Partitionsnummer an. Fügen Sie einfach eine schließende Klammer hinzu. So wird die Linie sein root (hd1). Geben Sie anschließend Folgendes ein:

chainloader +1
boot

Wenn das nicht funktioniert, wechseln Sie root (hd1)zu root (hd1,0)und versuchen Sie es erneut.

Wenn Grub das USB-Laufwerk aus irgendeinem Grund nicht sehen kann, schließen Sie eine USB-CD-ROM an und booten Sie diese.

Jonathan
quelle
7

Das chainloader +1Ding könnte nicht funktionieren, wenn das BIOS nicht gut von einem USB-Stick booten kann (weshalb ich sowieso Grub verwenden wollte).

In diesem Fall gibt es unter https://help.ubuntu.com/community/Grub2/ISOBoot etwas Deep Magic , das zumindest für Ubuntu funktioniert. Das entscheidende Bit ist das Mucken mit dem Befehl grub, der die vmlinuzDatei identifiziert und das iso-scan/filenameArgument übergibt . Irgendwie hilft das dabei herauszufinden, dass das gesamte Boot-Dateisystem in einer ISO-Datei steckt. Ich weiß nicht, wie es funktioniert, aber es funktioniert. Dies sind (ungefähr) die Grub 2-Befehle, die ich verwendet habe:

loopback loop (fd0,msdos1)/path/to/iso/file
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/path/to/iso/file noprompt noeject
initrd (loop)/casper/initrd.lz
boot

Das /path/to/iso/filesollte der Pfad zur ISO-Datei auf dem USB-Stick sein. Der (fd0,msdos1)identifiziert den USB-Stick. Die Tabulatorvervollständigung ist in der loopbackZeile sehr hilfreich und für die Argumente zu nicht hilfreich vmlinuz.

Paul Stansifer
quelle
Ich denke, ich wollte dies als Antwort auf eine andere Frage beantworten. Ich wünschte ich wüsste welches!
Paul Stansifer
Im Falle einer efi/ uefiBootmodi, diese grub2erzeugen Befehle einen Fehler: error: can't find command 'linux'. Ändern Sie die Befehle in linuxefiund initrdefi.
Samveen
Ich mag das Konzept hier. Booten Sie von einer ISO, die sich auf einem Flash-Laufwerk befindet. Dies würde ein Flash-Laufwerk in ein Boot-CD-Buffet verwandeln. In dem funktionaleren Beispiel, in dem Sie von einer CD booten können, nicht von Flash, können Sie eine CD brennen, die Sie ausgewählt haben, wenn beim Booten von USB ein Problem aufgetreten ist, oder?
BenPen
2

Dies wird im Fall Ihres Freundes nicht besonders hilfreich sein (es sei denn, es gibt eine Möglichkeit, die ich nicht kenne - vielleicht eine USB-CD-ROM oder ein USB-Diskettenlaufwerk?), Aber dies ist eine tolle kleine anwendung, die mir geholfen hat, eine reihe alter maschinen von usbs zu booten, wenn ihr BIOS dies nicht zulässt.

Plop Boot Manager

Pseudo-Klage
quelle
0

Sie können nicht von USB in Grub booten, wenn das BIOS dies selbst nicht zulässt. Ich musste einmal eine Art Wiederherstellungspartition auf einer Festplatte einrichten, die den Inhalt der Win7-Installationsdiskette enthielt, grub installieren und dann damit die Win7-Installationspartition booten, um sie auf der restlichen Festplatte zu installieren.

hanetzer
quelle
Sie müssen wahrscheinlich die Befehle "insmod usbms" und dann "insmod ehci" oder "insmod uhci" vor den genannten Befehlen verwenden.
Claude Frantz