Jak opravit zaznam v fstabu pro root filesystem

Ve stredu jsem se bavil s Jirkou Eischmannem o projektu Mageia, kdy jsem se priznal, ze stale doma pouzivam Mageia 2 a verzi 3 mam jen v testlabu — na systemu pouzivanym pro overovani spravnosti probehle kompilace balicku, pripadne pro reseni problemu diskutujicich na foru — s tim, ze aktualizovat budu, az si poridim novy SSD disk pro system. Vecer jsem se jeste dival na fotky ze svatby (pripravim galerii behem vikendu 😉 ) a vecer vypnul pocitac. Rano jsem uz nenabootoval. 

Hned ve ctvrtek rano jsem si poridil novy SSD disk a po praci si nainstaloval novou verzi Mageia 3 — 64bit. Instalace probehla hladce a diky zaloham jsem mel zpet i svuj profil a zcela funkcni system behem hodiny a pul od spusteni instalace.

SSD disk pracuje rychle, vse vypada opravdu skvele az na drobnost, ktere se rika ‚trim‘. Nebudu vysvetlovat co to je a proc se to pouziva, verim, ze google zodpovi tem, kteri nevi ci tapou. U Linuxovych systemu se trim zapina pomoci parametru ‚discard‚, ktery se prida do /etc/fstab k oddilum, ktere jsou ulozeny na SSD.

Co se povedlo me, je ze jsem udelal chybu a misto discard napsal discart. Bohuzel, d/t se zatoulalo. Po restartu mi system nebyl s to pripojit systemovy oddil a tedy nenabootoval. V tuto chvili mate k dispozici 2 moznosti:

  1. je spatne /etc/fstab — je mozne opravit rovnou bez liveCD
  2. nebo je poskozeny filesystem — bohuzel je nutne LiveCD

Ja mel nastesti jen spatny /etc/fstab. Otazka tedy znela, kterak opravit tento soubor. Primo v systemd initu, do ktereho spadnete, neni moc nastroju pro praci.

Jak to overit: Proste zkuste pripojit problematicky filesystem do… nekam. U me to bylo:

mount /dev/mapper/vg0-root /tmp

Pokud tento prikaz probehne v poradku a jste s to filesystem prochazet (pomoci cd a ls), pak je chyba v /etc/fstab. Nebyva uplne jednoduche obcas prijit na to, co presne je spatne. Kazdopadne si udelejte zalohu (prikaz cp je taky pritomen), nez budete cokoli menit!

Neni zde zadny vi, jak byste cekali (i ja jej tam hledal). Chybi zde fsck, takze neni mozne pripadne opravit filesystem v pripade jeho poskozeni.

Mame namountovany filesystem (do /tmp) a v /tmp/etc/fstab jsou vadna data. Bohuzel neni mozne soubor jednoduse zmenit (byt ve vi…). Pokud se pokusite spustit vi pomoci plne cesty /tmp/usr/bin/vi, tak dostanete chybu — nejsou nalezeny knihovny. Pokud nechcete jeste opravovat promenou LIBDIR, je vas kamarad sed.

sed -i.back s/CO/CIM/g KDE
sed -i.back s/discart/discard/g /tmp/etc/fstab

Neboli:

  • CO = co ma byt nahrazeno
  • CIM = cim to ma byt nahrazeno
  • KDE = jmeno souboru, ktery ma byt nahrazen

Pomoci cat vse prekontrolujte a restartujte. Hotovo. Pokud jste opravili to, co bylo spatne, mate vyhrano.

Jde to jeste jednodusseji

Jak? Jednoduse. Mate namountovan filesystem do /tmp? OK. Nyni jen spustte:

chroot /tmp

A mate pristup k vasemu oblibenemu mceditu, vi, emacsu,… jakemukoli TUI editoru, ktery mate. To je vse, opraveni fstabu (nyni jiz v /etc/fstab) je opet otazka chvilky. Neulehci vam to hledani chybneho parametru, ale dostanete se k (napriklad) manualovym strankam prikazu mount (mount.ext4) a mnohym dalsim nastrojum, ktere mate k dispozici.

Doufam, ze tento navod nebudete potrebovat. Ale pokud ano, tak ze po precteni ted neco v pameti zustane a vy, az to budete potrebovat, vzpomenete, ze existuje chroot a mcedit a jednoduse a v klidu vse opravite.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *