Uruchom z USB za pomocą GRUB

48

Laptop mojego przyjaciela miał wypadek samochodowy (nic mu nie jest!). Jednak laptop jest bardzo stary, jego Acer Aspire 1520 napęd CD-ROM jest zepsuty i nie ma napędu dyskietek.

Zrobiłem mu rozruch z USB, zanim na niego spojrzałem i stwierdziłem, że jego BIOS nie może się uruchomić z USB. Tylko rzeczą mam to konsola GRUB ale chętnie wystarczy zainstalować XP (na USB) i używać go tylko dla filmów.

Czy jest możliwe użycie konsoli GRUB, aby uzyskać dostęp do USB i rozpocząć instalację systemu Windows? To wysokie zamówienie, ale myślę, że może to być sposób lub próba instalacji za pośrednictwem sieci LAN, co nie wydaje się możliwe.

Simon Sheehan
źródło
1
Spróbowałbym zdobyć napęd CD / DVD USB i pracować nad tym, aby komputer się do niego uruchomił.
jmreicha
1
Ten post pokazuje wymagane polecenia ręczne - wystarczy znaleźć numer napędu, który można uzyskać, wypełniając zakładkę GRUB-a.
new123456,

Odpowiedzi:

39

Oto szybki przykład poleceń grub, które mogą po prostu działać, wyjaśnienia i zastrzeżenia poniżej.

grub2

Najprawdopodobniej w przypadku instalacji po 2010 r.

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

grub

Najprawdopodobniej w przypadku instalacji sprzed 2005 r.

root (hd1,0)
chainloader +1
boot

W latach 2005-2010 twoje przypuszczenia są równie dobre jak moje, ale jeśli użyjesz polecenia dla niewłaściwej wersji, otrzymasz tylko nieszkodliwy błąd składniowy przy pierwszym poleceniu.

Wybór właściwego katalogu głównego

Podczas uruchamiania grub będzie sprawdzał twoje urządzenia i przypisywał im numery. Wszystkim urządzeniom podzielonym na partycje (dyski twarde i dyski flash) również zostaną przypisane numery. Format to (<deviceName>,<partitionIndex>). W grub2zmieniono indeksy partycji, więc dwa powyższe przykłady mają ten sam efekt, pomimo tego, że chcą użyć różnych korzeni.

Twoje pierwsze urządzenie ( hd0) to urządzenie, z którego właśnie załadowano gruba. Następnie zazwyczaj można założyć, że wszystkie urządzenia wewnętrzne staną przed urządzeniami zewnętrznymi. Najprawdopodobniej będą miały postać hdliczby.

Po przecinku jest indeks partycji. Dyski twarde i pendrive prawie zawsze będą partycjonowane, więc musisz wybrać odpowiednią (i najprawdopodobniej tylko) partycję. Dyski CD-ROM zwykle nie są podzielone na partycje.

Więcej dokumentacji: http://www.gnu.org/software/grub/manual/html_node/Device-syntax.html

Wybierając partycję root, możesz użyć klawisza Tab, aby sprawdzić nazwy urządzeń i indeksy partycji. Po prostu otwórz nawias i zacznij naciskać Tab, aby zobaczyć listę.

Ekevoo
źródło
5
Możliwe jest również użycie set root=(hd1)(itp.) Do uruchomienia z całego urządzenia, jeśli nie jest ono podzielone na partycje, np. Rozruchowego napędu USB.
white_gecko
6
Aby dodać, możesz lszobaczyć listę podłączonych urządzeń.
AntouanK
2
Wiem, że wymiana stosów odradza dziękuję komentarzom, ale ta odpowiedź naprawdę na nie zasługuje. Zaoszczędziłeś mi dużo czasu.
John Militer
nie można znaleźć poleceniaroot
fan Bjorks numer jeden
13

Aby rozwinąć komentarz dotyczący nowego123456:

Urządzenie USB powinno zostać wykryte jako urządzenie pamięci masowej i traktowane jak dysk twardy. Tak więc, w grub, wpisz root (hd(nie naciskaj jeszcze Enter), a następnie naciśnij raz lub dwa razy tab, aby zobaczyć, jakie dyski twarde widzi Grub. Jeśli urządzenie USB zostanie rozpoznane, prawdopodobnie będzie to hd1. Nie podawaj numeru partycji; po prostu dodaj nawias zamykający. Więc linia będzie root (hd1). Następnie wpisz następujące polecenie:

chainloader +1
boot

Jeśli to nie poskutkuje, zmiany root (hd1)do root (hd1,0)i spróbować jeszcze raz.

Jeśli z jakiegoś powodu Grub nie widzi napędu USB, spróbuj podłączyć CDROM USB i uruchomić go.

Jonathan
źródło
7

To chainloader +1może nie działać, jeśli BIOS nie jest dobry w uruchamianiu z klucza USB (dlatego i tak chciałem użyć Grub'a).

W tym przypadku na https://help.ubuntu.com/community/Grub2/ISOBoot działa jakaś głęboka magia, która działa przynajmniej w Ubuntu. Kluczowym bitem jest tłumienie za pomocą polecenia grub, które identyfikuje vmlinuzplik, przekazując iso-scan/filenameargument. W jakiś sposób pomaga to ustalić, że cały system plików rozruchowych utknął w pliku ISO. Nie wiem jak do cholery to działa, ale tak jest. Są to (w przybliżeniu) polecenia Grub 2, których użyłem:

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

/path/to/iso/filePowinna być ścieżka do pliku ISO na kluczu USB. (fd0,msdos1)Identyfikuje klucz USB. Uzupełnianie tabulatorami jest bardzo pomocne w loopbacklinii i nie jest przydatne w przypadku argumentów do vmlinuz.

Paul Stansifer
źródło
Myślę, że chciałem odpowiedzieć na to pytanie w odpowiedzi na inne pytanie. Chciałbym wiedzieć, który!
Paul Stansifer,
W przypadku efi/ uefitrybów startowych, te grub2polecenia wygeneruje błąd: error: can't find command 'linux'. Zmień polecenia na linuxefii initrdefi.
Samveen,
Podoba mi się tutaj ta koncepcja. Uruchom ISO, które jest zapisane na dysku flash. To zmieni dysk flash w bootujący dysk CD. W bardziej funkcjonalnym przykładzie, w którym można było uruchomić system z dysku CD, a nie z programu Flash, można nagrać wybrany dysk CD, jeśli wystąpił problem z uruchomieniem urządzenia USB, prawda?
BenPen,
2

To nie będzie strasznie pomocne w przypadku twojego przyjaciela (chyba że jest sposób, w jaki nie jestem w stanie dostać się do urządzenia na pierwszym miejscu - może USB CD-ROM lub napęd dyskietek USB?), Ale jest to wspaniała mała aplikacja, która pomogła mi zmontować wiele starych maszyn do rozruchu z USB, gdy ich bios na to nie pozwala.

Plop Boot Manager

pseudo pozwać
źródło
0

Nie możesz uruchomić z USB w Grub, jeśli bios sam na to nie pozwala. Kiedyś musiałem skonfigurować rodzaj partycji odzyskiwania na dysku twardym zawierającym zawartość dysku instalacyjnego win7, zainstalować grub, a następnie użyłem go do uruchomienia partycji instalacyjnej win7, aby zainstalować ją na pozostałej części dysku twardego.

Hanetzer
źródło
Prawdopodobnie będziesz musiał użyć poleceń „insmod usbms”, a następnie „insmod ehci” lub „insmod uhci” przed wspomnianymi poleceniami.
Claude Frantz