Portál AbcLinuxu, 27. května 2024 12:25

Súborové systémy - II

23. 4. 2004 | Rastislav Stanik
Články - Súborové systémy - II  

Představení ISO9660, loopback, NFS, Samby a swapu. Uzavřené několika tipy, které jsou odpovědí na časté problémy se souborovými systémy.


Súborový systém ISO9660

Súborový systém ISO9660 je systém, ktorý sa typicky používa na dátových CDčkach. Hudobné CDčka majú inú štruktúru a nie je nutné (ani možné) ich pripájať ako súborový systém. Existujú tiež tzv. hybridné CDčka obsahujúce oblasť v formáte ISO9660, ako aj oblasť hudobnú.

So súborovým systémom sa teda stretneme najskôr keď potrebujeme pristupovať na CD. Základný ISO9660 má obmedzenia na mená súborov, hĺbku adresárovej štruktúry a podobne. Tieto obmedzenia obchádza napr. rozšírenie Joliet (MS). Ďalším rozšírením je El Torito, ktoré umožňuje bootovanie z CD-čka a ďalším je Rock Ridge, ktoré umožňuje ukladanie špeciálnych vlastností, ako sú symbolické linky a podobne. V Linuxe je potrebné mať toto rozšírenie zapnuté vo vlastnostiach ovládača pre ISO9660.

Pri napaľovaní CDčiek sa zvyčajne postupuje tak, že sa vytvorí obraz budúceho CDčka ako súbor pomocou programu mkisofs a ten sa potom napáli pomocou programu cdrecord. Samozrejme existuje niekoľko programov, ktoré ponúkajú peknú a šikovnú grafickú nadstavbu nad cdrecordom.

Loopback súborový systém

Ak máte v jadre podporu pre tzv. loopback súborový systém, môžete ako súborový systém pripojiť obraz iného súborového systému zapísaného do súboru. To možno použiť napríklad pre kontrolu obrazu ISO9660 predtým, než ho napálite na CD-čko.

# mkisofs -quiet -o test.iso dir/
# losetup /dev/loop0 /tmp/test.iso
# mount /dev/loop0 /mnt/tmp

Program losetup povie systému, že požiadavky systému na zariadenie /dev/loop1 sa presmerúvajú na /tmp/test.iso. Toto presmerovanie by ste mali po skončení používania zrušiť.

# losetup /dev/loop0
/dev/loop0: [0303]:1006721 (/tmp/test.iso)
# umount /dev/loop0
# losetup -d /dev/loop0

Existuje tiež varianta loopback súborového systému, ktorá šifruje dáta, ktoré sa do neho zapisujú, a prečítať ich možno len po zadaní správneho hesla pri pripájaní - Cryptoloop. Vytvoriť takýto šifrovaný súborový systém môžete takto:

# dd if=/dev/random of=/file bs=1k count=100
# losetup -e losetup -e aes-256 /dev/loop0 /tmp/file
Password:
# mkfs /dev/loop0
# losetup -d /dev/loop0

Potom ho už možno používať:

# losetup -e aes-256 /dev/loop0 /tmp/file
Password:
# mount -oencryptionn=aes-256/dev/loop0 /mnt/tmp
Password:
...
# umount /dev/loop0
# losetup -d /dev/loop0

Sieťový súborový systém - NFS

Doteraz sme spomínali súborové systémy, ktoré sú fyzicky umiestnené priamo v našom počítači - disk, CD, súbor. Okrem toho ale existuje aj možnosť pripájania súborových systémov po sieti. Hovorí sa tomu NFS - Network File System. Pri jeho použití treba vedieť, že existuje viacero verzií NFS, že reakcie na prácu so súbormi na NFS závisia na priepustnosti siete a tiež, že prenos dát nie je nijak zvlášť zabezpečený pred útočníkmi.

Pre úspešné používanie musíte mať na klientovi naštartovaný rpc.portmap a rpc.mountd a na serveri rpc.nfsd. Server musí tiež špecifikovať v súbore /etc/exports, ktoré adresáre ponúka.

# cat /etc/exports
/home clnt.domain.org

Tento server ponúka teda adresár /home stroju clnt.

# showmount -e srvr
Export list for srv:
/home clnt.domain.org

Teraz môžete pripojiť systém z druhého stroja:

# mount srvr:/home /home

Zdieľanie v sieti MS Windows - Samba

Ak v sieti máte počítače s MS Windows, pravdepodobne poznáte možnosť pripájania a zdieľania adresárov. Unixové systémy tiež podporujú túto funkcionalitu. Implementovaná je v balíku Samba. Pripájanie zdieľaných adresárov je možné v prípade, že máte v jadre podporu pre smbfs (a máte nainštalovanú sambu), pomocou programov smbmount (alebo špecifikovaním typu smbfs za -t po mount).

# smbmount -ousername=rastos \\\\srvr\\share /mnt/tmp
Password:

Swap

Moderné počítačové systémy majú pomerne veľké nároky na pamäť. Pretože diskový priestor je lacnejší než RAM pamäť a využitie všetkej RAM sa nestáva často, operačný systém môže odložiť časť obsahu pamäte, ktorá sa momentálne nepoužíva, na disk. MS Windows odkladá do súboru. Linux ponúka na výber súbor alebo vyhradenú partíciu. Tradične sa používa partícia, pretože je rýchlejšia.

Swap vlastne nie je súborový systém v pravom slova zmysle, pretože neumožňuje ukladanie súborov. Vytvoríme ho programom mkswap:

# mkswap /dev/hda5
Setting up swapspace version 1, size = 201240 kB

Používanie je riadené dvojicou programov swapon a swapoff:

# swapon /dev/hda5
...
# swapoff /dev/hda5

Aby sa swap použil automaticky pri naštartovaní systému, môžete mu vytvoriť položku v /etc/fstab:

/dev/hda5   none   swap   defaults   0   0

Poslednú otázku, ktorú treba pri používaní swapu vyriešiť, je rozhodnutie o jeho veľkosti. V starších dokumentoch sa dočítate odporúčanie, že by mal byť dvakrát taký veľký ako RAM pamäť. V skutočnosti je to trocha inak. Jediným správnym spôsobom je odhadnúť, koľko virtuálnej pamäte bude systém potrebovať pri svojej činnosti. Ak máte pracovnú stanicu, kde beží tabuľkový procesor či kompilácia menšieho projektu a má 512MB pamäte, je zbytočné nastavovať 1GB swap. Naopak, ak pobežíte veľkú databázu, nároky na pamäť môžu byť dosť veľké. Takže odporúčam vysledovať, koľko pamäte používajú aplikácie, ktoré bežne používate, a k tomu niečo pridať. Zvážte, že browser bežiaci mesiac v kuse môže potrebovať postupne viac, ako si zoberie krátko po naštartovaní. Zvážte, že za rok prejdete na novšiu veriu aplikácií či správcu okien a podobne a tomu prispôsobte svoj výpočet veľkosti swapu.

Tipy a triky pre súborové systémy pod Linuxom

Ako skontrolovať, či náš systém obsahuje podporu (driver) pre daný súborový systém v jadre?

# cat /proc/filesystems
nodev   sysfs
nodev   rootfs
nodev   bdev
nodev   proc
nodev   sockfs
nodev   usbfs
nodev   usbdevfs
nodev   futexfs
nodev   tmpfs
nodev   pipefs
nodev   eventpollfs
nodev   devpts
        ext3
nodev   ramfs
        msdos
        vfat
        iso9660
nodev   nfs
nodev   nfsd
nodev   cifs
        ntfs
        reiserfs
        udf
nodev   rpc_pipefs

Ak nie, budete musieť túto podporu pridať - buď nahraním príslušného modulu, alebo zakompilovaním príslušného driveru do jadra.

Pripájanie ako neprivilegovaný užívateľ

mount(8) - za normálnych okolností môže súborové systémy pripájať len užívateľ root. Ak súbor /etc/fstab obsahuje pre daný súborový systém voľbu user, môže ho pripojiť ktokoľvek, ale len ten, kto ho pripojil, ho môže odpojiť. Ak chcete, aby ktokoľvek mohol odpojiť nejaký súborový systém, dajte mu voľbu users.

Pripájanie len na čítanie

Voľba ro. Používaná napr. pre CD-čka.

Ako zistiť, čo sa dá pripojiť z iného servera cez NFS

showmount -e server

Zistenie typu súborového systému

Linux (a mnohe iné unixové systémy) ponúkaju program, ktorý sa volá file. Tento program používa informácie uložené v /etc/magic, aby uhádol, čo sa nachádza v nejakom súbore.

file - < /dev/hda6
standard input: Linux rev 1.0 ext3 filesystem data

Všimnite si použitie parametra - a presmerovanie. Bez nich by program povedal:

file /dev/hda6
/dev/hda6: block special (3/6)

Otvorenie a zatvorenie CD mechaniky programom

Program eject dá príkaz zariadeniu pre vyhodenie média. Ak na príkazovom riadku nezadáte inak, použije sa zariadenie /dev/cdrom. Ak je súborový systém na médiu pripojený, eject sa ho pokúsi najprv odpojiť. Ak mám pripojenú Iomega ZIP disketu (/dev/sda), môžem ju vysunúť príkazom

# eject /dev/sda

(ZIP disketa sa tvári ako disk. Má partície a zvyčajne obsahuje jeden súborový systém na /dev/sda4, ale príkazu eject musíte dat parameter zodpovedajúci celému zariadeniu, nie partície) Ak to dané zariadenie podporuje, tak prepínačom -t môžete zariadeniu povedať, aby si zobralo médium.

# eject -t /dev/cdrom

Ako zistiť, kam bežiaci systém swapuje

(robené na jadre 2.6.4)

cat /proc/swaps
Filename         Type     Size    Used    Priority
/dev/hda5     partition  196520     0       -2

Související články

Súborové systémy - I
Moderní souborové systémy
Zálohování v Linuxu

Odkazy a zdroje

Samba

Další články z této rubriky

Úvod do Dockeru (1)
Paralelizace běžných činností v konzoli pomocí GNU Parallel
Unixové nástroje – 26 (triky pro práci v Bashi)
Unixové nástroje – 25 ((s,c)fdisk, gdisk, parted a findmnt)
Linux: systémové volání splice()

Diskuse k tomuto článku

23.4.2004 07:45 Gustav Hájek | skóre: 7
Rozbalit Rozbalit vše automaticke pripojovani
Odpovědět | Sbalit | Link | Blokovat | Admin
musim rice ze to je moc pekny clanek, docela se zrovna hodil, ale mam otazecku: jde nejak zajistit aby doslo k automatickemu pripojeni po vlozeni media do mechaniky, např. u CD, nebo pri zasunuti flash disku do USB? a samozrejme by se hodilo i automaticke odpojeni :-)?
23.4.2004 08:32 Matej Pivoluska
Rozbalit Rozbalit vše Re: automaticke pripojovani
Na toto sa da pouzit napr. supermount.
23.4.2004 07:46 Tomas
Rozbalit Rozbalit vše Trocha zmatene...
Odpovědět | Sbalit | Link | Blokovat | Admin
Tie clanky boli o filesystemoch, alebo o virtualnom filesysteme? Autor hadze do jedneho vreca FAT, ISO9660 atd. s loopback, samba... Hlavne zaciatocnikov to moze dost popliest.
23.4.2004 08:39 rastos | skóre: 62 | blog: rastos
Rozbalit Rozbalit vše Re: Trocha zmatene...
Pre vsetky spominane fs mozes urobit mount - to ich zjednocuje ;-) . Cielom bolo popisat kedy, preco a ako (ne)pripajat rozne fs. Ale mas svoju pravdu.
23.4.2004 14:01 Luk
Rozbalit Rozbalit vše Re: Trocha zmatene...
Bohužel, loop není filesystém, nýbrž zařízení (je to /dev/loop0 apod., podobně např. jako /dev/hda1) - mezi FS bych ho nemíchal. Samozřejmě má svůj důležitý význam, jen asi nebyl nejlepší nápad zařadit ho mezi FS.
28.4.2004 08:28 mgolem
Rozbalit Rozbalit vše Re: Trocha zmatene...mozna
Vis, tvuj nazor je stejny jako skolni pristup. Mnoha lidem staci zhustene nakousnuti a zbytek si vydedukuji nebo pouziji man. Dulezite je naznaceni cesty a ne enciklopedicke razeni (podle hesel) znalosti. Mozna se clanek mohl jmenovat jinak, nebo mit jiny slovosled, ale dik za nej, zrovna tebou zminovany priklad pomuze mnoha lidem v praxi
23.4.2004 09:10 Tomáš | skóre: 31 | blog: Tomik
Rozbalit Rozbalit vše Jak na symbolické odkazy na CD
Odpovědět | Sbalit | Link | Blokovat | Admin
Hodlám vypálit CD se spoustou fotek. Protože probírání se všemi fotkami je nudné, obzvlášte, pokud je jich moc a jsou podobné, chci udělat i jakýsi výběr těch lepších.

Chtěl bych to řešit tak, že udělám adresář, kde budou symbolické (nebo i pevné) odkazy na některé fotky. Jak to mám udělat, aby to fungovalo na normálním systému a navíc i ve Woknech? Připravovat to budu pod Linuxem, ale většina lidí to bude asi prohlížet ve Woknech. Nějaké nápady? (Přes HTML jít nechci--to bych tam chtěl nacapt PHP a jsem na začátku - ve Woknech nemívají Apache)
23.4.2004 09:27 rastos | skóre: 62 | blog: rastos
Rozbalit Rozbalit vše Re: Jak na symbolické odkazy na CD
Nie je mi celkom jasne co potrebujes. Narazas na obmedzenie poctu poloziek v adresari?

Linky dostanes na ISO pouzitim Rock Ridge. Hoci osobnu skusenost nemam ani na Linux-e ani na Windows-och.

HTML stranku mozes pozerat aj bez web servera.

23.4.2004 09:37 Tomáš Janeček | skóre: 12
Rozbalit Rozbalit vše Re: Jak na symbolické odkazy na CD
a co zkusit udelat tu stranku v PHP a pak si ji pustit ve svem prohlizeci a zobrazit si zdrojovy kod stranky...ten pak zkopirujes a mas HTML stranku napsanou v PHP a spustitelnou i bez PERLu
Teda jestli jsi se neptal na tohle, asi budu za peknyho vola:)
Něco děsně chytrýho a vtipnýho
23.4.2004 10:28 Tomáš | skóre: 31 | blog: Tomik
Rozbalit Rozbalit vše Re: Jak na symbolické odkazy na CD
Ale jo, na to jsem se ptal. Je to reseni, ktere nechci delat. Vytvářet HTML je zbytečně pracné, obzvláště v tak hojném počtu. Navíc tam zcela jistě bude chyba (typu ,,vždyť tohle jsem přece chtěl vyhodit/přidat'') a prohlížení přes IExplorer je těžkopádné, když člověk má ACDSee (což můžu ve Woknech očekávat).

Ty symbolické/pevné odkazy budou v Linuxu fungovat bez problémů, ale tam si to prohlídnu sám. U ostatních nemůžu čekat, že nepoužívají Wokna.
23.4.2004 12:44 Martin
Rozbalit Rozbalit vše Re: Jak na symbolické odkazy na CD
Ahoj, taky jsem to tak chtel, ale funguje mi to jen v linuxu - klasickej RockRidge a simlinky. Ve voknech by to snad taky melo jit, jen zjistit jak funguje ten jejich zastupce. Ja jsem to resil tak, ze kdo si ty fotky chce prohlizet ve winech, musi projit vsechny nebo ma smulu.
23.4.2004 19:08 Petr Jakubec
Rozbalit Rozbalit vše Re: Jak na symbolické odkazy na CD
ale proc ne "hloupe" ale jednoduche html?

gThumb ci Krename a urcite mnoho dalsich to udelaji (ruznymi zpusoby za vas....

myslim, ze prave pro vyber z velkeho mnozstvi je to idealni. vykopirujete nekam ty co chcete zvyraznit udelate nad tim gthubem stranku a pak do toho adr. nakopirujete zbytek. pak iso a palit s joilet+rockridge a nemel by jste narazit na zadny problem... PJ
24.4.2004 16:49 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
Rozbalit Rozbalit vše Re: Jak na symbolické odkazy na CD
Pro Linux udelejte adresar se symlinky a pro Windows adresar s *.lnk soubory.
24.4.2004 22:59 Petr Adamek
Rozbalit Rozbalit vše Re: Jak na symbolické odkazy na CD
Pozijte normalni hardlinky, ty jsou podporovany primo v ISO9660 a budou tak fungovat i ve Windows. Bezne to pouzivam a kamaradi se pak divi, jak jsem na CD dostal treba 2GB fotek :-).

Akorat si dejte pozor, aby na vypalovane soubory nevedly i hardlinky odjinud (tj. z mista mimo vypalovany strom), dle manualove stranky si s tim mkisofs nemusi poradit. (BUG: Any files that have hard links to files not in the tree being copied to the iso9660 filesystem will have an incorrect file reference count.)
23.4.2004 10:54 Zajda
Rozbalit Rozbalit vše CD-RW a UDF
Odpovědět | Sbalit | Link | Blokovat | Admin
Dobrý den, chtěl bych se zeptat jak připojim do linuxu cd-rw ve formatu UDF abych na něj mohl zapisovat "jako na disketu"? Ve windows je k tomu třeba InCD od Nera. Děkuji
23.4.2004 11:38 rastos | skóre: 62 | blog: rastos
Rozbalit Rozbalit vše Re: CD-RW a UDF
Help v jadre 2.4 hovori:

UDF write support (DANGEROUS)
CONFIG_UDF_RW
Say Y if you want to test write support for UDF file systems. Due to lack of support for writing to CDR/CDRW's, this option is only supported for hard discs, DVD-RAM, and loopback files.

Teda: v 2.4 nie je podpora pre CDR/CDRW pre zapis.

23.4.2004 11:57 Michal
Rozbalit Rozbalit vše Re: CD-RW a UDF
potřebuješ patch a balík udftools. Postup je trochu složitější, najdeš ho tady Mně chodí výborně u kernelu 2.6.x.

Michal
23.4.2004 12:09 Michal
Rozbalit Rozbalit vše Re: CD-RW a UDF
zmíněná adresa pro rady nefunguje, tahle už ano
23.4.2004 11:16 kaaja
Rozbalit Rozbalit vše dotaz
Odpovědět | Sbalit | Link | Blokovat | Admin
Jakou ma vyhodu v prvnim pripad pouzivat loosetup oproti

mount -o loop soubor misto

V sifrovanem pripade tomu rozumim.
23.4.2004 11:50 rastos | skóre: 62 | blog: rastos
Rozbalit Rozbalit vše Re: dotaz
/dev/loop* funguju tak, ze losetup "zaberie" zariadenie pri "losetup /dev/loop0 /tmp/test.iso" a toto zariadenie nemozno asociovat s inym suborom az kym ho neuvolnis pomocou "losetup -d ...". "mount -o loop ..." sa pokusa automaticky najst prvy nealokovany /dev/loop*, navyse man stranka pre mount hovori: If you are not so unwise as to make /etc/mtab a symbolic link to /proc/mounts then any loop device allocated by mount will be freed by umount - teda pri odpojeni umount neuvolni prislusne /dev/loop zariadenie - neurobi ekvivalent "losetup -d ..." - ak ste /etc/mtab nahradili linkou do /proc/mounts (dufam, ze se som to prelozil dobre - blby dvojity zapor)
23.4.2004 11:35 Vojta Pichl | skóre: 20 | F-M
Rozbalit Rozbalit vše W2k3
Odpovědět | Sbalit | Link | Blokovat | Admin
Doplním, že pro připojení na W2k3 je potřeba podpory cifs (od 2.6 v jádře) př.: mount -t cifs //windows/adr /kam -o username=jmeno,password=heslo.
23.4.2004 12:25 Lada Petera
Rozbalit Rozbalit vše Super clanek
Odpovědět | Sbalit | Link | Blokovat | Admin
Diky za pekny clanek. Byl pro me prinosem. Uz dlouho se snazim prijit na nejaky jednoduchy zpusob, jak sifrovat dulezita data na disku. cryptoloop je presne to, co hledam.
23.4.2004 15:07 rastos | skóre: 62 | blog: rastos
Rozbalit Rozbalit vše Re: Super clanek
Radost Ti trocha pokazi fakt, ze treba najprv opatchovat utility losetup a spol. Drz sa dokumentov na tldp.org. Linka v clanku je zla - URL nema koncit s index.html - Leos/Robert mozete to opravit?
23.4.2004 15:23 Robert Krátký | skóre: 94 | blog: Robertův bloček
Rozbalit Rozbalit vše Re: Super clanek
opraveno
23.4.2004 19:01 Petr Jakubec
Rozbalit Rozbalit vše Re: Super clanek
no, to nebude tak horke (s tim patchovanim) vetsina hlavnich distro to uz ma v jadre. (napr. MDK to ma uz dlouho) PJ
23.4.2004 14:54 Jarda
Rozbalit Rozbalit vše Odemne taky pochvala, peknej clanek.
Odpovědět | Sbalit | Link | Blokovat | Admin
Odemne taky pochvala, peknej clanek.
23.4.2004 15:45 Drtic
Rozbalit Rozbalit vše Sambu i trochu jednoduseji
Odpovědět | Sbalit | Link | Blokovat | Admin
Jen pro upresneni misto slozitych obracenych lomitek, jejichz vyznam se musi vypinat uvedenim dalsich obracenych lomitek # smbmount -ousername=rastos \\\\srvr\\share /mnt/tmp lze sambovy share pripojit i "Unixovejsim" zpusobem. # smbmount -ousername=rastos //srvr/share /mnt/tmp
23.4.2004 23:21 Martin Čížek | skóre: 20 | Praha
Rozbalit Rozbalit vše smbmount a umisteni parametru -o
Odpovědět | Sbalit | Link | Blokovat | Admin
Nevim kterou verzi samba klienta pouzivate, ale u me smbmount (2.2.7a) vyzaduje umisteni parametru -o na konci (u obyc. mount-u je to jedno), tzn.

smbmount //server/share ~/mnt/share -o user=franta
Kdyby dva z nás byli dvěma z nich, všichni z nás by mohli být všemi z nich.
24.4.2004 03:14 Petr Mach
Rozbalit Rozbalit vše seznam zarizeni nebo fs
Odpovědět | Sbalit | Link | Blokovat | Admin
Me by zajimalo, jak mam zjistit, ktere vsechny souborove systemy nebo aspon diskova zarizeni mam k dispozici pro pripojeni.
Josef Kufner avatar 24.4.2004 21:52 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: seznam zarizeni nebo fs
grep user /etc/fstab
Hello world ! Segmentation fault (core dumped)
28.4.2004 02:47 Petr Mach
Rozbalit Rozbalit vše Re: seznam zarizeni nebo fs
To je pekna volovina. Me nezajima, kdo co pro usera nakonfiguroval, ale co vsechno vubec existuje. Treba prave proto, abych to mohl ve fstabu nakonfigurovat.
30.1.2005 14:53 jaro
Rozbalit Rozbalit vše Re: seznam zarizeni nebo fs
cat /proc/partitions ;)
24.4.2004 14:49 Vladimír
Rozbalit Rozbalit vše Dobrý článek, díky
Odpovědět | Sbalit | Link | Blokovat | Admin

Měl bych dotaz: Funguje to šifrování pod jádrem 2.6.x hned, nebo musím dělat patch?

A druhý dotaz:Používám twofish s k256. Je to dostatečně silná šifra, nebo by někdo doporučil lepší?

26.4.2004 16:13 pilgrim
Rozbalit Rozbalit vše Re: Dobrý článek, díky
No, IMHO by to stacit melo, ale taky si budu muset nekde vygooglit nejaky testy sifr. algoritmu. Osobne jedu podle doporuceni z cryptoloop HOWTO na aes-256, podle toho co v tech clancich psali, tak by mel byt asi jeden z nejrychlejsich a zatim nezlomenej.....

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.