Geri blogja

Tisztelt látogató!
Ez a blog 2017 óta átmenetileg szünetel!

Friss topikok

Bejegyzések

Linux pendrájvra telepítése

2015.01.31. 18:10 Gerilgfx

tuxlinux.gif

 

MEGJEGYZÉS 2016 július 27.: EZ A CIKK TELJESEN ELAVULT!

 

 

A Linux pendrájvra telepítése egyszerű, viszont a finomhangolás idegtépő feladat. Kétféle megközelítést fogok bemutatni, mindkettőben általánosan is használható, portábilis, vészhelyzeti rendszer-pendrájvok készítését fogom bemutatni, amelyeket egyrészt naponta használhatsz a PC-dben, másrészt viheted magaddal, és használhatod akárhol.

 

 

!!! FIGYELEM !!!


1. Gyakran találkozni pendrájvról (is) bootolható Live lemezfájlokkal, azonban ez nem jó nekünk, mert azok a memóriában készítenek maguknak egy virtuális lemezt, ahonnét a rendszer fut, tehát valódi felhasználásra alkalmatlanok. Ez a bejegyzés a pendrájvra való TELEPÍTÉSRŐL szól!

2. A leírás által okozott károkért, legyenek közvetlen, vagy közvetett károk, nem áll módomban semmilyen felelősséget vállalni.

3. Csak akkor csináld meg otthon ezt a tutorialt, ha PONTOSAN TISZTÁBAN VAGY AZZAL, HOGY MIT IS CSINÁLSZ!

4. Itt VALÓDI FELADATOKRA HASZNÁLHATÓ, TELJES ÉRTÉKŰ linuxos rendszer feltelepítéséről van szó, nem egyfloppys *idenézzhülyegyerek milyenmenővagyok* jellegű, még libc-t sem tartalmazó hulladék disztribúciók félhülyegyerekek általi bebootolására való orgazmizálásról!

 

Linux pendrive 32-biten

A linux disztribúciók egy része telepítésnél mindig olyan kernelt fog telepíteni, ami az adott processzorhoz leginkább illik. Tehát ha te egy Pentium3 számítógépen telepíted, akkor SSE utasításkészletet kihasználó és igénylő kernelt kapsz, ha Core2Duo-ra, akkor SSE3-mat, és így tovább. Tehát ilyenkor célszerű a lehető legrégebbi számítógépre feltelepíteni. Ilyen disztribúció például a Debian 32 bites változata. 32 bites rendszerre a Debian-t ajánlom erre a célra, illetve érdemes keresni egy 5x86 kaliberű számítógépet keresni, ileltve a legrégebbit, amiben van USB támogatás. Nem baj, ha a gép nem tud USB-ről bootolni, hisz úgysem ebben fogod használni feltehetően a rendszert, de így legalább a megfelelő kernel fog felkerülni a pendrájvodra.

Ehhez a következőkkel kell rendelkezned:
-Töltsd le a legújabb 32 bites debian net intstall cd imaget az internetről.
-Kell egy legalább 4, de inkább 8 gigás pendrájv, vagy memóriakártya. (Az eljárás kártyaolvasókkal is működik - általában.)
-Legyen internet a gépeden.
-Ha nincs üres CD-d, vagy meghajtód, akkor sincs veszve semmi, a pendrájvot is használhatod forrásmédiumnak. Ekkor a dd tool segítségével másold át az iso-t az eszközre , pl dd copy if=debian74.iso of=/dev/sdx . Ha van üres cd-d erre a célra, akkor a telepítő imaget inkább a CD-re írd ki.
-Ne legyen semmilyen más meghajtó a gépben!
-Telepítéskor a cél a pendrájv lesz. ext2 partíciót hozz létre, ha a telepítő image is a pendrájvról futott, akkor nehogy letöröld, hanem az utána induló üres helyre hozd létre a partíciót.
-Ha a telepítő megkérdezi, 4k blokkméretet hozzál létre, 32k inode mérettel. Ennél nagyobbat ki sem tudsz választani.
-Még ne hozz létre swap partíciót, de hagyj neki legalább 256 mega helyet. Ha a telepítő image is a pendrájvon van, akkor nem kell neki helyet hagyni, majd a telepítés után letörlöd, és azt a helyet használhatod swapnak.
-Ha az érzékeny adatainkat esetleg egy külön titkosított partíción szeretnénk tárolni később, ennek hagyjuk ki a kívánt helyet.
-Ha a grub nem tud feltelepülni, a telepítő visszalép, és ki lehet választani a grub helyett a lilo feltelepítését. Az működni fog.
-Amikor végzett a telepítés, bootoljunk be a pendrájvról, nézzük meg, sikerült -e.
-Ha a lilo néhány percig pöttyöket irogatva szarakodik, azon nem kell meglepődni.  
-Telepítsd fel a grafikus felületet, és a használni kívánt programokat az apt-get parancsal. Pl: apt-get install lxde x11 pidgin firefox iceweasel g++
-Ez így este el is lesz magával.
-Az LXDE-t javaslom grafikus felületnek, az jól fog működni akkor is, ha egy pentium2 kaliberű gépen kell futtatnod, 128 mega RAM-mal, miközben kompatibilis marad a valódi programokkal is.
-Az etc/fstab fájlban a fájlrendszer mountjához adjuk hozzá a noatime flaget.
-A /proc/sys/vm/swappiness értékét állítsuk nullára, így csak akkor nyúl a swaphez, ha muszáj. Muszáj swapet lértehozni, mert 32 bites gépeken szeretnénk futtatni ezt az imaget, lehet, hogy a célgép mondjuk valami Pentium2 lesz 256 mega rammal, így időnként a swaphez kell nyulni bizonyos újabb programok futtatása során.

64-biten más a helyzet


-64 biten Debian helyett a SuSE-t javaslom, a legújabb, 64 bites DVD install ISO-t kell letölteni az internetről ehhez.
-16 gigás pendrájv kell minimum, de tegyük fel, hogy ezt már komolyabb feladatok elvégzésére szánod, így inkább 64 gigabájtos pendrivet érdemes használni minimum.
-Legyen internet a gépen, más meghajtó ne legyen a gépben egyáltalán, stb stb.
-15 gigás ext2 partíciót kapjon. Swap itt már nem kell. Egy 64 bites gépben úgyis lesz 1-2 giga RAM minimum, tehát felesleges swappeléssel kinyírni a pendriveot.
-A partíció a lehető legnagyobb (4k) blokkméretet kapja, és a lehető legnagyobb inode méretet (32k).
-KDE-t válassz, jelöld ki a kedvenc csomagjaidat is, várd meg, amíg elkezdődik a telepítés, és feküdj le aludni.
-Nézd meg, bootol -e a rendszer. Ha igen, azonnal add hozzá a noatime kapcsolót az fstabban, és indítsd újra a gépet.
-A /usr/bin könyvtárban a baloo_file_extractor és baloo_file nevű állományokat nevezzük át valami másra. Ez egy fájlindexelő bloatware, amire semmi szűkség nincs, ezzel is nyerünk egy pár extra kbyte/secet.
-Az /usr/bin/kactivitymanager nevű, hasonló rendeltetésű szennyel ugyanígy járj el.
-Az iotop nevű segédprogrammal megbízhatóan ellenőrizhetjük, van -e még további, félinformatikusok által összerakott hasonló funkciójú hulladék a rendszerben. Ha igen, ne habozzunk letörölni.
-Firefox, cache, egyéni limit: 0 mbyte. about:config, browser.sessionstore.interval -t átállítani 15000-ről 60000-re (percenként bőven elég a session infót elmenteni). network.http.use-cache - false. browser.cache.disk.enable - false. browser.cache.memory.enable - false. satöbbi. A firefox amúgy percenként akár pár megát is ráír a lemezre, ha hagyod. A hivatalos support szerint amúgy ez a normális működés :D
-A mysql (mysqld) nevű adatbázistrágyalevet, minden fossal együtt, ami használja, le kell írtani nyomtalanul, kézzel. A gyökérben állva a find | grep "mysql" kulcsszavakkal találhatunk rá.
-A ~/.local/share/akonadi könyvtárat nevezd át akonadifospumpára, de lehetőleg még mielőtt tojásokat rak.
-A /usr/lib/systemd/ könyvtár systemd-journald állományát nevezzük át valami barátságos névre, pl systemd-fospuma.
-Ha mindent jól csináltál, nem fog semmi visítozni, hogy hiányozna neki valami, kb azonnal elindul az oprendszer, és a tálca megjelenése után sima és gördülékeny lesz a rendszer.
-Minden KDE effektet érdemes lekapcsolni, mert bizonyos rendszereken problémákat okozhat, másrészt nem olyan szép, mint amennyire elsőre tűnik. Lassítani nem lassít, szóval ha te szereted, akkor bekapcsolgathatod őket, de én ezt nem javasolnám, engem piszkosul idegesít, és szerintem ronda is.

 

 

Megjegyzés: megoldható persze, hogy egy külön 32 és 64 bites rendszert is telepítünk ugyanarra a pendrájvra, külön partíciókra. Először a 32 bites Debiant telepítsük, aztán a 64 bites SuSE-t. Ez azonban én még nem próbáltam ki.


A pendrive és memóriakártya működése

A pendrive, az SD kártya, és más hasonló háttértároló működési elve igencsak eltér a merevlemezekétől. A hardveres egységek ezekben a készülékekben
 A hardveres szintű blokkméret ezekben nem néhány kilobájt, hanem néhány tíz, néhány száz kilobájt. Ezzel nincs is semmi gond egészen addig, amíg a pendrive használata abból áll, hogy 20 megás lovacskás pornókat, szakdolgozat.doc-okat, vagy más állományokat szállítgatsz rajta. Viszont hogyha merevlemez-szerűen akarod használni, akkor baj van, mert ahhoz, hogy pár bájtot beírj valahová, a környező mondjuk 64 kilobájtnyi területet is ki kell olvasnia, és vissza kell írnia a vezérlőnek. Így aztán a névleges másodpercenkénti 4 megás írási sebességed máris 200 kbyte/másodpercre fog csökkenni, ha nem a megfelelő inodeméretet és blokkméretet választottad. A nagy inode-méret jónéhány összetartozó blokkot egymás mellé, csokrokba csoportosít (igazából nem, de nagyobb rá az esély), és így megmenekül a sebesség (egy árnyalatnyival), ami gyakran visszakúszik olyan 1 megabyte/sec környékére (vagy nem...), ami már használhatónak tűnik (kinek hogy...).
 
 Az olvasásnál nincs ilyen gond, ez egy 64 gbyte méretű pendrive esetén 20 mbyte/sec körül kell, hogy legyen.
 
 A pendrájvok nem örök életűek - ezek a cellák könnyedék elhasználódhatnak. Modelltől, típustól függően néhány ezer, néhány tízezer, néhány százezer frissítési ciklust bír ki a cella. Komolyabb modellek esetén a vezérlőelektronika a gyakran írt cellákat átmappeli ritkábban írt cellák helyébe, így megóvva a túl gyors elfáradástól őket, de az olcsó modellek esetébn erre nem fog sor kerülni, tehát néhány hónap/év múlva az első haldokló cellák meg fognak jelenni, amiket fsck -cc kapcsolóval ki kell vonni a fájlrendszerből.

 

iras.png


 
 noatime
 
 Ez a flag utasítja a fájlrendszerkezelőt az fstabban megadva, hogy ne tárolja el a fájlok utolsó hozzáférésének idejét. Ez megspórol egy írást minden hozzáférés esetében, jelentősen megnöveli a fájlrendszer sebességét, és csökkenti a pendrive elhasználódását.
 
sync
 
 Ez egy olyan flag, ami arra kényszeríti a fájlrendszert, hogy azonnal a lemezre írjon minden változtatást. Ez a  flag nagyon le fogja lassítani a rendszert, és elpusztítja a pendrájvot. Az fstabban lehet megadni.
 
Miért nem ext3/ext4?
 
 Az ext3 és ext4 fájlrendszer túl modern akar lenni - az állandó naplózás, bár merevlemezek esetén hasznos lehet, itt most egyszerűen ledarálja a cellákat. Ha ragaszkodsz az ext3/ext4 fájlrendszerhez, le kell tiltanod a journaling-ot (lapozást).
 

 


Brutális tervezési hiba a linux kernelben
 
 Egyrészt a linux natívan csak 4k, vagy annál kisebb blokkméretet támogat, miközben a Windows akár 32k-s méretet is támogat natívan.
 
 Másrészt windows alatt megszokhattuk, hogy az operációs rendszer maximum egy fél - egy másodpernyi lemezműveletet tárol el a memóriában, tehát nem torlódnak fel a lemezműveletek. Ez mindenféle háttértároló-típus számára ideális, mert biztos, hogy elég sok adatot kap meg egyben ahhoz, hogy hatékony, kímélő, és biztonságos legyen az írás függetlenül a háttértár típusától. Linux alatt sajnos nem ez a helyzet. A Linux autómatikusan beállítja a memória egy bizonyos százalékát erre a célra. Konkrétan 10 és 30%-ot. Aztán amikor ezt eléri, bumm, nekiáll az egészet kiírni - egyben. A jelen konkrét esetben ez azt a szituációt fogja eredményezni, hogy rendszer először furcsán gyors lesz, aztán meg nem fog mozdulni mondjuk 20-30 percig. Mivel a hibát immáron tizedik éve a Linux közösség sem kijavítani, sem tudomásul venni nem hajlandó, ezért manuálisan kell a beállításokat módosítani. A Linux kernel azzal sem igazán tud mit csinálni,
 hogyha a háttértár egyszer hirtelen 20 mega/sec olvasásra képes, másszor meg 100-200 kbyte/sec írásra, a rendszer így folyamatosan az összesomlás szélére kerül a felhasználó szemszögéből.
 
 A megoldás az /etc/sysctl.conf állomány módosítása útján érhető el. Itt 4 paraméter megadására van lehetőségünk:
 
 vm.dirty_bytes=2097152
 
 Ezzel több száz mega helyett 2 megára limitálódik a cache, amit a kernel maximum el tud tárolni. A pendriveok működési elvéből fakadóan kikapcsolni a cachet nem igazán opció, ha ennél nagyobbat állítunk be, akkor pedig a rendszer fog már érezhetően másodpercekre leakadni néha, amikor a kernel ezeket lemezre írja.
 
 vm.dirty_expire_centisecs=9000
 
 Ez a beállítás azt jelenti, hogy a cache tartalma (ez a bizonyos 2 mbyte) 90 másodpercenként mindenféleképp érvénytelenedik. Rövidebb időt nem érdemes megadni, hoszabb időt pedig az adatvesztés elerkülése érdekében nem érdemes használni.
 
 vm.dirty_background_bytes=1048576
 
 Ezzel be lehet állítani, hogyha a cache tartalma meghaladta az egy megás méretet, akkor a háttérben el kell kezdeni az adatok lemezre írását. Kisebb értéket nem érdemes megadni, mert a rendszerben futó programok (pidgin, firefox, stb) folyamatosan terhelik a lemezt 5-100 kbyte-os írásokkal, amit nem írhatunk ki mindig a pendrivera, mert pár napon belül szétmenne tőle.
 
 vm.dirty_writeback_centisecs=1000
 
 Ezzel arra kérjük a lemezvezérlőt, hogy 10 másodpercenként ellenőrizze, átlépjük -e már azt a bizonyos egy megás méretet, ami után a háttérben való lassú kiírkálást meg lehet kezdeni.
 

 

 Jellemző hibák:


 Hiba feltételezni azt, hogy egy nagyobb dirty_bytes érték egy nagyobb expire_centisecs értékkel együtt azt eredményezi, hogy minden lemezművelet a memóriába kerülve, majd szép lassan a háttérben a lemezre kiíródva a háttérben nem fog megzavarni. Ezzel szemben az szokott történni, hogy néhány tíz másodpercnyi munka után hatalmas beakadások következnek be, amik több percig is tarthatnak. Ennek az okaként valószínűleg a kernel további bugjait lehetne megjelölni. Lehetséges, hogy a te pendrájvod számára más értékek az ideálisak. Ha ezek az értékek jelentősen lassítják a boot-időt, érdemes duplázni, négyszerezni őket, és úgy is kipróbálni. Futásidőben alkalmazni a sysctl -p /etc/sysctl.conf paranccsal lehet őket. Ennél kisebb értékek megadása tapasztalatom szerint hátrányosan befolyásolta a rendszer működését, nagyobb értékek esetén pedig túl nagy akadásokat produkált a rendszer.

 

snapshot3.png

 

Jó étvágyat!

A bejegyzés trackback címe:

https://gerilgfx.blog.hu/api/trackback/id/tr147127707

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása