Ubuntu server kettajao suuruse muutmine
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