Yhden käyttäjän tila

Linux.fista
Versio hetkellä 7. joulukuuta 2009 kello 16.44 – tehnyt LP (keskustelu | muokkaukset) (single + init=/bin/sh)
(ero) ← Vanhempi versio | Nykyinen versio (ero) | Uudempi versio → (ero)
Siirry navigaatioon Siirry hakuun

Yhden käyttäjän tila (single user mode) on ajotaso, joka on tarkoitettu vain järjestelmän ylläpitoon ja korjaukseen. Yhden käyttäjän tilassa ei käynnistetä kirjautumisprosesseja, vaan konsolille käynnistetään yhden käyttäjän istunto pääkäyttäjänä tekstitilassa, mahdollisesti salasanan kysymisen jälkeen. Jakelusta ja asetuksista riippuu miten pitkälle järjestelmä alustetaan.

Yhden käyttäjän tilaan siirrytään antamalla ytimen käynnistysparametrinä sana "single" tai ajotason numero 1 tai, järjestelmän ollessa käynnissä, antamalla pääkäyttäjän oikeuksin initille käsky vaihtaa ajotaso:

# telinit 1

(tai init 1)

Jakelusta ja asetuksista riippuen yhden käyttäjän tilassa alustus saattaa olla pitkälle tekemättä. Esimerkiksi näppäimistökartta ei välttämättä ole suomalainen, juuriosio saattaa olla liitetty kirjoitussuojattuna ja muut osiot liittämättä. Ei hätää: näppäimet saa selville kokeilemalla ja levyt voi liittää käsin, muita toimenpiteitä tarpeen mukaan:

# fsck -A
# mount -o remount,rw /
# mount -a

Koska järjestelmän säädöt ovat tekstitiedostoissa, järjestelmä korjataan editoimalla tekstitiedostoa. emacs ja vim toimivat tekstitilassakin, mutta eivät välttämättä ilman /usr-osiota. Käytössä on luultavasti ainakin ed, usein myös nano tai vastaava tuntemattakin käyttökelpoinen pikkueditori.

Korjaus pelkällä komentotulkilla[muokkaa]

Joissakin jakeluissa järjestelmä alustetaan liki täysin ennen yhden käyttäjän tilaan siirtymistä. Ongelmaksi voi muodostua virhe, joka pysäyttää käynnistyksen ennen komentoriville pääsemistä. Tällöin voi olla pakko käynnistää järjestelmä ilman init-ohjelmaa, jolloin käynnistysparametrinä annetaan ajotason sijaan initille märättävä korvike, tavallisesti komentotulkki, esimerkiksi:

linux root=/dev/sda1 ro init=/bin/sh

Korvaa tarvittaessa "linux" ytimen tiedostonimellä. Käynnistysparametrien antotapa vaihtelee käynnistyslataimesta toiseen, ylläolevan rivin voi antaa LILOlle sellaisenaan, Grubilla valitaan ensin oikea kokoonpano, sitten kernel-rivi ja lopuksi editointi painamalla "e".

/bin/sh on yleensä linkki tavalliseen komentotulkkiin bash, mutta saattaa myös olla toinen tulkki, esimerkiksi dash. Myös bash käyttäytyy hieman eri lailla kutsuttuna nimellä sh.

Jos sivuttaa initin, järjestelmää ei ole alustettu ollenkaan. Levyt saa liitettyä ylläneuvotun mukaisesti, mutta ne pitää muistaa irrottaa ennen kuin poistuu komentotulkista, joko käyttämällä shutdown-komentoa tai käsin:

cd /
umount -ar
cat /proc/mounts
sync
sync
sync
halt -f

Tiedosto /proc/mounts kertoo ytimen tiedot liitetyistä tiedostojärjestelmistä, mikä saattaa erota umountin tiedoista, varsinkin vikatilanteissa. Mahdollisesti jäljellä olevat tiedostojärjestelmät voi irrottaa yksitellen umount-komennolla. Kolme sync-komentoa on perinteinen loitsu, joka antaa aikaa levyille tyhjentää välimuistinsa. Välimuistin pitäisi tyhjentyä pelkällä umount-komennolla.