Wednesday, 14 August 2013

Telepítsünk linuxot

A végtelen elmélet után jöjjön egy kis gyakorlat, telepítsünk fel egy rendszert. Első alkalommal ajánlom a virtuális gépben való telepítést, és ha ott működik, akkor meg lehet próbálkozni a fizikai gépen is. Fizikai gépre telepítésnél mindenképp mentsük le a fontos dolgainkat, mert az ördög sohasem alszik.

Indítás

Több lehetőségünk is van. telepíthetünk CD/DVD-ről, vagy pendrive-ról. A CD/DVD talán egyszerűbb, mert csak letöltjük a képfájlt, kiírjuk, és arról indítjuk a gépet. Pendrive-os telepítésnél létre kell hozni a telepítőt, amire elég sok leírás van a neten mindenfelé.

Telepítőmenü

A telepítő elindítása disztribúciónként, sőt azon belül telepítési médiánként változhat.
Ha eljutottunk a telepítőig, akkor az első kérdés általában a megjelenítési nyelv, majd a billentyűzetkiosztás kiválasztása.

Partícionálás

Ez a bonyolultabb része a telepítésnek egy kezdő számára. Az alábbiakban megpróbálok tanácsot adni windows mellé és magában való telepítésre is.

Partícionálás windows mellé telepítéskor

Ebben az esetben érdemes még telepítés előtt a windows lemezkezelőjével elkészíteni a partíciókat. Windows7-8 esetén nagy valószínűséggel lesz legalább 2 elsődleges partíciónk, de elképzelhető, hogy akár 4 is van.
Általában van egy 100MB-os boot partíciója a windowsnak, valamint egy rendszerpartíció (c:\). Ezeken kívül notebookokon lehet még rendszerhelyreállító partíció is.
Tegyük fel, hogy nem csináltunk D: meghajtót, hanem van egy nagy C:
A windows valamilyen belső indíttatásból fakadóan nem hajlandó lecsökkenteni egy partíció méretét  az aktuális méret felénél kisebbre. A rekurzív megoldást nem próbáltam ki (partyció lecskkent, újraindít, megint lecsökkent), helyette az Easeus Partition Managert használom ilyen esetben, ami otthoni használatra ingyenes.
Partíció lecsökkent, majd a nem formázott területre szépen létrehozzuk a logikai partíció(i)nkat.

Legalább egy "/" partícióra szükségünk lesz, 10GB már elég kell hogy legyen.
Jelenleg az egyik legvitatottabb dolog a swap partíció kérdése, amit a linux arra használ, hogy ha fogytán a memória, akkor oda pakolja ki a nem használt/régen használt programokat. Ennek a windows-os megfelelője a c:\pagefile.sys.
Az én véleményem az, hogy ha vincseszterre telepítünk, akkor legyen, méghozzá akkora amennyi memóriánk van. Úgyis többszáz GB helyünk van, és a linux ezt a partíciót használja hibernáláshoz is (a windows a c:\hiberfil.sys-t). SSD-re telepítéskor talán jobban járunk ha később swapfájlt hozunk létre, bár ha notebook és hibernálunk, akkor egyszerűbb a partíció. Vannak akik azon a véleményen vannak, hogy manapság a végtelen memóriák korában már fölösleges.
Első rendszernek véleményem szeint ennyi elég, nem kell tovább darabolni a diszket.
Amikor még párhuzamosan volt két rendszerem, akkor én csináltam egy külön adat partíciót is, ami NTFS fájlrendszerrel működött, és így windowsból és linuxból is el tudtam érni.
Ha létrehoztuk a két partíciót, akkor figyeljünk, nehogy a linux telepítésekor rossz partíciókat válasszunk ki.

Partícionálás csak linuxhoz

Ha nincs a gépen windows, vagy száműzni akarjuk, akkor legyen legalább 3 partíciónk:
  • swap annyi, amennyi memóriánk van
  • 10-20GB root (/) fájlrendszer
  • a maradék /home
Egy otthoni gép esetén a többit nem szükséges külön partícionálni, az inkább csak biztonsági megfontolásokból lehet szükséges.

A telepítés indítása, és további beállítások

A partícionálás befejezése után már csak pár dolog beállítása van hátra. Rendszeridő. időzóna, felhasználó és jelszava, és azt hiszem ennyi. A rendszeridő windows mellép pakolt linux esetén trükkös, már nem emlékszem, hogy melyik opciót kell választani (nekem is volt olyan, amikor mind a 2 állítgatta a rendszerórát, és állandóan elmászott). Na közben utánanéztem, és elméletileg azt az opciót kell választani, hogy a rendszeróra nem UTC-re van állítva.

Telepítés befejezése és az új rendszer elindítása

Ha minden jól ment, akkor a telepítő a végén kiköpi a CD-t, vagy kéeri, hogy vegyük ki a telepítési médiát, majd indítsuk újra a gépet.Újraindítás után az úgynevezett GRUB rendszerbetöltő fogad bennünket, ahol választhatunk, hogy mit szeretnénk indítani. Ha minden jól ment, akkor szépen elidul a friss linux rendszerünk, öröm és boldogság, ennyi.

Partíciók, fájlrendszerek, valamint hogyan néz ki egy linux a vincseszteren?

Alapfogalmak

Partíció: a partíció a wincseszteren kialakítható logikai egység, ami egy fájlrendszert képes tárolni. Ha nagyon leegyszerűsítve akarjuk megfogalmazni, akkor azt modhatjuk, hogy windowsban egy meghajtó (c: d: e: stb.) az egy fájlrendszer, ami egy partíción van. Ha érdekel, hogy néz ki, akkor windowsban Sajátgépre (Computer) jobb klikk -> Kezelés (Manage) -> a felugró ablakban Lemezkezelés (Disk Management).
Ezeknek a partícióknak az adatai úgynevezett partíciós táblában vannak leírva. Több féle létezik, most csak a jelenleg legelterjedtebbet írom le (MBR).
Kétféle partíciónk lehet elsődleges (primary), és logikai (logical). Az elsődleges partíciók száma maximum 4 lehet, a logikai partyciók száma tetszőleges. A trükk az, hogy a logikai partíciók valójában egy speciális elsődleges partíción belül laknak (extended partition). Ezt a windows lemezkezelője nem sorolja fel külön, csak az alsó részen látszik a zöld keret.
Windows lemezkezelés
Linuxban a partíciók betű és szám kombinációkkal jelennek meg. Egy partíció az alábbiak alapján azonosítható:

  • első betű: a csatlakozás típusa, legtöbbször s/h, manapság szinte kizárólag s (SCSI/SATA)
  • második betű: az eszköz típusa d=disk, r=CD-ROM DVD-ROM
  • ha diszkről van szó, akkor van harmadik betű, ez a-tól indul, és a lemezek sorrendjét adja meg. Első vincseszter "a", második "b", stb.
  • 1-től induló szám ami a partíció sorszámát adja meg
Tehát az első vincseszter első partíciója az legtöbbször sda1, régi gépeknél lehet hda1. Első diszk n. partíciója sdaN. A második diszk első partíciója a sdb1, stb. A CD/DVD olvasó legtöbbször sr0 azonosítót kap.


Fájlrendszer: itt laknak a fájlok és könyvtárak ezekből is rengeteg van. A microsoft kettőt használ vincsesztereknél, ezek az NTFS és a FAT32. Linuxon ettől jóval bonyolultabbá tehető a dolog, de nem szükséges :)
Jelenleg a legelterjedtebb linuxos fájlrendszer az ext4. Ha nem akarod bonyolítani az életedet, akor maradj ennél.
Az LVM-ről és softRAIDről majd írok külön.

Fájlok és könyvtárak Windows vs. Linux:

Ez egy nehéz témakör, ugyanis alapvetően különböző módon vannak felépítve, de egy két dolgot megpróbálok összekötni (tipikus telepítések esetén).
Ami fontos különbség, hogy linuxban minden fájl. A könyvtárak, az különböző eszközök, minden.
Pár példa:
első vincseszter: /dev/sda
dvd író: /dev/sr0
hálózati kártya: /sys/devices/pci0000:00/0000:00:03.0

WindowsLinux
"Alapkönyvtár""C:\""/"
Programok telepítési könyvtára"C:\Program Files""/usr"
Felhasználói fiókok"C:\Users""/home"
Ideiglenes fájlok"C:\Windows\Temp""/tmp"

Már a fenti megfeleltetések sem tökéletesek, de még felfedezhetőek hasonlóságok. Az alábbi táblázatban pedig felsorolom egy linux rendszer könyvtárstruktúráját, és megpróbálom elmagyarázni hol mi található.

Könyvtár elérési útjaMi van benne
/"Alapkönyvtár"
/bin"binaries" vagyis futtatható programok
/bootrendszerbetöltő
/dev"devices" eszközök
/etcrendszerszintű konfigurációs fájlok
/homefelhasználói könyvtárak
/liba futtatható programokhoz tartozó függvénykönyvtárak
/proca futó programok és szolgáltatásokról tartalmaz információkat
/roota rendszergazda felhasználói könyvtára
/sbin"system binaries" rendszerkonfigurációs futtatható programok
/sys"system" a gépben található eszközök információi
/tmp"temporary files" ideiglenes fájlok
/usr"user programs" felhasználói programok
/var"variable files" gyakran változó fájlok pl: logok, levelezés, backup, cache, stb

A fentieken kívül vannak még könyvtárak, és a felsoroltak között is vannak tovább bonthatóak, de kezdetnek talán elég ennyi.

Thursday, 8 August 2013

TODO

Megpróbálom összeszedni, hogy milyen témákról kellene még írnom. Ha van ötleted, jöhet.

Programtelepítés, csomag, csomagkezelő, grafikus és parancsori telepítés
Linux felépítése, avagy mi ez a sok fura nevű könyvtár gépemen?
Indítsunk programokat parancssorból, mert az jó
Konfigurációs file-ok avagy a programok rejtett tartalékai
Wifi, internet, hálózat, VPN
Hardveresen gyorsított videolejátszás, grafikus teljesítnény, videokártya konfig
Programozás linuxon - mi kell, mit érdemes, mit lehet?

Update1:
A mount parancs, filerendszerek, fstab, hordozható tárolók
Felhasználók, csoportok, jogok, avagy miért kell állandóan jelszavakat gépelnem?

Update2:
Szerverek. mik azok, miért hogyan, milyenek vannak?

Wednesday, 7 August 2013

RouterOS

Ez egy kitérő post, lehet egyszer majd elkerül innen, bár részben van köze a linuxhoz.
Az elsődleges cél, hogy meglegyen, ha később szükségem lenne rá.
Naszóval múlthéten megérkezett a MikroTik routerem, és most annak a konfigurációjához jön pár dolog.

2:portforward:
/ip firewall nat add chain=dstnat dst-address=<publikus IP> protocol=tcp dst-port=<publikusport> \
    action=dst-nat to-addresses=<privát IP> to-ports=<privát port>


Tesztkörnyezet

Egyenlőre Slax LiveCD-krol bootolva probálom megoldani. A két Uplink gépen az eth0 az asztali gép hálókártyájára van bridge-elve, az eth1-ek egy-egy loopback virtuális interface-re (virtualbox hátrányai), amiket a hdwwiz-zel lehet telepíteni win7-en (egy kis segítség). Elméletben úgy fog kinézni, hogy a két GBE linken kapnak IP-t, az egyik uplink az statikus lesz, a másikon az UplinkPC fog DHCP-n címet osztani. A TesztPC és a RouterOS között pedig szintén statikus címek lesznek.

Az Uplink1PC és az Uplink2PC-knél az alábbbiakat kell belőni hogy natolós routerként működjenek:

echo 1 > /proc/sys/net/ipv4/ip_forward
ip addr add 192.168.1.1 dev eth1
iptables --table nat --append POSTROUTING --out interface eth0 -j MASQUERADE
iptables --append FORWARD --in-interface eth1 -j ACCEPT

Az egyik forward most pöpecül működik, a többbit majd későbbb.

Nekiálltam a második virtgépen is összekalapálni a hálózatot. ehhez kellett egy dhcp szerver, amit telepíteni kell. Doksi alapján elég simán megvolt.
slax activate dnsmasq
Mivel dnsmasq-kal már foglalkoztam, így maradtam annál.


RouterOS telepítés és konfigurálás

Letöltöttem a routerOS 6.2 cd-t a MikroTik oldaláról, virtuál gépre felcsatol, indít. A telepítője nagyon minimalista, kijelölgeted mire van szükséged, nyomsz egy "i"-t, és kész. CD leválaszt, újraindít és ennyi.

A konfigurálás már egy érdekesebb rész volt.
3 hálókártya (ether1-2-3) 
ether1: ez kapcsolódik az Uplink1 felé, statikus IP
ether2: ez kapcsolódik au Uplink2 felé, amin dhcp-n keresztül kap címet
ether3: a "belső hálózat" ebbe az irányba dhcp szerverként funkcionál, és  NAT-ol kifelé

statikus IP-k beállítása:
/ip address add address=192.168.1.2 netmask=255.255.255.0 interface=ether1 disabled=no comment=Uplink1
/ip address add address=192.168.252.1 netmask=255.255.255.0 interface=ether3 disabled=no comment=intranet
dinamikus IP beállítása:
/ip dhcp-client add interface=ether3 disabled=no

DHCP szerver aktiválása:
/ip dhcp-server setup
Feldobálja a kérdéseket, megadogatod a válaszokat, és megy.

NAT beállítás:
/ip firewall nat add chain=srcnat action=masquerade out-interface=ether1
/ip firewall nat add chain=srcnat action=masquerade out-interface=ether2

És következik a lényeg, a Dual Uplink Failover, ami annyit tud, hogy két lábon csatlakozik a netre, és ha az egyik elhal, akkor automatikusan átáll a másikra. Itt a leírása.
Bibi van: ellátok a fizikai routerig, de azon kívülre nem, ami azért érdekes, mert mindezt távoli asztalon kereszül csinálom épp. Routing szabály azért nem lehet, mert a router belső IP-jét pingelve kapok választ, tehát visszatalál a csomag. Hohó megvan. Ott a gond, hogy a gatewayek nem lehetnek ethernet interface-ek.

Egyenlőre nem nagyon akar működni ez az átállásos dolog. Átírtam IP-re a gateway-eket, mostmár lehet pingelni mindent, de hiába lövök mel az egyik uplinket, nem akar átállni a másikra.
Soksok próba után úgy tűnik az lesz a gond, hogy interface-t akarok megadni gatewaynek, és ezt nem szereti.
Emelett mint kiderül a routing-mark is problémát okozott, mert ha nem volt jelölve a csomag, akkor nem ment kb semerre.
Próbálkoztam olyan megoldással, hogy minél általánosabb szabályt adjak, de nem akarta szeretni.
Most ami működik az az alábbi:
/ip firewall mangle add chain=prerouting action=mark-routing new-routing-mark=Uplink1 src-address=192.168.252.0/255.255.255.0
Ezt még ki kell kisárletezni, hogy milyen korlátozásokkal hajlandó megjelölni a csomagokat (0.0.0.0/0-ás címtartománynál sem működik, sőt már 192.168.0.0/255.255.0.0-val sem).



Tuesday, 6 August 2013

Programok

Nagyon sok embernek az első problémája, hogy milyen programmal tudom ezt vagy azt a dolgot megcsinálni linuxon.
Az alábbiakban megpróbálom összegyűjteni, hogy milyen alternatívák vannak a különböző programtípusokra. Ezeknek egy része magában telepíthető, egy részük valamelyik asztali környezethez tartozik.
A táblázat első oszlopa a program típusa, utána a különböző asztali környezetek alapértelmezett/javasolt programjai vannak, végül az egyéb oszlopban a független/külön telepíthetőek közül a népszerűbbek/ismertebbek.
Ha egy adott környezetet telepítesz, akkor nagy valószínűséggel a hozzá tartozó programot meg fogod találni. Ha nincs, akkor legtöbbszor az Egyéb oszlopban levő programok valamelyike kerül telepítésre egy komplett disztribúció esetén.

Program típusa Gnome/Unity KDE XCFE LXDE Egyéb grafikus Egyéb karakteres
Fájlkezelő Nautilus Krusader Thunar PCManFM Midnight Commander
Böngésző Epiphany Konqueror Midori nincs Firefox, Chromium, Google Chrome links, links2
Levelező Evolution Kmail nincs nincs Thunderbird, Claws-mail, Sylpheed pine, mutt
Zenelejátszó Banshee Amarok nincs nincs XMMS, Rythmbox, Songbird, Audacious xmms2
Médialejátszó Totem Kaffeine nincs nincs mplayer, VLC, Gnome-mplayer player, cvlc
Szövegszerkesztő nincs Kword nincs nincs OpenOffice Writer, LibreOffice Writer, Abiword
Táblázatkezelő nincs Kspread nincs nincs OpenOffice Calc, LibreOffice Calc, Gnumeric
CD/DVD író Brasero K3b Xfburn nincs grafikus nem nagyon van más cdrecord
Fájlszerkesztő gedit kate, kwrite mousepad/leafpad nincs gvim, emacs, scite vi, vim, nano, mcedit, joe
Terminál emulátor gnome-terminal konsole xfce4-terminal lxterminal terminator, xterm, sakura screen (nem igazán az, de ráfogható)

Próba 1

Na akkor folytassuk. Az előzőek alapján többé kevésbé sikerült leszűkíteni, hogy melyik linux lenne jó. Akkor próbáljuk is ki.
Első körben én javaslom a virtuális gépen való futtatást LiveCD verzióval (ehhez nem kell háttértárat sem rakni a virtgép alá). LiveCD/telepítő letölt (sok helyen ugyanaz a kettő), virtuális gépbe felcsatol, elindít, kipróbál. Így működés közben is meg tudod nézni, melyik disztribúció mit tud, mennyire csillog, megtalálsz-e mindent viszonylag fájdalommentesen.
Ha nagyjából belőtted, melyik tetszik leginkább, akkor jöhet a fizikai gép LiveCD-ről való indítása. Ez azért lényeges, hogy lásd, elindul-e a rendszer a gépeden, és megtalál-e minden hardvert.
Ha ez is megvolt, és úgy gondolod, hogy jó lesz, és működik, akkor jöhet a telepítés. Azt javaslom, először ezt is virtuális gépen csináld, hogy lásd a lépéseket. Ha valamit nem értesz, akkor érdemes egy tapasztalt ismerőst megkérdezni. Ha ez megvan, és nem történt semmi probléma, akkor jöhet a fizikai gépre való telepítés (USB-ről, CD-ről, DVD-ről, te választod). Ha egyetlen gép, akkor mindenképp hagyd meg a korábbi rendszeredet.

Hogy megértsd miért javaslom a fentieket, elmesélem az én történetemet. Asztali gép sok-sok évvel ezelőtt. Barát segítségével felküzdöttünk egy Gentoo linuxot ("informatikus vagyok, úgyis menni fog" alapon). Egy pár napig-hétig használtam, aztán amikor nem volt valamilyen progi, és nem értem el ismerősömet, kényelmesebb volt visszatérni Windowsba. Pár hét után eljutottam oda, hogy megint csak windowst használtam. Eltelt pár év, megvettem az első notebookomat, amihez csak freedost adtak. Volt fél napom összepakolni, és eljutni táborba, ahova megígértem, hogy viszem a gépet, és arról megy majd a zene, ergo kellett egy gyorsan felhúzható működő rendszer. XP feltelepít, nincs hang. Drivereket vadászni meg nem volt időm, úgyhogy Ubuntu cd bele, elindít, van hang, van médialejátszó, király! Feltelepítettem, zenéket áttoltam rá, aztán irány a tábor. Az ezutáni időszak picit kaotikus, de ha jól emlékszem, akkor az asztali volt a windows gép, a noti pedig linux maradt magában, hogy rákényszerítsem magam a linux használatára. Itt voltak összevissza dolgok, az először telepített ubuntut (talán 9.04) sikeresen hazavágtam pár hét után. A következő telepítéseknél valami mindig félresikerült (hol videókártya, hol más gondok voltak). Ismerős javaslatára jött egy rövid Debianos időszak. Ezután megint következett egy kis Ubuntu, majd amikor előkerült a Unity, akkor elkezdtem körbenézni a világban, hogy mi van még, mert azt tuti nem. Használtam egy darabig ArchLinuxot, Xubuntut, Lubuntut, Fedorát, megpróbálkoztam a Unity-s Ubuntuval ismét, sőt amikor előkerült a windows7, akkor az ment fel a notebookra, és az asztaliból lett kisérletezgetős gép. Felkerült rá egymás mellé egyOpenSUSE, egy Fedora, és egy Gentoo. 2011-ben vettem egy új notebookot Windows7-tel. Na uccu neki, partíció átméretez, ubuntu szerver verzió fel, és talán XFCE volt először, utána LXDE, OpenBox, meg ki tudja még mi. Egy darabig keresgéltem, aztán belefutottam a Cinnamonba, ami akkoriban egy új asztali környezet volt, és annyira bejött, hogy elég sokáig maradt is. Voltak kisebb gondjai (pl: billentyűzettel a menü bal szélén levő ikonokat nem lehet elérni), de sokáig elnéztem neki, mert ez állt legközelebb ahhoz, amit szerettem volna. A Windows maradt, egyrészt mert adták hozzá, másrészt játék miatt, harmadrészt azért, mert rendszerüzemeltető és desktop-support munkakörben dolgozom, és időnként kell tesztelni pár dolgot win alól is.
Egy idő után beleuntam, hogy lassan indul a windows, uccu neki gépen levő helyreállító elindít, windows újratelepít. Ez persze hazavágta a rendszerbetöltőt, úgyhogy megint nem volt egy darabig linux. egyszer helyreállítottam, aztán az egyik windows frissítés megint felülírta. Ekkor lett elegem a dologból, és telepítettem windows alá egy virtuális gépen linuxot. Ennek több előnye is van. Egrészt nem kell újraindítgatni a gépet a két rendszerhez, a windows is boldog, mert ő az alap rendszer, a linux meg nem eszik olyan vérmesen sokat, hogy megakadjon. Jelenleg is ez a felállás van, nem tökéletes, de működik.
A fordított verzióval több gond is van. Egyrészt a géphez adott windows licensz nem használható virtuális gépben, másrészt a játékok még mindig windows-t igényelnek a seggük alá, és a natív jobb, mint a wine-os.