Ubuntu server kettajao suuruse muutmine

From ICO wiki
Jump to navigationJump to search

Versiooniajalugu

v1.0 - 16.12.2010 - Esialgne versioon
v1.1 - 16.12.2010 - Käsud on tekstist rohkem esile toodud ning kirjeldatud on ka osad, mis on muutuvad vastavalt süsteemi eripäradele ning kasutaja vajadustele. Samuti lisatud viited.

Sissejuhatus

Käesolevas juhendis näidatakse, kuidas ilma graafiliste töövahenditeta muuta kettajao suurusi nii, et nendel olevad andmed ka säiliksid. Autor (Marko Popp) ei vastuta tekkinud probleemide eest, kuid soovitab siiski vajadusel juhendit kasutada.

Nõuded süsteemile

Antud lahendus on testitud Ubuntu Server 10.10 peal, kuid võib töötada ka teiste Ubuntu versioonidega ning muude Linuxi distributsioonidega. Failisüsteemideks on antud näites ext3. Soovituslik on Linuxi tundmine algtasemel.

Ettevalmistus

Esmalt tuleb end logida juurkasutajaks

sudo -i

Uurime, millised kettajaod hetkel olemas on Kettajagude suurus, arv, ühenduspunkt ja muud parameetrid on sõltuvad konkreetse süsteemi eripäradest.

df -h
fdisk -l

Näide:

root@popp:~# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             4.3G  2.2G  1.9G  55% /
none                  243M  232K  243M   1% /dev
none                  249M  224K  249M   1% /dev/shm
none                  249M   92K  249M   1% /var/run
none                  249M     0  249M   0% /var/lock
/dev/sda6             1.9G  193M  1.6G  11% /home/first
/dev/sda7             938M  133M  758M  15% /home/second
root@popp:~# fdisk -l

Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0000e9fe

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1         558     4480000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2             558        1045     3905537    5  Extended
/dev/sda5             558         680      976896   82  Linux swap / Solaris
/dev/sda6             680         923     1950720   83  Linux
/dev/sda7             923        1045      975872   83  Linux

Kettajao vähendamine

Edaspidi tuleb arvesse võtta muutmist vajavate kettajaod. Antud näites on need /dev/sda6 ja /dev/sda7, kuid vastavalt konkreetse süsteemi eripäradele võivad need olla midagi muud (näiteks /dev/sda1). Käskude võtmed ning parameetrid on muus osas samad.
Ühendame vähendatava kettajao lahti

umount /dev/sda6

Samuti kettajao, mida suurendama hakkame

umount /dev/sda7

Kontrollime mõlemad failisüsteemid üle

fsck -n /dev/sda6
fsck -n /dev/sda7

Näide:

root@popp:~# fsck -n /dev/sda6
fsck from util-linux-ng 2.17.2
e2fsck 1.41.12 (17-May-2010)
/dev/sda6: clean, 7994/121920 files, 56869/487680 blocks
root@popp:~# fsck -n /dev/sda7
fsck from util-linux-ng 2.17.2
e2fsck 1.41.12 (17-May-2010)
/dev/sda7: clean, 4160/61056 files, 37871/243968 blocks

Muudame failisüsteemid ext2-ks

tune2fs -O ^has_journal /dev/sda6
tune2fs -O ^has_journal /dev/sda7

Näide:

root@popp:/usr# tune2fs -O ^has_journal /dev/sda6
tune2fs 1.41.12 (17-May-2010)
root@popp:/usr# tune2fs -O ^has_journal /dev/sda7
tune2fs 1.41.12 (17-May-2010)

Kontrollime failisüsteemi:

e2fsck -f /dev/sda6
e2fsck -f /dev/sda7

Väljund:

root@popp:~# e2fsck -f /dev/sda6
e2fsck 1.41.12 (17-May-2010)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sda6: 7994/121920 files (0.1% non-contiguous), 48668/487680 blocks
root@popp:~# e2fsck -f /dev/sda7
e2fsck 1.41.12 (17-May-2010)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sda7: 4160/61056 files (0.0% non-contiguous), 33770/243968 blocks

Vähendame soovitud failisüsteemi vajaliku suuruseni. Siinjuures tuleb jälgida andmete säilimise pärast, et see ei oleks väiksem, kui viimati kasutuses olnud maht. Antud juhul mitte väiksem, kui 227M ning hetkel vähendame 300MB-ni.

resize2fs /dev/sda6 300M

Näide:

root@popp:~# resize2fs /dev/sda6 300M
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/sda6 to 76800 (4k) blocks.
The filesystem on /dev/sda6 is now 76800 blocks long.

Uue partitsioonitabeli loomine

Järgmiseks kustutame kettajao, ning loome uue ning väiksema. Antud juhul tuleb tähele panna uue partitsiooni loomisel last cylinder väärtust. Selle saame korrutades failisüsteemi plokkide arvu ja plokisuuruse, mille saime failisüsteemi vähendamise väljundist, omavahel ning lisame sellele umbes 5% lisaks, et olla kindel et uus partitsioon oleks piisavalt suur failisüsteemi jaoks. Ehk asendades arvud valemisse: 76800*4*1.05=322560(KB)
Partitsioonitabeli muutmine toimub vastavalt süsteemi eripäradele ning reeglina on alati erinev. Oluline on jälgida algus- ning lõppsilindrite asukohti ning kas tegemist on loogilise või primaarse kettajaoga. Vajalik käsk partitsioonitabeli muutmiseks on

fdisk /dev/sda

Näiteks:

root@popp:~# fdisk /dev/sda

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): d
Partition number (1-7): 6

Command (m for help): d
Partition number (1-6): 6

Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (680-1045, default 680): 
Using default value 680
Last cylinder, +cylinders or +size{K,M,G} (680-1045, default 1045): +322560K

Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (721-1045, default 721): 
Using default value 721
Last cylinder, +cylinders or +size{K,M,G} (721-1045, default 1045): 
Using default value 1045

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

Partitsioonitabel näeb nüüd välja järgmine. Jällegi võib see erineda vastavalt süsteemist.

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1         558     4480000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2             558        1045     3905537    5  Extended
/dev/sda5             558         680      976896   82  Linux swap / Solaris
/dev/sda6             680         720      324424+  83  Linux
/dev/sda7             721        1045     2604152+  83  Linux

Oluline on jälgida, et lisaks vähendatud kettajaole oleks ka suurendatud partitsioon õiges suuruses. Antud juhul on näha, et kettajao suurendamine on õnnestunud. Muudame mõlema partitsiooni failisüsteemid uuesti ext3-ks

tune2fs -j /dev/sda6
tune2fs -j /dev/sda7

Tulemus:

root@popp:~# tune2fs -j /dev/sda6
tune2fs 1.41.12 (17-May-2010)
Creating journal inode: done
This filesystem will be automatically checked every 39 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
root@popp:~# tune2fs -j /dev/sda7
tune2fs 1.41.12 (17-May-2010)
Creating journal inode: done
This filesystem will be automatically checked every 34 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

Kasutatud allikad ja viited

Lisaküsimuste tekkimisel ning tegevuste põhiolemusest arusaamiseks aitavad antud viited.

http://www.netadmintools.com/html/8tune2fs.man.html
http://www.howtoforge.com/linux_resizing_ext3_partitions
http://tldp.org/HOWTO/Partition/fdisk_partitioning.html
http://linux.die.net/man/8/fsck