Home könyvtár Linuxon

Érdemes külön partícióra, vagy lemezre tenni a /home könyvtárat? Ezt a kérdést sokan tették már fel maguknak. Amit leírok, az a saját vélemény és gyakorlatilag egy középhaladónak felesleges is elolvasnia: ő már tudja, mi a jó neki. A linuxos kezdőknek szól ez a kis írás, akik még bizonytalanok, és elgondolkodtak a témán. Itt sincs jó megoldás, ami mindenkinek jó, ahogy azt már a Linux alatt megszoktuk, saját döntést kell hozni.
A discordos ismerősök sejtik a gondolatsor okát: disztribúció váltás után nem csatolódott fel automatikusan a /home és akkor indult el a rendszer, amikor kivette a fstab-ból ezt a sort. Bosszantó.

Mi is az a /home könyvtár Linux alatt?

Nagyon leegyszerűsítve ide rakja a Linux a felhasználók saját könyvtárait: a /home/laci az a laci felhasználó saját könyvtára, azaz ott lesz minden, ami az övé. A beállítófájlok, ami a sajátja, az ő környezetét szabályozza és azok a főbb könyvtárak, amikben a különféle doksikat tartja: Dokumentumok, Zenék. Letöltések stb.

A saját könyvtáradra hivatkozhatsz a $HOME változóval, és a lerövidítheted az elérési utat a ~ jellel is. A /home/laci/akármi az lehet ~/akármi is.

Miért tanácsolják sokan, hogy a /home kerüljön egy külön partícióra?

A legtöbben azért mert, ha a rendszered összeomlik, kicseréled, újratelepítesz, vagy másik Linux disztribúciót teszel fel, akkor csak azt a /home könyvtárat adod meg az új telepítésnek (felcsatolásra, nem formázásra!!!) és megmaradnak a beállításai, doksijaid stb. Szuper! Csak itt is más az elv és más a valóság.

Boncolgassuk a fenti elvet, kijelentést.

Megmaradnak a beállítások a programoknál? Igen egy csomónál valóban megmarad. De van egy csomó aminél nem. Van olyan program, ami az újra telepítés után nem tudja a régi beállításokat használni. Nemrég telepítettem újra gépemet, és azzal szembesültem, hogy bár lementettem a spacefm beállító fájlokat, az egész könyvtárat, de a saját commandjaimat nem ismerte fel, és nem használta őket. Kellemetlen.

A konfigurációs fájlok sem egységes helyen vannak. Igen, sajnos ez elég nagy hibája a Linux disztribúcióknak. A disztribútor áthelyezi a beállítófájlokat és már nem is lesz jó a régi home könyvtárban lévő, mert nem ott van, ahol a program keresi. Az Arch és a Debian alapú disztribúciók majdnem biztos, hogy lesz ilyen probléma, az egyik a home/laci/.ezazrc a másik a home/laci/.config/azaprogram/.ezazrc, a harmadik home/laci/.config/.ezazrcútvonalon tarthatja a. ezazrc fájlt. Mindegyik jó, csak éppen nem fogja megtalálni a programod a beállító fájlt.
Ez a probléma nem jelentkezik értelemszerűen, ha felraksz egy adott Linux disztribúciót, majd pontosan azt újratelepíted. Ilyen esetben mindent megtalál, legalábbis azoknál nem lesz problémád, amiknél a program használni tudja a régi beállításokat.

Ebből vonjuk le a következtetést: egy aktív disztrohoppernek nem érdemes arra számítani, hogy egy megtartott home könyvtár nagy segítség lesz.

Megadod telepítéskor és felcsatolja a régi home könyvtárat

Már itt is lehetnek gondok. Akkor tudja felcsatolni, ha lesz rá jogod. Azaz jogosult vagy abba a könyvtárba belépni és azt használni. Itt előfordulhatnak jogosultsági problémák, hiszen az új rendszernél nem feltétlen lesz – az előbbi példa szerint – a laci felhasználónak (aki én vagyok) a /home/lacika (aki szintén én vagyok, csak a régi telepítésen) joga a könyvtárba belépni. Ilyenkor elindul a rendszer, be akarsz lépni a laci felhasználóként, de a home könyvtárba nincs laci mappa, ahol a konfigurációmat keresi. Szuper…

Ok, elvileg kerülhető ez, ha mindenkor laci felhasználóként adom meg a felhasználói nevemet, de akkor sem biztos. Így lehetnek problémák. Bár nem gyakran, és a megoldás is egyszerű ilyenkor: adsz magadnak jogot a régi home könyvtárra és máris nem lesz gond. Kezdő – bár tudja ezt – de jellemzően kétségbe esik, hogy jajj, valami nem stimmel, nem tud belépni, és most mi lesz… Nem fog eszébe jutni, hogy belép root-ként és rendbe hozza a dolgokat.
Plusz ahogy olvasgattam a témában az ilyen problémát eltérően kezelheti más-más Linux disztribúció.

A harmadik problémám a külön partícióra rakott home mappával, hogy van esélyed a telepítéskor nem csak megadni az elérési utat, hogy ott van a kész home, hanem nagy lendülettel le is formáztathatod. Ami komoly adatvesztéssel fog járni.

Rendet tartsuk “home” azaz otthon!

A negyedik ellenvetésem már kevésbé technikai, hanem rendrakási téma. A programok a $HOME könyvtáradba rakják a beállításokért felelős könyvtárakat, fájlokat telepítéskor. De sajnos ezeket nem mindig törlik le. Igen, én is ismerem a –autoremove, meg a purge és a hasonló kapcsolókat… de aki kissé hosszabb ideig használt Linuxot, annak hamar feltűnhet, hogy ezek sem 100%-osak :), finoma szólva… Így ha folyamosan viszel tovább egy home könyvtárat, akkor az magával viszi a régen leszedett programok felesleges könyvtárait és konfigurációs fájljait. Ami nem kis helyet fog elfoglalni.

A következő ellenérvem is a rendrakási témakörbe tartozik. Ha folyamatosan viszed tovább a home könyvtárat rengeteg olyan fájl lesz amit a programok gyűjtenek össze, pld. a discord nálam fél év alatt sikeresen egy giga képet, indexképet szedett össze. Ha új home könyvtárat készítesz, akkor ezektől megszabadulsz. Ez a könyvtár, tele képekkel, akkor is ott lesz, ha a discordot az új telepítésre nem teszed fel.

Összefoglalva: bár nagy esélyed van, hogy komolyabb probléma nélkül használhatod a régi beállításokat tartalmazó home könyvtárat, de belefuthatsz olyanba is, amikor nem. Ez kellemetlen és időt rabló is lehet, ha sem gyakorlatod, sem pedig ismereted nincs ennek a gyors megoldásában.

Érv, ami nem érv!

Na és ha tönkremegy a rendszerlemezed, akkor a külön lemezen home még megmentheti az adatokat

A helyes ellenkérdés: Na és ha tönkremegy a lemezed, amin a home van, külön, akkor a külön lemezen lévő home miatt veszted el az összes adatodat! Nem lehet tudni mely partíció, lemez megy tönkre. Legalábbis szerintem.

Akkor hogyan érdemes (szerintem) a linuxos telepítést megtervezni?

Ha nem akarsz disztribúciót váltani, cserélgetni, hanem már van kiforrott véleményed, akkor mindegy. Ilyenkor úgy osztod be a linuxos lemezeket, ahogy akarod. Az adatokról és a fontosabb konfigurációs fájlokról amúgy is készül mentés. Ha gond van, akkor ezeket vissza tudod állítani.

Ha nem az előbbi csoportba tartozol és nem vagy jártas a Linux adminisztrációban, akkor a leggyorsabb lemezre tedd a Linux rendszert. Én a legtöbb esetben azt követem, hogy a lemezt kijelölöm, majd ráhagyom a particionálást a telepítőre. Igen, tudom, valóban nagyon profinak tűnik, ha saját magad állítod be minden partíciót, és ha lehet akkor tízfelé particionálod a lemezt, mert akkor minden  külön lesz és az nagyon szépen néz ki…

Nálam megcsinálja a rendszerindításhoz szükséges mini partíciót, swapot nem szoktam kérni, majd az egész lemezre (esetleg megadott adott partícióra) elkészíti a formázást és telepíti a rendszert. Ilyenkor minden könyvtár, home és a letöltés, zenék és a rendszerkönyvtárak is egy partíción vannak. Majd a külön felcsatolgatom a home/laci/Dokumentumok alá a dokumentumokat tartalmazó lemezt, a Letöltések alá azt, amire a letöltések mennek, és így tovább. Így ha a rendszert cserélem semmi adatom nem veszik el.

Ellenérvek a “home” kapcsán

Két ellenérvet szoktak ez ellen felhozni, ami igazából csak azért kerül elő, hogy a legyen ellenérv :). A rendszerlemez 256-os, és a telepítésed maximum 20-30giga, akkor üres a többi rész, nem használod ki? Dehogynem. A fennmaradó részt adatok tárolására, éppen futó projektek tarolására fel lehet használni. Ezekről megfelelő időközönként készül egy tükörmásolat egy másik lemezre, így ha valami oknál fogva újratelepítenék és leformáznám a rendszerlemezt, akkor sem lesz adatvesztés. Logikus.

A másik ellenérv, hogy ha a home is eltűnik egy újratelepítéskor, akkor elvész az ÖSSZES beállításod! Aztán meg jó sok időt tölthetsz azzal, hogy újra beállítasz mindent! Jogos, bár az is igaz, hogy ha külön partíción van a home és az megmarad, akkor sem olyan gyors és egyszerű a beállítások visszaállítása, hogy csak felcsatolom a home partíciót a home könyvtárba és akkor az működik. Az elején jó pár okot felsoroltam, hogy miért is nem feltétlen fog működni. Ha új home készül, és nem a régit próbálod felcsatolni az BIZTOSAN működik, igaz alapbeállítású programokkal, de működik. Ha egy napot kínlódsz (igen, olvastam ilyent), de nem sikerül a régi home-t életre kelteni, majd tiszta telepítés után minden megy, fél óra alatt (nálam ennyi) bekonfigurálod a rendszert, akkor egy napod elveszett.

Én a főbb (amiket szerkesztettem) konfigurációs fájlokat, illetve a ~/.config könyvtárat mentem folyamatosan. Így ha újra kell telepíteni, akkor csak simán az adott fájlt másolom át a megfelelő helyre. Ami azért is praktikus, mert sok disztribútor előszeretettel rakosgatja odébb beállítási fájlokat ilyen-olyan okok miatt. Így pont oda kerülnek, ahol azok valóban vannak. Ez nem egy hátrány. Gyakorlatilag egy tucat olyan másolni valóm volt. A többi programot alapbeállítással használom.

Összefoglalva:

Ha nem szoktál újratelepíteni, vagy Linux Disztribúciókat cserélgetni, tesztelni, akkor mindegy, hogy hogyan oldod meg ezt. Ha nagyon értesz a Linux adminisztrációhoz, és a fenn emlegetett dolgokat azonnal meg tudod oldani, akkor sincs jelentősége a cikkemnek számodra. De ha nem ebbe a kategóriába tartozol, akkor a home cipelése egyik rendszerről a másikra nem feltétlen lesz számodra jó.