Erinevus lehekülje "Linux mount" redaktsioonide vahel
(→kpartx utiliidi kasutamine) |
(→Reiserfs) |
||
413. rida: | 413. rida: | ||
/dev/cciss/c0d0p2 /srv reiserfs rw 0 0 | /dev/cciss/c0d0p2 /srv reiserfs rw 0 0 | ||
+ | |||
+ | ===Mount bind=== | ||
+ | |||
+ | nn mount bind võimaldab sama kataloogi sisu teha nähtavaks failisüsteemis mitmes kohas | ||
+ | |||
+ | # mount --bind /tmp/src /tmp/dst | ||
+ | |||
+ | ===AUFS=== | ||
+ | |||
+ | AUFS (Another Union File System) võimaldab koondada erinevate kataloogide sisu nähtavale ühe kataloogi alla. | ||
+ | |||
+ | # mount -t aufs -o dirs=/tmp/src/essa:/tmp/src/tessa none /tmp/dst |
Redaktsioon: 12. mai 2009, kell 09:57
Sisukord
Sissejuhatus
Õigupoolest peaks sellest asjast kõnelema failisüsteemi teema juures, aga kuivõrd see on oluline ja praktiline asi, siis ei ole ehk tähelepanu pööramine liiast. Nagu teada asuvad Linux'i puhul kõik failid ühtses kataloogipuus (aga nt. MS Windows'ites kasutatakse partitsioonide tähistamiseks nn. kettatähti: A, B on pehmeketta seadmed ja C, D, E ... Z - kõvaketaste partitsioonid).
Linuxi puhul on tähelepanuväärne see, et ta suudab lugeda ja kirjutada peale enda Second Extended (ext2) failisüsteemi ka paljusid teisi levinud failisüsteeme (mh. FAT pikkade ja lühikeste nimedega, OS2 HPFS, minix). Et see tõesti nii oleks on vaja vastavad asjad kernelisse sisse või mooduliteks kompileerida. Soovitavalt mooduliteks. Muuseas, moodulid asuvad kataloogis /lib/modules/... ja kui seal on nt. fail vfat.o, siis on tõenäoliselt võimalik lugeda kirjutada W95 partitsiooni. Seda kas moodul on kasutusel saab näha käsuga lsmod; ja kui ei ole kasutusel, siis aitab käsk modprobe vfat. Jne.
Linux käsitleb pehme- ja kõvakettaid kaunis võrdväärsete seadmetena. Vähemalt selles mõttes, et enne floppy ketta seadmesse panekut ja peale väljavõtmist tuleb täita samad käsud,et mis kõvaketta juurde ja tagant ühendamisel.
Toome kohe ära sammud mida tuleb läbida selleks et infokandjale kirjutada/lugeda alustades algusest.
(Konkreetsed näited puutuvad floppy ketast)
1. Seade (CD-ROM, HDD, Floppy) tuleb füüsiliselt arvutisse ühendada 2. Vajadusel sisestage sinna infokandja (floppy, cdrom) 3. Vajaduse formaatige (low-level)
floppy ketas: fdformat /dev/fd0 kõvaketas : CMOS SETUP'ist või veel parem tehases cdrom : read - only medium
4. kontrollige kas seadmel on bad block'e:
bash# badblocks -v /dev/fd0
5. teke kettale fsck:
bash# fsck /dev/fd0
4. Vajadusel looge failisüsteem
kõvaketta ja floppy peale nii:
süsteemi tüüp käsk ext2 mke2fs /dev/fd0 ext2 mke2fs /dev/hda1 msdos mkdosfs - " - (praktiliselt soovitatakse teha vastav partitsioon ja failisüsteem dos'i enda fdiski ja format'iga)
5. Looge mount point ehk kataloog kuhu alla seadme failisüsteem läheb
kõigi seadmete puhul
mkdir /soovitud_nimi
nt. mkdir /a mkdir /floppy mkdir /hda2_ext mkdir /hda3_msdos mkdir /hda4_vfat
6. Mount'ime seadme külge:
vastavalt mountitavale süsteemile tuleb teist parameetrit muuta:
failisüsteem käsk ext2 (linux) mount -t ext2 /dev/fd0 /floppy iso9660 (cdrom) iso9660 /dev/hda2 /hda2_ext2 msdos (lühikesed nimed) msdos /dev/hda3 /hda3_msdos vfat (pikad nimed) vfat /dev/hda4 /hda4_vfat image failid vfat -o loop /img.fail /a
7. Toimetame oma asjad failidega
8. Umount'ime seadme:
umount /dev/fd0
9. Alles nüüd võib floppy või cd -rom'i plaadi välja võtta
Allpool on toodud erinevate seadmete puhul olulisi tähelepanekuid.
2. Floppy kettad
Floppy'de peale tehakse tavaliselt kas vfat, msdos, ext2 või ei tehtagi failisüsteemi. Viimasel juhul kantakse info sinna/sealt:
dd if=/bare.i of=/dev/fd0 dd if=/dev/fd0 of=/disk.image.144
Need mainitud failisüsteemid peavad olema kernelis või moodulitena olemas
modprobe vfat modprobe msdos
Allpool on näiatud kuidas image faile mountida.
CD-ROM
CD-ROM'i dele kirjutatakse tavaliselt iso9660 failisüsteem. Ja seadmed ise on nn. IDE-ATAPI tüüpi. Et nendega tegelda tuleb vastav asi kernelisse kompileerida ja moodul vajadusel laadida 'modprob iso9660'
Füüsiliselt on vahest vaja seade ka arvutile külge ühendada
Samasugune on lugu ka kõvaketta partitsioonidega:
Lülitage arvutil vool välja, ühendage kõvaketas juurde, vajadusel paigutage jumpereid ümber ja detectige CMOS SETUP'ist uus vint ära. Seejärel bootige linux üles ja samad sammud nagu floppy puhul.
CDROM -iga on sama asi: kui CD peab enne mountimist sees olema ja seda ei tohi välja võtta enne umount'i.
Kõvaketas
Kõvaketta partitsioonide mountimine toimub sarnaselt eeltoodutele. Kõvakettaga tegelemisel on linuxi puhul tänuväärne see, et isegi partitsioonide ja failisüsteemide muutmisel ei pea arvutit rebootima nagu, praegu ei tule keelele, aga on üks teine OS.
Külla aga saab badblocks'iga kontrollida bad blocke. Ja vee on üks abiks programm:
bash# fuser -v -m /dev/hda6 USER PID ACCESS COMMAND /dev/hda6 root 1 .rce. init root 9 .rce. update root 10 frce. kerneld root 30 frce. kerneld root 65 .rce. klogd root 66 frce. syslogd root 68 frce. rpc.portmap root 70 frce. inetd root 72 .rce. rpc.mountd root 74 .rce. rpc.nfsd root 76 frce. crond root 82 frce. sendmail root 89 frce. bash root 90 frce. agetty root 91 frce. agetty root 92 frce. agetty root 93 frce. agetty root 94 frce. agetty
Teadupärast annavad käsub umount ja mount vahet busy veateate - siit on aga näha mis seis on.
Ning käsk fsck (file system check) võimaldab kontrollida failisüsteemi korrasolekut. NB! enne tuleb failisüsteem umount'ida.
bash# fsck /dev/hda8 Parallelizing fsck version 1.10 (24-Apr-97) e2fsck 1.10, 24-Apr-97 for EXT2 FS 0.5b, 95/08/09 /dev/hda8 is mounted. Do you really want to continue (y/n)? no check aborted. bash# umount /dev/hda8 bash# fsck /dev/hda8 Parallelizing fsck version 1.10 (24-Apr-97) e2fsck 1.10, 24-Apr-97 for EXT2 FS 0.5b, 95/08/09 /dev/hda8: clean, 5358/665840 files, 605366/665248 blocks
Image file
See on tõeliselt 'weird'- linux võimaldab mountida image file. Toome näite floppy kohta:
1. teeme /dev/fd0 -s olevat vfat failisüsteemiga floppyst image faili (floppy ei pruugi olla mountitud)
selleks on kolm võimalust, kasutage vaid ühte!
bash# cat /dev/fd0 > /img.144 bash# dd if=/dev/fd0 of=/img.144 bash# cp /dev/fd0 /img.144
2. veendume, et kernelis on loobback sees (mitte see mis puutub network'i :)
make menuconfig; Floppy, IDE and other block devices -> Loopback device support vajadusel modprobe loop
3. mountime image faili /a alla
bash# mount -t vfat -o loop /img.144 /a mount: Could not find any loop device, and, according to /proc/devices, this kernel does not know about the loop device. (If so, then recompile or `insmod loop.o'.) bash# modprobe loop bash# mount -t vfat -o loop /img.144 /a bash# df Filesystem 1024-blocks Used Available Capacity Mounted on /dev/hda6 991000 895730 44066 95% / /dev/hda2 1023856 996400 27456 97% /nt.40 /dev/hda5 310264 292016 18248 94% /os2 /img.144 1423 1111 312 78% /a
Ja töö lõpetamisel umount!
4. seadme image kasutamine
Järgnev kehtib eeldusel, et toimetamised mahuvad ära nn 32bit sisse.
Olgu kõvakettaseadmel /dev/hdb kolm partitsiooni ning on tehtud kogu seadmest image fail
bash# fdisk -l -u hdb.img ... 34 heads, 61 sectors/track, 0 cylinders, total 0 sectors Units = sectors of 1 * 512 = 512 bytes Device Boot Start End Blocks Id System hdb.img1 61 232287 116113+ 83 Linux hdb.img2 232288 485315 126514 83 Linux hdb.img3 485316 549609 32147 83 Linux
Soovides ühendada külge sellest image failist teisel partitsioonil olevat failisüsteemi, tuleb öelda
mount -o loop,offset=118931456 hda.img /yhenduspunkt
arvestades asjaolu, et 512*232288 = 118931456
Suured kataloogid eraldi partitsioonidel
Niisiis oletame, et meil on kaks kõvaketast partitsioonidega:
/dev/hda1 - swap, 96 M /dev/hda2 - root, 600 M /dev/hda3 - /home, kasutajate kodukataloogid, 2 000 M /dev/hdb1 - /usr kataloogi alla jäävad failid 1200 M
Selgitused:
swap on arvuti nö. mälu pikendus ja seda kasutab ta 'iseenesest' peale inistsialiseerimist rc scriptides:
mkwap /dev/hda1 swapon /dev/hda1
root on see partitsioon kus asub kernel /vmlinuz ja enamus juurika kataloogidest (/etc, /bin, /root, /dev)
Tavaliselt on nii, et kasutajate kodukataloogid moodustavad küllalt suure struktuuri ja süsteemi uuendamisel või ümbersättimisel on mugavam, kui see asub kas füüsiliselt erineval kettal või vähemalt eraldi partitsioonil mida on nii kergem backup'pida.
Toodud näite olukorra kohta öeldakse, et hda3 on mount'itud juurika /home kataloogiks. Seda tehakse praktiliselt nii:
1. luuakse juurikale tühi /home kataloog: (Tõsi, tavaliselt on ta sel olemas, sel juhul tuleks tema sisu kopeerida teise nime alla: ) mkdir /home (mv /home /home_old; mkdir /home) 2. Mountime tühja failisüsteemiga partitsiooni /dev/hda3 -e /home -ks mount -t ext2 /dev/hda3 /home 3. Vajadusel liigutame vana tagasi: mv /home_old /home
Tulemuseks on see, et failid mis asuvad /home'ist allpool asuvad reaalselt teises partitsioonis kui muu juurikas.
Sarnaselt on toimitud /usr kataloogiga.
/etc/fstab
See on fail kus on kirjas millised kataloogid mountida külge süsteemi bootimisel; tüüpiliselt näeb see fail välja selline:
/dev/hda7 swap swap defaults 0 0 /dev/hda6 / ext2 defaults,usrquota 0 1 /dev/hda2 /nt.40 vfat defaults 0 2 /dev/hda5 /os2 vfat defaults 0 2 /dev/hda8 /hda8 ext2 defaults 0 2 /dev/fd0 /floppy ext2 noauto 0 0 /dev/fd0 /a vfat noauto 0 0 /dev/hdd /cdrom iso9660 ro,noauto 0 0 none /proc proc defaults 0 0 laura:/ /fromlaura nfs noauto,rsize=8192,wsize=8192,timeo=14,intr 0 0
Selgitused:
tulp
1: seade kus füüsiliselt mountitav asi asub 2: kataloog kuhu seade läheb 3: failisüsteem 4: nn. optionid 5: dump info 6: fsck info
optionid:
defaults on defaults noauto tähendab, et failisüsteemi ei laeta kohe külge aga hiljem piisab anda nt vfat floppy jaoks käsk: mount /a ro on 'read only' usrquota näitab, et seadet kontrollib quota
eelviimane tulp:
soovitatakse panna tavaliselt 0, seda väärtust kasutab program dumpe2fs oma salapärastel eesmärkidel
viimane tulp:
root'il soovitatakse panna 1 teistel 2
need arvud näitavad check'imise järjekorda bootimisel omal moel. Kui panna 0 siis fsck ei pööra talle tähelepanu. Muide, fstab-i failisüsteemid laadib /etc/rc.d/rc.S -i rida
/sbin/mount -avt nonfs
losetup
Programmiga losetup saab korraldada faili käsitlemise plokkseadmena. Näiteks moodustame faili
# dd if=/dev/zero of=/data/plokkseadmefail.img bs=1024x1024 count=4x1024
ning seostame ta seadmega /dev/loop0
# losetup /dev/loop0 /data/plokkseadmefail.img
Kõiki losetup abil tekitaud plokkseadmeid näeb käsuga
# losetup -a /dev/loop0: [fe0c]:22439673 (/data/plokkseadmefail.img)
Seadet /dev/loop0 saab käsitleda seejärel nagu tavalist plokkseadet, näiteks saab sinna moodustada failisüsteemi, tekitada partitsioone, kasutada mdadm või lvm juures.
Moodustatud plokkseadme saab eemaldada öeldes
# losetup -d /dev/loop0
kpartx utiliidi kasutamine
Mitmeid partitsioone sisaldava tõmmisfaili kasutamiseks on abi programmist kpartx
# apt-get install kpartx
Tõmmisest partitsioonide nimekirja küsimine
# kpartx -l tommisefailinimi.img loop1p1 : 0 19631367 /dev/loop1 63
Tõmmise partitsioonidele vastavate seadmete tekitamiseks tuleb öelda
# kpartx -a tommisefailinimi.img
Tekkinud seadmete kasutamiseks, nt külge ühendamiseks sobib öelda
# mount -o ro /dev/mapper/loop1p1 /mnt/tommis-hda1
Mäppingute kustutamine
# kpartx -d tommisefailinimi.img loop deleted : /dev/loop0
Krüptitud plokkseadme kasutamine
Kõvakettal olevaid andmeid saab krüptida mitmes kihis, alates plokkseadme plokkidest (need 512B suurused tükid) kuni failisüsteemis asuvate üksikute failide krüptimiseni. Järnev käsitleb plokkseadme (nt partitsiooni või LVM voluumi) krüptimist
Paigaldage vajalik tarkvara
# apt-get install cryptsetup
Eeldusena peab olema kasutada partitsioon või LVM voluum, näiteks /dev/sda2
# cryptsetup -y create data /dev/sda2 Enter passphrase: Verify passphrase:
Moodusteme failisüsteemi
# mke2fs -j /dev/mapper/data
Ning ühendame külge
# mount /dev/mapper/data /data
Selleks, et alglaadimisel toimuks failisüsteemi külgeühendamine automaatselt tuleb sisestada faili /etc/crypttab rida
data /dev/sda2 none cipher=aes
Ning faili /etc/fstab rida
/dev/mapper/data /data ext3 defaults 0 1
Alglaadimise käigus küsitakse parooli ja seejärel toimub krüptitud failisüsteemi kasutamine nagu tavalise failisüsteemi puhul.
ext3 failisüsteemi suuruse muutmine
Plokkseadmele moodustatud ext3 failisüsteemi suurust saab muuta resize2fs utiliidi abil kusjuures praktiliselt on tarvis reeglina võimalust muuta failisüsteemi all oleva plokkseadme suurust. Ehk kõige mugavam on seda teha kui failisüsteem asub LVM voluumil.
Näiteks on võimalik selline järgnevus
- tekitame voluumi suurusega 4 GB
# lvcreate -L4G -n vol1 test
- moodustame voluumile failisüsteemi
# mke2fs -j /dev/test/vol1
- suurendame voluumi 8 GB suuruseks
# lvresize -L8G /dev/test/vol1
- Suurendame voluumi snapshoti 8 GB suuruseks
# lvresize -L8G /dev/dev/vol1_snapshot Extending logical volume vol1_snapshot to 8.00 GB Logical volume vol1_snapshot successfully resized
- suurendame failisüsteemi täitma kogu uue suurusega voluumi, võimalusel võiks suurendamise ajal failisüsteemi lahti ühendada
# resize2fs -p /dev/test/vol1
-p näitab progressi ning kui viimaseks argumendiks näidata arv, nt 6G, siis see määraks tekkiva failisüsteemi suuruse.
- vähendame failisüsteemi maksimaalselt väikesele suurusele
# e2fsck -f /dev/test/vol1 # resize2fs -M /dev/test/vol1
Vähendame 8 GB suuruse failisüsteemi, mis kasutab 1.5 GB suurusele 2GB
# resize2fs /dev/test/vol2 2G
Oluline on tähele panna, et failisüsteem ei pruugi kasutada kogu plokkseadet.
Reiserfs
Failisüsteemi plokkseadmele moodustamiseks tuleb süsteemipaigaldada reiserfsprogs pakett
# apt-get install reiserfsprogs
ja öelda näiteks
# mkreiserfs /dev/cciss/c0d0p2
/etc/fstab failis tuleb vastavalt kasutada rida
/dev/cciss/c0d0p2 /srv reiserfs rw 0 0
Mount bind
nn mount bind võimaldab sama kataloogi sisu teha nähtavaks failisüsteemis mitmes kohas
# mount --bind /tmp/src /tmp/dst
AUFS
AUFS (Another Union File System) võimaldab koondada erinevate kataloogide sisu nähtavale ühe kataloogi alla.
# mount -t aufs -o dirs=/tmp/src/essa:/tmp/src/tessa none /tmp/dst