Jak zainstalować system „z niczego”

Co zrobić, gdy nie masz pod ręką żadnego pendriva, żadnej płytki, ani znajomego z serwerem TFTP, a chcesz zainstalować sobie nową dystrybucję? W tym poradniku pokażę, jak sobie radzić z takimi „awaryjnymi” sytuacjami.

Założenia

Przyjmuję, że użytkownik ma działający system operacyjny GNU/Linux, obraz instalacyjny w formacie ISO oraz zainstalowany program rozruchowy GRUB bądź GRUB2. Nie są wymagane jakieś specjalne umiejętności, trzeba tylko czytać ze zrozumieniem.

Problematyka

Jeśli mamy obraz płytki, to nie możemy ot tak sobie go zamontować i uruchomić w jakiejś linuksowej mutacji DAEMON Tools’a. Obraz musi być uruchomiony w trybie emulacji ISO bądź załadowany do pamięci. Kolejny problem stanowią nowsze dystrybucje LiveCD, w których do trzymania całego „zrzutu” programów, środowiska graficznego i innych tego typu śmieci wykorzystuje się plikopartycję w systemie SQUASHFS. Taka plikopartycja jest montowana przez ramdysk, który startuje razem z jądrem systemu i przechowuje procedury dotyczące uruchamiania usług i komponentów systemowych. Ramdysk próbuje zwykle podmontować sobie plikopartycję, szukając jej na nośnikach CD lub pendrive’ach. W takim wypadku trzeba zastosować różne kombinacje alpejskie, lecz zwykle wystarcza wypakowanie plików z archiwum ISO albo zdefiniowanie ścieżki do płytki.

Przygotowanie

Aby mieć możliwość kombinowania z instalacją, musimy się oczywiście wyposażyć w obraz instalacyjny w formacie ISO. Dodatkowo potrzebny nam będzie GRUB4DOS, który można pobrać w archiwum tar.gz. Do prawidłowego funkcjonowania przydatna będzie także niewielka, pusta partycja – można sobie sformatować partycję swap. Gdy mamy wszystkie komponenty, wrzucamy je na pustą partycję, w tym poradniku nazywaną umownie /dev/sda3. Nazwę obrazu ISO można sobie zmienić na coś krótkiego, na przykład foo.iso – przyda nam się to później.

Scenariusz najprostszy, czyli sam GRUB4DOS

Najprostszy scenariusz przewiduje po prostu wrzucenie pliku ISO do pamięci RAM i zabootowanie z opcją toram, ponieważ niektóre systemy, jak na przykład Ubuntu, nie zainstalują się na dysku, gdy odkryją, że się z niego zbootowały. Dobrze, ale do rzeczy – restartujemy komputer i uruchamiamy konsolę GRUBa lub GRUB2 poprzez klawisz „c” (jeśli Twój GRUB automatycznie uruchamia system, zmodyfikuj plik konfiguracyjny, lecz ja już nie powiem Ci jak, ponieważ jest to materiał na inny artykuł). Gdy już wylądujemy przy zgłoszeniu, wklepujemy:

  1. grub> root (hd0,3)
  2. (hd0,3): filesystem is fat
  3. grub> linux /grub.exe
  4. grub> boot

A cóż to za dziwota? Załadowaliśmy sobie pospolity pliczek wykonywalny jako kernel? Tak, proszę państwa, przeszliśmy do bootloadera GRUB4DOS, a pliczek wykonywalny nie jest sobie zwykłym „ekzekiem” i nie uruchamiajcie go pod Windows! Dobrze, jak już jesteśmy w GRUB4DOSie, to mogę odpowiedzieć na pytanie „czemu nie zwykły GRUB?”. Niezwykły, ponieważ posiada funkcje, jakich w klasycznych bootloaderach próżno szukać, a są to takie perełki jak natywna obsługa PXE, ładowanie dosłownie wszystkiego do pamięci, czy poszukiwana przez nas emulacja ISO. Najlepsze efekty widać w praktyce, dlatego wchodzimy znowu do konsoli przez „c” i ciśniemy:

  1. grub> root (hd0,2) # W GRUB4DOS numeracja partycji idzie OD ZERA!
  2.         filesystem is fat
  3. grub> map –mem /foo.iso (hd666)
  4. # Gdyby mu nie pasowały sektory bądź nagłówki:
  5. # grub> map –heads=0 –sectors-per-track=0 –mem /foo.iso (hd666)
  6. # Czekamy, czekamy, cierpliwie czekamy….
  7. grub> map –rehook
  8. grub> chainloader (hd666)
  9. # Tu się pojawią informacje o boot-sectorze
  10. grub> boot

Brawo, właśnie uruchomiłeś płytkę bez płytki! ;) Teraz, żeby system nie szukał samego siebie po napędach, trzeba dodać do linii uruchamiania jądra (zwykle dostępnej po naciśnięciu TAB lub F6):

  1. toram root=/dev/ram0

Parametr „root=” informuje jądro, że ma siebie szukać nie na płycie CD, lecz w pamięci RAM „na żywca”, a parametr „toram”, iż ma skopiować plikopartycję… do pamięci RAM. Paradoks, ale zapobiega to zablokowaniu dysku twardego podczas instalacji przez upierdliwe instalatory. Jednak czasem sprawy się komplikują…

Na problemy – opcje uruchamiania!

Gdy mamy problemy z uruchomieniem, które objawiają się najczęściej błędami w podmontowaniu plikopartycji do RAMu,  zaczynają się schody, czyli ostre kombinowanie. Na początek powinniśmy zmodyfikować opcje uruchamiania, ponieważ to one często są przyczyną trudności. Dystrybucje z upierdliwymi instalatorami nie mają problemów z uruchamianiem, w przeciwieństwie do tych, które pozwalają na instalację systemu na „aktywnym” dysku. W takim wypadku często obsługiwane jest bezpośrednie wskazanie na plik ISO, definiowane różnie, w zależności od dystrybucji. Na przykład:

  1. iso-scan/filename=/foo.iso (szuka na wszystkich dyskach)
  2. # bądź
  3. findiso=/dev/sda3/foo.iso

Pomocne bywa przejrzenie opcji startowych i usunięcie „podejrzanych” wpisów – to już na własną rękę, ponieważ opcji jest bardzo dużo. A jeśli nawet odwołanie do ISO nie zaskoczy…

Przypadek ostateczny

Ostatnią deską ratunku może okazać się możliwość uruchomienia z partycji „na  żywo”, czyli rozpakowanie obrazu płyty i uruchomienie przez zwykły GRUB(2) z parametrem „root=”, jak to ma miejsce w poniższym przykładzie:

  1. grub> root (hd0,3)
  2. (hd0,3): filesystem is fat
  3. grub> linux /ścieżka/do/jądra/zależna/do/dystrybucji/vmlinuz26 root=/dev/sda3 [inne opcje]
  4. grub> initrd /ścieżka/do/initrd/również/zależna/od/dystrybucji
  5. grub> boot

Takie rozwiązanie skutkuje w 99,99% przypadków. Lecz co zrobić, gdy naprawdę nic nie działa?

Rozwiązanie bardzo alternatywne

Uwaga!: Wykonywanie porad z tego punktu może narazić Cię na utratę danych. Autor nie ponosi odpowiedzialności za skutki użycia tego rozwiązania.

Jeśli czytasz ten punkt, to znaczy, że jesteś naprawdę zdesperowany i chyba mieszkasz na pustyni, gdzie w promieniu 200km nie ma żadnego sklepu z płytkami bądź pendrive’ami lub Twój portfel naprawdę świeci pustkami, a Ty masz dystrybucję, która opiera się wszelkim próbom usidlenia. Rozwiązanie alternatywne obejmuje nagranie obrazu ISO na partycję bezpośrednio narzędziem dd, które, jak wiadomo, jest skrótem od disk destroyer :). A więc, naprawdę zdesperowany człowieku, dajesz:

  1. kowalski@kompiuter:~$ sudo dd if=/jakaś-tam-dystrybucja-1.1.1-r1.iso of=/dev/sda3
  2. # Czekamy, czekamy, czekamy…
  3. Ileśtam+0 zapisanych recordów
  4. Ileśtam+0 odczytanych recordów
  5. kowalski@kompiuter:~$ sudo reboot
  6. # Pyk!
  7. grub> root (hd0,3)
  8. (hd0,3): filesystem is iso9660  # Jesteśmy w domu.
  9. grub> chainloader (hd0,3)
  10. grub> boot
  11. # Ewentualnie, jeśli nie zadziała, możemy ręcznie wpisać jądro.
  12. grub> linux /ścieżka/do/jądra/zależna/do/dystrybucji/vmlinuz26 [opcje]
  13. grub> initrd /ścieżka/do/initrd/również/zależna/od/dystrybucji
  14. grub> boot

Tak, teraz ostateczna procedura została uruchomiona i musi działać. Jeśli nie, to tylko siąść i rzewnie płakać…

Wniosek

Jeśli należysz do szczęściarzy, którym udało się uruchomić ISO w pierwszym lub drugim punkcie – gratuluję! Na pewno polubisz tę metodę. Jeżeli zaś nie udało się uruchomić płyty, a Ty nadal siedzisz na rozsypanym systemie, możesz poczuć niechęć do takich kombinacji. Wniosek z tego taki, że bootować w ten sposób da się raczej „osłuchane” dystrybucje lub narzędzia, które nie mają plikopartycji.

korekta – tehora

Komentarze (RSS)
Komentarze są prywatnymi opiniami dodających je osób. Prosimy o zachowanie kultury wypowiedzi. Komentarze obraźliwe oraz obniżające poziom serwisu będą usuwane. Więcej w regulaminie komentowania.

17 komentarzy

  1. gjm 5 lipca 2011 o godz. 1:02 #

    Tego szukałem. Skrzyp++

  2. SoL 5 lipca 2011 o godz. 10:11 #

    nareszcie! nie mogę się zdecydować na przetestowanie tych paru sposobów – otóż mój kochany sprzęcik nie ma sprawnego napędu CD, nie bootuje z pendrive'a, i metody na instalację z dysku próbowałem na parę sposobów – mało co działało. gdyby mi się chciało i miałbym czas, dam znać na które linuchy działa który sposób.
    pozdrawiam i dzięki za artykuł

  3. Lukasz 5 lipca 2011 o godz. 13:29 #

    Swietny artykul. Niedawno mialem problemy ze zbootowaniem systemu ubuntu z plyty CD (nie moglem nawet wystartowac iksow). Na szczescie Fedore udalo sie zbootowac i zainstalowalem system. Ale nastepnym razem skorzystam z Waszych sugestii :-)

  4. totalizator 5 lipca 2011 o godz. 13:43 #

    Drag & drop -> http://www.webupd8.org/2010/03/how-to-create-mult… Używam od dawna i sprawdza się wyśmienicie. Obraz ISO wystarczy przeciągnąć na okno programu a on dodaje na pendrive odpowiedni wpis do GRUB2. Sama radość.

    • Skrzyp 5 lipca 2011 o godz. 20:21 #

      No ba – instalatotalizatorów na pendrive jest mnóstwo, jednakże my tu mówimy o opcji zero, bez niczego.

  5. Zapor 6 lipca 2011 o godz. 0:08 #

    W jaki zatem sposób mogę wykonać taką operację z pod Win7?
    (chodzi o Debiana lub openSUSE, gdzie instalacja z sieci odpada – karta na rtl73)

    • Skrzyp 6 lipca 2011 o godz. 21:44 #

      Kwestia bootloadera – bardzo łatwo można zainstalować GRUB4DOS na Windzie (bo wszystkie ekzeki to jedna rodzina…), wystarczy zobaczyć WINGRUB na grub4dos.sourceforge.net

  6. Będę 6 lipca 2011 o godz. 12:47 #

    Słaby i niepełny artykuł. A co, jeżeli nie mam ISO, CD-ROM, USB, serwera TFTP i mam tylko jedno gniazdo do podpięcia dysku w komputerze?

    • Morfeusz888 7 lipca 2011 o godz. 15:28 #

      To nie masz możliwości zainstalowania systemu. Proste.

      • Skrzyp 7 lipca 2011 o godz. 20:58 #

        Nie, wystarczy podkraść innego kompa, podpiąć dysk, nagrać na niego ISÓwkę i GRUBa i łubudu! Na bezludnej wyspie nie mieszkasz, co? :P

    • Pryka.Iluvatar 15 lipca 2011 o godz. 21:27 #

      Niektórym to nie dogodzi, zaraz ktoś na pisze "a co jak nie mam komputera?"

      Jajco za przeproszeniem

  7. Riche 6 lipca 2011 o godz. 23:01 #

    Genialne, więcej takich tricków proszę.

  8. nvm404 8 lipca 2011 o godz. 10:36 #

    fajne, artykuł niepełen, lecz "otworzył" mi oczy – grub2 obsługuje iso i można zabootować iso tworząc loopback, wskazujac ścieżke kernela i ram dysku – fajna sprawa – można na pendriva sobie powrzucac ISOsy i miec wiele w jedym niezależnych =)

  9. snejkczif 8 lipca 2011 o godz. 10:58 #

    Instalacja poprzez PXE, wybór kilku systemów: http://snejkczif.wordpress.com/2011/05/24/instala

  10. Marian 3 września 2011 o godz. 12:27 #

    nie wiem poco ta cała praca magisterska kiedy wystarczy wejść na stronke : http://goodbye-microsoft.com/ z której sciągamy instaler Debiana ,następny krok to czysta instalacja .prościej się nie da . metoda sprawdzona , nie potrzeba żadnych płyt wystarczy podłączenie do internetu .

    • Felek 21 grudnia 2011 o godz. 9:24 #

      taaaaaaa, ale metoda przez Ciebie zaproponowana działa tylko pod win. gorzej jak masz zdalny serwer bez dostępu fizycznego a chcesz na nowo postawić lin.

(wymagane)
URI
Uwaga! Niektóre komentarze, m.in. te dodane przez niezalogowanych i nowych użytkowników, są ręcznie moderowane. Jeśli Twój komentarz nie ukaże się od razu, nie dodawaj go ponownie, tylko cierpliwie poczekaj na akceptację.

Literówki najlepiej zgłaszać mailem: sirmacik@jakilinux.org!

W komentarzach możesz używać prostych znaczników HTML. Przykłady:
  • Link: <a href="jaklinux.org">Linux dla każdego</a>,
  • Wytłuszczenie: <strong>tekst pogrubiony</strong>,
  • Kursywa: <em>tekst pochylony</em>,
  • Przekreślenie: <del>tekst przekreślony</del>,
  • Kod: <code>printf("blok kodu");</code>,
  • Cytat: <blockquote>cytat</blockquote>
Uwaga: jeśli dodasz nieznany znacznik, będzie on niewidoczny, gdyż system filtruje takie znaczniki.