A „grub” rendszer betölt˝o újratelepítése
A „grub” rendszer betölto˝ újratelepítése
i
A „grub” rendszer betölt˝o újratelepítése
ii
COLLABORATORS TITLE : A „grub” rendszer betölto˝ újratelepítése ACTION
NAME
DATE
WRITTEN BY
Hazai, Géza J.
2013. július 8.
SIGNATURE
REVISION HISTORY NUMBER
DATE
DESCRIPTION
NAME
A „grub” rendszer betölt˝o újratelepítése
iii
Tartalomjegyzék 1. Bevezetés
1
2. Rendszer betölt˝ok
1
2.1. Amikor még minden a DOS-ból indult: LoadLin . . . . . . . . . . . . . . . . . . . . . .
2
2.2. A Linux betölt˝o: LILO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
2.3. GRUB – könnyed betölt˝o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
3. Amikor a GRUB-ot javítani kell
4
4. Térjünk a lényegre: hogyan kell csinálni?
7
4.1. A kezelend˝o rendszer felépítése . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
4.2. A Windows ™ feltelepítése után . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
4.2.1. Ha a chroot üzen... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
4.2.2. stage1 read not correctly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
A „grub” rendszer betölt˝o újratelepítése
iv
Ábrák jegyzéke 1.
64 bites PCLinuxOS induló képerny˝o . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
2.
LILO menü . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
3.
Betölt˝o-javító lemez indító képerny˝o . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
4.
RescaTux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
Kivonat
Rendszeresen visszatér˝o probléma az, hogy a Linuxot egyszer csak nem lehet betölteni. Leggyakoribb ok a gépre kés˝obb telepített (újratelepített) Windows, ami a rendszer betölt˝ot felülírja. Ahogy a modernebb változatok megjelennek, egyre bonyolultabbá válik a betölt˝o helyreállítása. Ez a leírás segítséget kíván nyújtani az említett helyzetek megoldásához.
A „grub” rendszer betölt˝o újratelepítése
1 / 12
1. Bevezetés A Linux örvendetes elterjedése új helyzet elé állította az ezzel foglalkozó szakembereket. Az eredeti célkit˝uzésnek1 megfelel˝oen egyre-másra szembesültek a felhasználók a rendszertechnikai kérdésekkel. Ezek egyik lényeges eleme lett a rendszer betölt˝o beállítása, szükség szerinti módosítása. A téma akkor vált „népszer˝uvé”, amikor a Windows™ újratelepítése vált szükségessé. Sokan ugyanis nem tudtak még teljesen elszakadni régi megoldásaiktól, így számítógépükön 2 operációs rendszer is elérhet˝o, betölthet˝o volt. A Windows™ viszont nem kímélte a betölt˝ot és irgalmatlanul felülírta, aminek következtében a gondosan feltelepített és beállított Linux elérhetetlenné vált. Kísérletez˝o kedv˝u felhasználókkal az is el˝ofordult, hogy különböz˝o kísérletezések következtében rendszere nem volt indítható, egy-egy sikertelen kernel fordítást követ˝oen megjelent a nem kívánt üzenet: kernel panic... Edz persze nem olyan nagy baj, könnyen orvosolható, ha... kell˝oen el˝orelátó volt a szenved˝o fél, de néha még ez sem segített. Az igény megvolt a rendszer elérésére, csak éppen a tudás, a tapasztalat hiányzott. Ha nem volt a közelben egy hozzáért˝o szakember (vagy csak egyszer˝uen ilyen problémát tapasztalt és megoldott felhasználó), könnyen kedvét veszthette a merész alkalmazó. Egy szó, mint száz: nem árt néha olyan dolgokat is megismerni, ami nem csak a gép egyszer˝u használatának a része, hanem a használatba vétel szükséges eleme lehet. Ebben a kis írásban azoknak szeretnék segítséget nyújtani, akik a számítógépet (PC-t, laptopot) intelligens írógépnél többre tartják és használják.
˝ 2. Rendszer betöltok Ma már mindennapos dolog, hogy a számítógép bekapcsolása után valamilyen rendszerbetölt˝o egy menüt jelenít meg, amelyben a betölthet˝o rendszerek közül lehet választani. Ilyen indító menü akkor is jelen van, ha csak egy rendszer van a gépen, mert egy olyan menüpont is szerepel(het), ami „vészhelyzet” esetére biztosít betöltési lehet˝oséget. A PCLinuxOS induló képerny˝ojén ( 1. ábra) ez látható. 1 Minden
háztartásban legyen számítógép és rajta olyan programok, amik könnyen kezelhet˝oek, internetezésre, levelezésre, egyszer˝ubb dokumentumok megírására legyen alkalmas.
A „grub” rendszer betölt˝o újratelepítése
2 / 12
1. ábra. 64 bites PCLinuxOS induló képerny˝o Egy nagyon rövid ismertet˝o (történeti áttekintés) olvasható a következ˝o pontokban a betölt˝okr˝ol. Akit ez nem érdekel, nyugodtan lépjen a ... pontra.
2.1. Amikor még minden a DOS-ból indult: LoadLin Amint a neve is mutatja, ez egy Linux betölt˝o. Annak idején ez egy olyan lehet˝oség volt, hogy a futó DOSrendszerb˝ol (kés˝obb Windows’95, Windows’98, legvégül Windows ME) a ‘loadlin´ parancs kiadásával át lehetett térni Linuxra. Ez a MBR-t nem módosította. Mint minden emuláció, a sebessége nem érte el az alaprendszer mutatóit, viszont a fájlrendszerét az alaprendszerb˝ol is meg lehetett tekinteni2 .
˝ LILO 2.2. A Linux betölto: A LILO (LInux LOader) sokáig volt szinte minden disztribúció alapértelmezett betölt˝oje. Ez már módosíthatta a MBR-t, ugyanakkor a rendszer akár floppy-ról is betölthet˝o volt. A képerny˝on egy menü jelent meg (2. ábra), amib˝ol kiválasztható volt, hogy melyik rendszert szeretnénk indítani. Legfeljebb 16 menüpont lehetett. Ezek közül az egyik beállítható volt alapértelmezettnek, így egy bizonyos id˝o eltelte után (ami szintén állítható volt) automatikusan elindult. 2 ami
kényelmes volt ugyan, de hozzáértés hiányában könnyen megrogyasztható volt a vendég rendszer.
A „grub” rendszer betölt˝o újratelepítése
3 / 12
2. ábra. LILO menü Az egyes menüpontokat meg kellett határozni. Lényeges elem volt, hogy bármilyen módosítást hajtottak végre a /etc/lilo.conf fájlon, ezt követ˝oen mindig futtatni kellett a ‘lilo´ parancsot (ennek elmaradása jó esetben csak az el˝oz˝o állapot szerinti betölt˝ot jelenítette meg). A betöltés során a LILO bet˝uk jelentek meg, ahol minden egyes bet˝u a betöltés fázisát jelölte. Ma már csak alternatívaként jelenik meg néhány disztribúcióban, használata gyakorlatilag megsz˝unt,
2.3. GRUB – könnyed betölto˝ A GRUB a GNU GRand Unified Bootloader (GNU nagyszer˝u egységes betölt˝o) rövidítése. 1995-ben a FSF (Free Software Foundation – Szabad Szoftver Alapítvány) által kialakított „Multiboot Specification” alapján készült. Ennek lényege az, hogy különböz˝o (többféle) kernelt lehet betölteni egy megfelel˝o szoftverrel. A GRUB-ot 1999-ben fejlesztették ki azzal a céllal, hogy minél egyszer˝ubben, átláthatóbban lehessen konfigurálni. A betöltési folyamat során, majd a U*X rendszerek futásakor egy egyszer˝u, bash-hoz hasonló parancssoros felület áll rendelkezésre. A beállításokat a betöltés során olvassa be, ami azzal az el˝onnyel is jár, hogy a felhasználó az egyes módosítások után egy „egyszer˝u” újratöltéssel ellen˝orizheti, milyen módon lépett életbe a változtatás (vagyis nem kell külön életbe léptetni, mint a LILO esetén a ‘lilo´ paranccsal). Azzal együtt, hogy a GRUB fejlesztése intenzíven folyik, megjelent a 2. verzió, ami elvében is különbözik az e. verziótól, a disztribúciók többsége az eredeti, egyszer˝u változatot ajánlja fel telepítésre.
A „grub” rendszer betölt˝o újratelepítése
4 / 12
A GRUB2-vel szembeni ellenérzések ˝ Bár a fejlodés szükségszeru˝ velejárója volt a fejlettebb változat megjelenése, mégis sokan idegen˝ kednek a használatától. Ennek számos oka lehet, de elsosorban az a tapasztalat lehet a háttérben, hogy megjelenése utáni korai szakaszban a hozzá kialakított automatikus rendszer pásztázó nem ˝ minden esetben ismerte fel a többi meglévo˝ operációs rendszert (foleg a Windows-t) multiboot környezetben. A másik probléma az, hogy a megfelelo˝ javítások életbe léptetése érdekében külön parancsot kell kiadni, nem elég az újdonság átvezetése.
Ennek az anyagnak nem célja a GRUB részletes bemutatása, err˝ol számos cikk található az interneten.
3. Amikor a GRUB-ot javítani kell Azzal együtt, hogy a Linux egyik bájos tulajdonsága a stabilitása, számos olyan esetr˝ol tudunk, amikor ez csorbát szenved. Számos esetet lehetne felsorolni, amikor a rendszer betöltése hiúsul meg, erre azonban nem vállalkozhatok, mivel jó pár felhasználói hibából ered, és elég nehéz lenne rendszerbe foglalni ezeket – ahány (kísérletez˝o) felhasználó, annyi esemény... Van azonban egy olyan eset, ami elég rendszeresen fordul el˝o: a Windows újratelepítéséb˝ol adódóan (vagy a Windows kés˝obb történ˝o telepítése miatt) a Linux elérhetetlenné válik. Nem kívánok a részletekbe belemenni (nem is szakterületem), elég annyi, hogy a Windows az MBR-t teljes egészében kisajátítja. Ebb˝ol persze további problémák is felmerülnek, amir˝ol a kés˝obbiekben szót ejtek. Másik eset az, amikor „valami megváltozik”. Ez általában a kísérletez˝o kedv˝u felhasználók rettegett helyzete, ugyanis korábbi egy partíció kettéosztása, vagy éppen két partíció összeolvasztása okozhat olyan helyzetet, amikor bels˝o azonosítók változnak meg, és a GRUB egy-egy menüeleme már nem azt találja a megjelölt tárolórészen, ami a betöltéshez kell. Ilyenkor jelenik meg a kernel panic felirat, amivel nem lehet megbarátkozni – és néha gyakorlott felhasználó is tehetetlennek érzi magát. Több éves tapasztalatom alapján mondhatom, hogy sokszor érdemes egy kis ideig nem foglalkozni a dologgal (néhány percig, esetleg óráig), lenyugodni, mert a kapkodás csak további problémákat szül. Az utóbbi id˝oben szerencsére számos olyan alkalmazás jelent meg, ami „segít a bajba jutottakon”. Ilyen például: Boot-Repair-Disk, the ’must-have’ rescue CD ! 3 . Letöltés és CD-re kiírás után egy sok lehet˝oséget felkínáló betölt˝o javító „live” rendszert kapunk. Az indítóképerny˝o elég beszédes (3. ábra): 3 Betölt˝ o-javító
lemez, a „lennie kell” biztonsági-lemez!
A „grub” rendszer betölt˝o újratelepítése
5 / 12
3. ábra. Betölt˝o-javító lemez indító képerny˝o Ez azért is érdekes, mert egy javításra is teljességgel alkalmas, valóban „rescue” CD-r˝ol van szó. ˝ néhány szó A Boot-Repair lemezrol Csak egy 64 bites PCLinuxOS-en próbáltam ki. Viszonylag sokat futott, de megoldotta a problémát ˝ (ami amúgy nem is volt, de ez mellékes). Egy Debian alapú, LXDE-s felületu˝ rendszer, ebbol gondolom, hogy a GRUB2-vel is elbánik. Valószínuleg ˝ az olyan túlbonyolított rendszert is jól kezeli, mint az én munkaállomásom, de nem kísérleteztem vele. Jól példázza a gondos munkát, hogy mind ˝ töltöd be, figyelmeztet. Nem tudom, 32 bites, mind 64 bites kernele is van, ha nem a megfelelot hogy mennyire széles a fájlrendszer választéka, de minden jel szerint ext3 és ext4 felépítést ismer. Külön érdekesség, hogy azt is érzékelte, hogy a teszt rendszeremen a boot mappa külön partíción van! Egy apró kellemetlenséget érzékeltem: csak angol (amerikai) billentyuzetet ˝ ismer. Aki dolgozott ˝ ilyennel, nyilván nem lepodik meg, aki viszont nem, annak némi nehézséget okozhat. Nekik szánom kis támaszul, hogy a <0> (nulla) az <Ö>, a <-> az <Ü>, a > pedig a <-> helyén van.
Napjainkban meglehet˝osen sajátos „termék” jelent meg: az UEFI. Úgy t˝unik, hogy a kezelése ugyanúgy meg fog oldódni, mint annak idején az ún. soft-modem megoldása4 . A Home Linux Secure Remix honlapon megjelent lehet˝oség állítólag orvosolja ezt a kellemetlenséget5 . 4A
Linux térhódításának kezdetén még a „betárcsázós” internet kapcsolat volt a mérvadó. A nagy gyártók által forgalomba hozott modem kártyákon egy id˝o után nem volt szoftver, hanem a Windows szolgáltatott a rendszeren belülr˝ol a kapcsoláshoz szükséges programot. A Linuxos világgal azonban nem lehet kiba...brálni! Rövidesen megjelent a megoldás, majd az akkori kernel fejleszt˝oi fába is beépítették a kódot. A dolognak egy kétségtelen el˝onye lett: ezek a soft-modem-ek lényegesen olcsóbbak voltak, így rendszeres cseréjük (az elérhet˝o maximális vonali sebesség szinte naponta változott) nem okozott irreálisan nagy anyagi megterhelést. 5 Nincs a birtokomban ilyen gép, így kipróbálni nem tudtam.
A „grub” rendszer betölt˝o újratelepítése
6 / 12
Nem csak állítólag ˝ A dokumentum ennek a részének leírását követoen kedves barátom, akinek pont UEFI gondja volt, az említett link alapján sikerült a problémát megoldania.
Még egy érdekes projektre szeretném a figyelmet felhívni: Rescatux & SG2D (4. ábra).
4. ábra. RescaTux Ez több, mint egy egyszer˝u GRUB javító, ahogy a beharangozója is említi: • kiigazítja a GRUB/GRUB2-t, • ellen˝orzi és javítja a fájlrendszert, • kikapcsolja a Windows jelszót, • megváltoztathatja a GNU/Linux jelszót, • újraépíti a sudoers fájlt, • és még sok minden lehet˝oség... • kb. 367 Mb méret˝u Minden valószín˝uség szerint a két projektnek köze van egymáshoz, mert számos megoldás ugyanolyan (pl. a menü szerkezete). Ennek további el˝onye, hogy USB kulcsra is kiírható.
A „grub” rendszer betölt˝o újratelepítése
7 / 12
Mi szükség van erre a leírásra? Ha ilyen felkészült különféle alkalmazások vannak, miért szükséges egy ilyen leírás? – merül fel jogosan a kérdés. A válasz nem nehéz: Amikor minden rendben van, látszólag felesleges az egyes folyamatok hátterét tudni. A baj akkor ˝ ˝ az események kezdodik, amikor valami elégtelenség lép fel. Ha ilyenkor valamilyen szinten ismeros belso˝ sorrendje, a feltételek, nagyobb a valószínusége, ˝ hogy a kérdésre a választ könnyebben ˝ megtalálható – avagy „szakszerubben” ˝ lehet kérdéseket feltenni a hozzáérto(bb)nek. ˝ Anélkül, hogy mások szakmai felkészültségét minosíteném, megemlítem, hogy az egyik szoftverforgalmazó cég mérnöke képtelen volt egy viszonylag könnyu˝ problémát megoldani. Amikor szoftveres munkatársaimmal együtt végül sikerült a megoldást megtalálni, kiderült, hogy a hibajavításra mindenféle módszert tanítottak meg nekik, de ténylegesen csak „alkatrész-cserére” képesek. Beismerte, hogy ha az elméleti alapokat jobban ismerte volna, könnyebben megtalálta volna hibát és annak javítási módszerét. ˝ Nem állítom, hogy az ilyen manuális megoldások az „üdvözítok”. Az biztos, hogy a rendszer mélyebb megismerésében segít...
4. Térjünk a lényegre: hogyan kell csinálni? Aki egyenesen ide navigált az olvasásban, tulajdonképpen nem sokat vesztett. A lényeget itt írom le. Azért mégis azt javaslom, hogy ez el˝oz˝o fejezeteket is alkalomadtán nézzék át – hátha találnak benne hasznos információt. Az egész folyamat nem túl komplikált. Azért is érdemes egy kicsit foglalkozni vele, mert nem csak a GRUB javítására, hanem más rendszertechnikai tevékenységre is alkalmas. A lényege az, hogy felépítjük a rendszerünket, majd az így kialakított rendszerben a megfelel˝o feladatokat elvégezzük.
4.1. A kezelendo˝ rendszer felépítése Az legfontosabb: tisztában kell lennünk a kezelend˝o rendszer kialakításával. Mit is jelent ez? Mi hová van becsatolva? Nagyon lényeges kérdés! Abból kell kiindulni, hogy nem minden Linux rendszer egyszer˝u munkaállomás, ahol legfeljebb a /home van külön partíción, hanem egyéb szempontok alapján eléggé tagolt a rendszer. Ennek feltérképezésében sokat segít a /etc/fstab vizsgálata. Én egy jó bonyolult rendszert alakítottam ki. Ennek els˝orend˝u oka az volt, hogy a laptopomon egy szerver kialakítást modelleztem – amúgy meg nem zavar. A Linux egyik nagyszer˝usége, hogy mindent „fájlként” kezel, így egy külön partíción lév˝o rendszer részt a felcsatolások után már egyben lát. A továbbiakban a jelenleg használt rendszeremet veszem alapul. El˝oször nézzük meg a /etc/fstab fájl tartalmát. # Entry for /dev/sda5 : UUID=86b0eaf9-435a-4a99-acef-22a02d2e6371 / ext4 defaults 1 1 # Entry for /dev/sda1 : UUID=188b6cd2-e55a-4648-9cfc-f4a7bf986dc7 /boot ext4 defaults 1 2 # Entry for /dev/sda9 : UUID=8d5ee4d1-174f-4e32-93e6-b7571c094bca /home ext4 defaults 1 2
A „grub” rendszer betölt˝o újratelepítése
# Entry for /dev/sda10 : UUID=a8bde949-c5f0-48b2-83e5-6eb0eae155e2 none /proc proc defaults 0 0 # Entry for /dev/sda6 : UUID=970b2f73-c2fc-424f-843c-affd98a1f6df # Entry for /dev/sda7 : UUID=ff395d74-0fee-4616-9d4f-c3476f9ce00e # Entry for /dev/sda8 : UUID=5e588ec4-d021-4f3b-912e-9c02eb007b62 # Entry for /dev/sda2 : UUID=c4107dde-3cde-4834-b9c7-d092e6f63785 none /dev/pts devpts defaults 0 0
8 / 12
/home2 ext4 defaults 1 2
/tmp ext4 defaults 1 2 /usr ext4 defaults 1 2 /var ext4 defaults 1 2 swap swap defaults 0 0
Ez a sor (és mindegyik, amelyik „#” jellel kezd˝odik) megjegyzés. A következ˝o sorban megadott eszköz fizikai neve. Az eszköz azonosítója és további adatok: • csatolási pont, • fájlrendszer típusa, • csatolási opciók; arra kell ügyelni, hogy az adott fájlrendszerre érvényes opciók szerepeljenek, • a dump számára információ: szükséges-e a fájlrendszert „ömleszteni” (archiválásban való részt vétel), • a fsck számára információ: a rendszer indításakor az adott fájlrendszert kell-e ellen˝orizni. Általános gyakorlat, hogy a „/” kötelez˝oen ellen˝orzend˝o, e többi nem. A /etc/fstab elég szemléletesen leírja a rendszer struktúráját. Bár az egyes partíciók nem az eszközök fizikai nevének sorrendjében szerepelnek, azért mégis kideríthet˝o, hogyan néz ki a felépítés: / |-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|--
--> /dev/sda5 bin boot --> /dev/sda1 dev etc home --> /dev/sda9 home2 --> /dev/sda10 initrd lib lost+found !!! media mnt opt proc root sbin srv swap sys
A „grub” rendszer betölt˝o újratelepítése
|-- tmp |-- usr ‘-- var
9 / 12
--> /dev/sda6 --> /dev/sda7 --> /dev/sda8
Ebben a „fában” nem látható a (nem túl szerencsés magyar szóval) cserehely, eredeti nevén swap 6 . Ez ugyanis nincs a rendszerbe felcsatolva (nem is kell, s˝ot nem szabad). De ugyanígy nem találunk /dev/ sda3-at sem. Ez egy létez˝o partíció, mint ahogy az fdisk kimenete is mutatja: /dev/sda lemez: 320.1 GB, 320072933376 bájt 90 fej, 63 szektor, 110254 cilinder, összesen 625142448 szektor Egység: szektorok 1 * 512 = 512 bájt Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Lemezazonosító: 0x000f2c05 Eszköz Indítás Eleje /dev/sda1 63 * /dev/sda2 306180 Solaris /dev/sda3 8692110 /dev/sda4 92574090 /dev/sda5 92574153 /dev/sda6 124025643 /dev/sda7 130313673 /dev/sda8 172254663 /dev/sda9 189026523 /dev/sda10 398737143
Vége 306179 8692109
Blokkok 153058+ 4192965
Az 83 82
Rendszer Linux Linux lapozó /
92574089 566506709 124025579 130313609 172254599 189026459 398737079 566506709
41940990 236966310 15725713+ 3143983+ 20970463+ 8385898+ 104855278+ 83884783+
7 5 83 83 83 83 83 83
HPFS/NTFS Kiterjesztett Linux Linux Linux Linux Linux Linux
-
Íme... Ide (erre a winchester-re) kerül majd fel a Windows™. Nem örömömben, hanem egy alkalmazás, amire elkerülhetetlenül szükségem van, csak „valódi” W$ alatt m˝uködik (vagyis a VirtualBox sem megoldás). Eddig nem volt szó az els˝odleges és logikai partíciókról. Azért van szükség ennek tisztázására, mert els˝odleges partíció alapértelmezésben összesen 4 lehet (függetlenül a winchester típusától), de ha mind a 4-et felhasználtuk, akkor már logikai partíciót nem áll módunkban létrehozni. Ez alapján természetes, hogy a
d<x> tárolón értéke 1 – 4 közé esik7 . A 4 feletti érték már logikai partíció. Azt kell err˝ol tudni, hogy ténylegesen egy kiterjesztett partíció van, amin belül vannak részekre tagolva a logikai partíciók. Ezt látni is lehet, mert a /dev/sda4 kezd˝o címe egybe esik a /dev/sda5 kezd˝o címével, míg a záró címe a /dev/sda10 záró címével! A partíciók kiosztása már a telepítésnél eld˝ol, így ennek utólagos változtatása csak igen körültekint˝oen történhet. Ahogy szokás mondani:
FIGYELEM! Csak akkor fogj bele, ha tudod, mit csinálsz! 6 Az
ugyanilyen nev˝u könyvtár nem a cserehely! a „bonyolult” kifejezésben „t” ’h’ (IDE) vagy ’s’ (SCSI, SATA) lehet; ’x’ pedig a tároló sorrendjére utaló bet˝u (’a’: els˝o, ’b’: második stb.) 7 Ebben
A „grub” rendszer betölt˝o újratelepítése
10 / 12
Még annyit, hogy els˝odleges partíciónak azokat a területeket szoktam megjelölni, amelyek sérülése esetén a rendszer egyes esetekben még megmenthet˝o, vagy valami más komoly okom van rá. Jelen esetben a /boot az egyik ilyen, mivel az itt történ˝o nem kívánt változások még a rendszer integritását nem, vagy csak csekély mértékben érintik. A swap (cserehely) meg azért els˝odleges partíción van, mert abban a kellemetlen esetben, amikor a rendszer megoldhatatlanul omlik össze, általában a memória tartalmát ide üríti. Ennek elemzése segíthet a hiba feltárásában. A fenntartott /dev/sda3 meg majd a W$ helye, és még az is megoldható, hogy a Windows lapozó helye és a Linux cserehelye ugyanaz az eszköz legyen. Ha nem használjuk ki az összes els˝odleges partíció lehet˝oségét, a kiterjesztett partíció a soron következ˝o lesz, csak a befoglalt logikai partíciók számozása kezd˝odik 5-t˝ol. Ezeknek az ismereteknek a birtokában most már feltelepíthetjük a Windows-t. El˝otte azonban jól jegyezzük meg a rendszer felépítését, s˝ot nem t˝unik pazarlásnak, ha a biztonság kedvéért a /etc/fstab fájlt kinyomtatjuk.
4.2. A Windows ™ feltelepítése után E dokumentáció kereteit túllépi a telepítés ismertetése. Elegend˝o annyit tudni, hogy a /dev/sda3-ra került – és elt˝unt a GRUB menü! Mit lehet tenni? Miel˝ott bármihez kapkodnánk, építsük fel rendszerünket az ismert információk alapján. Ehhez szükségünk van egy „Live” CD/DVD-re. Ma már minden valamire való disztribúció telepít˝oje ezt a technikát alkalmazza. Jó megoldás, hiszen a Linuxra vágyó felhasználó biztonságosan kipróbálhatja, mit is tud az adott összeállítás. De más célra is használhatjuk, így az elt˝unt betölt˝onk visszaszerzésére is. Mindössze azt kell elérnünk, hogy a számítógép ne a merevlemezr˝ol, hanem a CD meghajtóról induljon. Ennek elérése gépenként eltér˝o lehet, de általában a BIOS bejelentkezésekor a F12 lenyomására megjelenik a boot menü, amiben kiválasztható a betölt˝o eszköz. Miután sikerült a „Live” rendszer betöltése, nyissunk egy konzolt (például KDE desktop-on a konsole), majd lépjünk rendszergazdai üzemmódba – ha már nem abban vagyunk. Fel kell építeni a rendszerünket8 . Legel˝oször is választanunk kell egy olyan könyvtárat, amelyre majd felcsatoljuk a megfelel˝o partíciót – az én esetemben a /dev/sda5-t. Számos lehet˝oség van, én általában a /media-t használom, mert a PCLinuxOS CD-n a /mnt mappában van valami fájl (vagy almappa?), ami nem tudom, milyen célt szolgál – jobb a békesség :-). Az is jó megoldás, ha készítünk egy mappát, és arra dolgozunk. Ne felejtsük el, hogy „Live” CD-r˝ol indultunk, így ez a könyvtár csak a memóriában fog létezni, egy újratöltésnél (vagy a gép kikapcsolásánál) megsemmisül. De nincs is rá szükségünk, csak most: mkdir /lemez
A továbbiak talán nem igényelnek magyarázatot: mount mount mount mount mount
/dev/sda5 /dev/sda1 /dev/sda6 /dev/sda7 /dev/sda8
/lemez /lemez/boot /lemez/tmp /lemez/usr /lemez/var
Ez persze nem kevés (úgy értem: begépelni), és sajnos még nem vagyunk a végén. Még két felcsatolási parancsot ki kell adni, de ismertetése el˝ott szükséges hozzá egy kis magyarázat: 8A
példában az ismertetett rendszer partíció kiosztását követem.
A „grub” rendszer betölt˝o újratelepítése
11 / 12
Más dokumentációban már szó volt arról, hogy a /proc fájlrendszer a betöltés során épül fel, lényegében a memória egyfajta „tükre” lesz a tartalma. Annak érdekében, hogy a kialakított rendszeren dolgozni tudjunk, a betöltött rendszer (ami a „Live”, vagyis nem a tárolón található rendszer!) /proc „mappáját” hozzá kell csatolni a kialakítandó rendszerhez úgy, hogy közben a memóriában lév˝o rendszer is használni tudja. Ugyanez vonatkozik a /dev mappára is. Éppen ezért a mount parancs bind kapcsolóját fogjuk használni. A leírás szerint: Lehet˝oség van egy mappa felcsatolására más helyre úgy, hogy közben az eredeti hely is használható marad. Így a fájlt (fájlrendszert) egyszerre két helyr˝ol is el lehet érni. mount --bind /proc /lemez/proc mount --bind /dev /lemez/dev
Írjunk inkább szkriptet? Nem rossz ötlet. Ha magát a rendszer gyökerét már felcsatoltuk, csak el kell indítani a szkriptet, máris minden a rendelkezésünkre áll. Azért kell így tennünk, mert a Live CD-re nem tudunk írni – vagyis csak a lemezen létrehozott szkript futtatására van mód. Vagyis:
# # # #
mkdir /lemez mount /dev/sda5 /lemez cd /meze/root ./mount_partitions
˝ Ezt a szkriptet csak egyszer kell megírni. Igaz, amikor átstruktúrálod a rendszert (ez meg elofordulhat), át kell írni, de megéri a fáradságot! A mount_partitions tartalma:
#! /bin/bash mount /dev/sda5 mount /dev/sda1 mount /dev/sda6 mount /dev/sda7 mount /dev/sda8
/lemez /lemez/boot /lemez/tmp /lemez/usr /lemez/var
mount --bind /proc /lemez/proc mount --bind /dev /lemez/dev Ez azért nem egy nagy mutatvány, mégis mennyit segít! Például nem gépeled el a parancso(ka)t...
Most már minden a rendelkezésünkre áll ahhoz, hogy az így elkészített rendszerbe belépjünk. Erre való a chroot parancs. chroot: parancs vagy interaktív shell futtatása speciális gyökérmappában. Miel˝ott azonban belemerülnénk az új rendszerbe, érdemes megjegyeznünk, hogy nincs még swap terület bekapcsolva. Valószín˝uleg nem lesz rá szükség, de mibe kerül bekapcsolni? Utána már ki lehet adni a grub helyreállító parancsát: # chroot /lemez chroot-olt rendszer# swapon /dev/sda2 chroot-olt rendszer# grub-install --root-directory=/lemez ’(hd0)’
A „grub” rendszer betölt˝o újratelepítése
12 / 12
Ha minden rendben, a grub ilyen értelm˝u üzenetet küld... Na, de ha nem? A chroot-ból +D lenyomásával lehet kilépni. 4.2.1. Ha a chroot üzen...
Régebben találkoztam egy olyan karbantartó lemezzel, amelyen a zsh volt az alapértelmezett shell. Meglepetésemre a chroot igen csúnya üzeneteket küldött. Igaza volt, mert a szintaktikailag is korrekt parancs: # chroot /lemez /bin/bash
Így már problémamentesen tudtam használni (bash minden Linuxban van). 4.2.2. stage1 read not correctly
Ezzel a hibával a napokban találkoztam el˝oször. A dolog meglehet˝osen z˝urzavaros volt, ugyanis Linux nem volt elérhet˝o, a Windows viszont nem ismerte fel a WiFi kártyát. Sebaj, grub helyreállítás... lett volna, de ezt a hibaüzenetet kaptam: /lemez/boot/grub/stage1 read not correctly
és természetesen semmi nem m˝uködött. A megoldás: • mindent ugyanúgy végig kell csinálni, mint eddig, egészen a swapon paranccsal bezárólag, • Meg kell hívni a grub-ot: # grub Probing devices to guess BIOS drives. This may take a long time.
Egy darabig dolgozik, majd grub> promptot ad, • Meg kell határozni a gyökér partíciót, majd a setup parancsot futtatni: grub> root (hd,0,4) grub> setup (hd0)
A második parancs után kiír néhány dolgot, de végül helyreállítja az összes szükséges adatot, betölt˝ot. Amikor a grub> prompt isméte megjelenik a quit paranccsal kell kilépni! Természetesen más hiba esetek is el˝ofordulhatnak. Ha valaki találkozik itt nem leírt problémával, jelezze nekem.