Odzyskiwanie Systemu

Najmniej problematyczną kolejnością instalacji jest instalowanie Windowsa jako pierwszego systemu, a dopiero później GNU/Linuksa lub inny OS. Jednak czasami nie ma wyboru i trzeba zainstalować Windows mając już na dysku inne systemy. W tej sytuacji tracimy możliwość wyboru systemu przy uruchomieniu komputera. Dzieje się tak ponieważ Windows podczas instalacji nadpisuje ustawienia boot menadżera. W takim przypadku należy uruchomić komputer z płyty zawierającej "system uruchamiany w pamięci RAM bez potrzeby instalowania go na dysku twardym" czyli Live CD.

Marcin "largo3" Dzierzkowski

Live CD

Kilka najpopularniejszych dystrybucji typu Live CD zostało opisanych w artykule "Linux Live-CD" i nie widzę potrzeby aby powielać ten opis. Skupmy się więc na kryteriach jakie musi spełniać nasze Live CD.
Po pierwsze ważna jest wersja kernela na Live CD, ponieważ z systemu z jądrem serii 2.4.x nie można wykonać chroot do systemu z jądrem 2.6.x. Jeśli w naszym systemie mamy kernel 2.6.x, to kernel na Live CD także musi być 2.6.x. W przypadku kiedy w systemie na dysku mamy jądro 2.4.x, wersja na płycie nie ma znaczenia.

Niektóre dystrybucje tworzą Live CD ze swoich płyt instalacyjnych (np. Ubuntu, Slackware). Istnieją również specjalne dystrybucje typu Live CD zawierające wiele narzędzi przydatnych do naprawy uszkodzonych systemów czy partycji. Jedną z takich dystrybucji jest SystemRescueCd.
Starajmy się wybrać jak najmniejsze Live CD. W opisanej poniżej metodzie cały czas pracujemy w konsoli systemowej, tak więc nie potrzebujemy środowiska graficznego.

Ustawienia BIOS

Aby uruchomić komputer z Live CD należy zmienić w Biosie kolejność urządzeń, z których ma być bootowany system. Aby to zrobić należy podczas uruchamiania komputera uważnie śledzić komunikaty pojawiające się na ekranie. W pewnym momencie zobaczymy informację o producencie i sposobie wejścia do ustawień Biosu. Najczęściej do ustawień dostaniemy się naciskając klawisz F1 (często spotykane opcje to także F2, F3 oraz Delete) w czasie wyświetlania komunikatów dotyczących Biosu. Następnie, będąc już w menu wybieramy opcję Advanced BIOS Features , a potem First/Second/Third Boot Device (Boot Sequence) (nazwy poszczególnych podmenu mogą się nieznacznie różnić w zależności od producenta Biosu). Jako pierwsze urządzenie, z którego ma być uruchamiany system operacyjny, wybieramy nasz napęd optyczny podłączony jako primary (zanim dokonamy zmian dobrze jest zapisać obecną konfigurację aby później nie mieć problemów z jej przywróceniem). Teraz możemy włożyć do napędu płytę z Live CD i zrestartować komputer.

System z Live CD

Jeśli w poprzednim kroku wszystko zrobiliśmy dobrze po restarcie powinien uruchomić się system z Live CD. Bardzo prawdopodobne, że uruchomiło się środowisko graficzne, włączamy emulator konsoli (aterm, xterm, console). Jeśli nie uruchomił się tryb graficzny nie należy się tym martwić. W poniższym opisie posługujemy się tylko konsolą. Logujemy się na konto roota (administratora), zazwyczaj hasło nie jest wymagane, chociaż zdarza się że trzeba podać symboliczne hasło "toor".

Montowanie partycji

Kiedy już wykonaliśmy wszystkie czynności wstępne i jesteśmy zalogowani w konsoli (nieważne czy systemowej czy w emulatorze) możemy przystąpi do montowania partycji systemowych. Dyski w Linuksie mają oznaczenia złożone z trzech liter, ostatnia litera oznacza czy dysk jest podpięty jako master czy jako slave np. dysk SATA podpięty jako master na pierwszym kanale będzie miał symbol sda, natomiast dysk PATA podłączony jako slave - hdb (dokładniejszy opis znajduje się na jakilinux.org/instalacja/podzial-na-partycje.
Jeśli nie pamiętamy układu partycji można go wyświetlić poleceniem:

cat /proc/partitions

Powyższe polecenie wyświetli wszystkie partycje o których istnieniu "wie" uruchomiony system. Przykładowy wynik może wyglądać tak:
<| largo3|neuromancer ~ |> cat /proc/partitions 
major minor  #blocks  name

   8     0  156290904 sda
   8     1   31744000 sda1
   8     2   95248384 sda2
   8     3          1 sda3
   8     5   29294496 sda5

Linia z 8 0 156290904 sda zawiera ważną informację a mianowicie oznaczenie naszego dysku w systemie. W powyższym przykładzie jest to sda. Teraz wiemy, że do dysku i partycji należy odwoływać się przez /dev/sda.
Uwaga! w dalszej części opisu będę podawał przykłady na urządzeniu sda i jego partycjach. Powtarzam to tylko przykład!
Kiedy znamy już oznaczenie naszego dysku i układ partycji możemy je zamontować do katalogu /mnt/system (/mnt to katalog w systemach uniksowych przeznaczony do montowania różnego rodzaju urządzeń, katalg system wewnątrz /mnt musimy sami utworzyć: mkdir /mnt/system) oczywiście może to być inny pusty katalog. Jako pierwszą montujemy partycję root (główna partycja systemu, w normalnych warunkach montowana do / (ang. slash). Przyjmijmy, że jest to pierwsza partycja na dysku.
mount /dev/sda1 /mnt/system

Teraz montujemy resztę partycji systemowych według pliku /etc/fstab (na dysku, nie na płycie), plik ten możemy wyświetlić poleceniem
cat /mnt/system/etc/fstab

przykładowo jeśli partycja sda2 zgodnie z plikiem fstab jest montowana do /usr montujemy ją do /mnt/system/usr
mount /dev/sda2 /mnt/system/usr

Analogicznie postępujemy z pozostałymi partycjami.
Często pojawiają się problemy jeśli nie zamontujemy /proc oraz /dev. Aby to zrobić należy użyć mount:
mount -t proc none /mnt/system/proc
mount -o bind /dev /mnt/system/dev

Partycji /home nie musimy montować (przeważnie jest to duża partycja, której montowanie może trochę potrwać a nie jest konieczne).
Teraz kiedy mamy już wszystkie partycje systemowe zamontowane możemy przystąpić do kolejnej fazy: chrootowania się do systemu w /mnt/system.

chroot

Aby móc pracować w systemie powstałym w /mnt/system przez zamontowanie partycji należy użyć chroot
Za Wikipedią:

chroot (ang. change root) - uniksowe polecenie uruchamiające program ze zmienionym katalogiem głównym (root). W zmienionym środowisku będą działać też procesy potomne. W systemie GNU ten program obecny jest w pakiecie GNU Coreutils.

Użyjemy chroot w następujący sposób:

chroot /mnt/system /bin/bash

Końcówka /bin/bash to program jaki ma zostać uruchomiony po wykonaniu chroot, w tym przypadku uruchomiona zostanie powłoka bash (jeśli wolisz inną powłokę zmień /bin/bash na coś innego np: /bin/sh). Ważne jest aby podać pełną ścieżkę do polecenia). Możemy teraz przystąpić do przywracania ustawień boot menadżera.

Boot menadżery

W chwili obecnej w systemach GNU/Linux spotykamy dwa najpopularniejsze boot menadżery: LILO oraz GRUB. Poniżej opiszę przywrócenie działania i dodawanie systemu Windows w obu menadżerach.

LILO (LInux LOader)

Przywrócenie ustawień LILO ogranicza się do ponownego zapisania konfiguracji z pliku /etc/lilo.conf w MBR (ang. Master Boot Record) dysku. Aby to zrobić wydajemy polecenie

/sbin/lilo

lub
/sbin/lilo -v

aby uzyskać więcej informacji o działaniu polecenia lilo.
Aby dodać system Windows do menu LILO należy dopisać jego parametry do pliku konfiguracyjnego /etc/lilo.conf
Nie zagłębiając się w szczegóły proponuję dodać poniższe linie:
# Windows bootable partition config begins
other = /dev/sda3
label = Windows
table = /dev/sda
# Windows bootable partition config ends

Uwaga! /dev/sda oraz /dev/sda3 to tylko przykłady.
Następnie należy ponownie zapisać ustawienia w MBR używając znanego już polecenia:
/sbin/lilo

W razie problemów polecam lekturę manuala lilo (man lilo) oraz lilo.conf (man lilo.conf).

GRUB (z ang. GRand Unified Bootloader)

GRUB ma to do siebie, że stosuje specyficzne nazewnictwo dysków i ich partycji. Kolejne dyski są oznaczane jako hdX, gdzie X to numer dysku (numerację zaczynamy od zera!), np.: hd0 to linuksowy /dev/hda lub /dev/sda, gdyż GRUB stosuje to samo określenie zarówno do dysków PATA jak i SATA Podobnie można też odwoływać się do dysków SCSI (sd0, sd1 itd.) i do dyskietek (fd0). Liczba po przecinku oznacza numer partycji (również liczone od zera). W przykładzie powyżej (dysk oznaczony jako (hd0,2)) odwołujemy się do pierwszego dysku i jego trzeciej partycji (w standardowym linuksowym systemie plików oznaczalibyśmy ją jako /dev/sda3 lub /dev/hda3 dla dysku PATA).
Jeśli używasz GRUBa należy ponownie go zainstalować na dysku poleceniem:

grub-install --no-floppy --recheck /dev/sda

Zdarza się, że użycie opcji —no-floppy powoduje błędy, w takim wypadku pomińmy ją.

Możliwe jest też zastosowanie alternatywnej metody.
Wchodzimy do powłoki GRUBa poleceniem:

grub

Następnie wskazujemy gdzie znajduje się nasza główna partycja zawierająca pliki GRUBa (/boot/grub):
root (hd0,3)

Teraz instalujemy GRUBa w MBR:
setup (hd0)

Uwaga! /dev/sda, (hd0,2) i (hd0) to tylko przykłady.

Aby dodać Windows do menu GRUBa należy dopisać do pliku konfiguracyjnego /boot/grub/menu.lst (w niektórych dystrybucjach może to być plik /etc/grub.conf) następujące opcje:

title Windows 
rootnoverify (hd0,2)
makeactive
chainloader +1

Uwaga! (hd0,2) to tylko przykład.

W razie problemów odsyłam do dokumentacji - info grub dostępnej również online.

Jeśli wszystko poszło dobrze możemy zrestartować komputer (wcześniej wyjmujemy z napędu płytę aby komputer uruchomił się z dysku twardego). Po restarcie powinno pojawić się menu naszego boot menadżera, a w nim dostępna opcja uruchomienia systemu Windows. Jeśli nie mamy zastrzeżeń do działania boot menadżera możemy przywrócić poprzednią kolejność bootowania w Biosie (którą wcześniej będąc przewidującym użytkownikiem zapisaliśmy).

Kombinacje klawiszy umożliwiające wejście do ustawień BIOSu różnych producentów:

Acer - [F2] lub [Ctrl][Alt][Esc]
American Megatrends (AMI) - [Del] lub [F1]
AST Advantage, Tandon - [Ctrl][Alt][Esc]
Award - [Del] lub [F1]
Compaq - [F10], gdy na ekranie w górnym rogu pojawi się mały kwadrat
Dell - [Del], [F2], [F1], [Ctrl][Alt][Enter], wcisnąć Reset dwa razy
Hewlett Packard - [F1], [F2] gdy pojawi się logo HP
IBM - [F1], [Ins], (wcisnąć i przytrzymać obydwa klawisze myszy)
NEC, Packard Bell, Amax, Micron, Aptiva, Sharp - [F1], [F2]
Phoenix BIOS - [F1], [Ctrl][Alt][Ins], [Ctrl][S], 
[Ctrl][Alt][Esc], [Ctrl][Alt][S], [Ctrl][Alt][Enter]
Sony - [F3] potem [F1] lub [F2]
Toshiba - [Esc], [F1]
Zenith - [Ctrl][Alt][Ins]
Dodaj nową wypowiedź
lub Zaloguj się jako użytkownik serwisu Wikidot.com
(nie będzie opublikowany)
- +
O ile nie zaznaczono inaczej, treść tej strony objęta jest licencją Creative Commons Attribution-NonCommercial 3.0 License