Erinevus lehekülje "Linux mount" redaktsioonide vahel

Allikas: Kuutõrvaja
(ext3 failisüsteemi suuruse muutmine)
(ext3 failisüsteemi suurendamine)
375. rida: 375. rida:
 
====ext3 failisüsteemi suurendamine====
 
====ext3 failisüsteemi suurendamine====
  
* suurendame voluumi 8 GB suuruseks
+
* suurendame algselt 4 GB voluumi 8 GB suuruseks
  
 
   # lvresize -L8G /dev/test/vol1
 
   # lvresize -L8G /dev/test/vol1
  
* Suurendame voluumi snapshoti 8 GB suuruseks
+
* suurendame failisüsteemi täitma kogu uue suurusega voluumi online'is st failisüsteemi on suurendamise ajal külge ühendatud
  
   # lvresize -L8G /dev/dev/vol1_snapshot
+
   # resize2fs -p /dev/test/vol1
  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
+
-p näitab progressi ning kui viimaseks argumendiks näidata arv, nt 6G, siis see määraks tekkiva failisüsteemi suuruse.
  
 +
* failisüsteemi suurendamiseks lahtiühendatud olekus tuleb esmalt teha fsck ning seejärel resize2fs, nt nii
 +
 +
  # umount /dev/test/vol1
 +
  # e2fsck -f /dev/test/vol1
 
   # resize2fs -p /dev/test/vol1
 
   # 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.
 
  
 
====ext3 failisüsteemi vähendamine====
 
====ext3 failisüsteemi vähendamine====

Redaktsioon: 13. september 2009, kell 13:23

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

ext3 failisüsteemi suurendamine

  • suurendame algselt 4 GB voluumi 8 GB suuruseks
 # lvresize -L8G /dev/test/vol1
  • suurendame failisüsteemi täitma kogu uue suurusega voluumi online'is st failisüsteemi on suurendamise ajal külge ühendatud
 # 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.

  • failisüsteemi suurendamiseks lahtiühendatud olekus tuleb esmalt teha fsck ning seejärel resize2fs, nt nii
 # umount /dev/test/vol1
 # e2fsck -f /dev/test/vol1
 # resize2fs -p /dev/test/vol1

ext3 failisüsteemi vähendamine

  • 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.

XFS failisüsteemi kasutamine

XFS http://oss.sgi.com/projects/xfs/ on kaasaegne failisüsteem, kasutamiseks tuleb paigaldada xfs utiliidid öeldes

# emerge xfsprogs

Failisüsteemi moodustamiseks seadmele /dev/xvda2 sobib öelda

 # mkfs.xfs /dev/xvda2 
 meta-data=/dev/xvda2             isize=256    agcount=4, agsize=786432 blks
          =                       sectsz=512   attr=2
 data     =                       bsize=4096   blocks=3145728, imaxpct=25
          =                       sunit=0      swidth=0 blks
 naming   =version 2              bsize=4096  
 log      =internal log           bsize=4096   blocks=2560, version=2
          =                       sectsz=512   sunit=0 blks, lazy-count=0
 realtime =none                   extsz=4096   blocks=0, rtextents=0

XFS failisüsteemi kasutamisega on seotud sellised nn tuuma lõimed

 # ps aux | grep xfs
 root      4334  0.0  0.0      0     0 ?        S<   23:40   0:00 [xfslogd/0]
 root      4336  0.0  0.0      0     0 ?        S<   23:40   0:00 [xfslogd/1]
 root      4337  0.0  0.0      0     0 ?        S<   23:40   0:00 [xfsdatad/0]
 root      4338  0.0  0.0      0     0 ?        S<   23:40   0:00 [xfsdatad/1]
 root      4339  0.0  0.0      0     0 ?        S<   23:40   0:00 [xfs_mru_cache]
 root      4382  0.0  0.0      0     0 ?        S<   23:44   0:00 [xfsbufd]
 root      4384  0.0  0.0      0     0 ?        S<   23:44   0:00 [xfsaild]
 root      4385  0.0  0.0      0     0 ?        S<   23:44   0:00 [xfssyncd]

64 bit keskkonnas võib xfs kasutamisel tekkida sarnaseid probleeme, mida kirjeldab vestluslõim aadressil http://oss.sgi.com/archives/xfs/2005-06/msg00347.html.

Failisüsteemi automaatseks külgeühendamiseks sobib /etc/fstab failis kasutada nt rida

 TODO

Reiser failisüsteemi kasutamine

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. AUFS kasutamiseks tuleb paigaldada tuuma moodul ja utiliidid

 # apt-get install aufs-modules-2.6-amd64 aufs-tools

Kasutamine toimub nt selliselt

 # mount -t aufs -o dirs=/tmp/src/essa:/tmp/src/tessa none /tmp/dst

Kasulikud lisamaterjalid