Linux ‘da fdisk ve resize2fs ile dosya sistemini yeniden boyutlandırma

ÖNEMLİ: Diskinizin tümünü ve ya bir bölümü yeniden boyutlandırmadan önce lütfen verilerinizi yedekleyin! Verilerinizi kaybetmenizi istemeyiz.

Deneysel çalışmamızdaki sunucumuzun disk alanları şu şekildedir:

  • /dev/sda – 16GB system disk, LVM partition (root and swap)
  • /dev/sdb – 500 MB eğitim amaçlı eklenen bir disk alanı
[root@srv1 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_foo-LogVol01 13G  4.6G  7.7G  38% /
tmpfs                       376M     0  376M   0% /dev/shm
/dev/sda1                   485M  105M  355M  23% /boot
/dev/sdb1                   494M  402M   67M  86% /data

Adım 1: /dev/sdb alanını umount ediniz.

[root@srv1 ~]# umount /data/
[root@foo1 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_foo-LogVol01 13G  4.6G  7.7G  38% /
tmpfs                       376M     0  376M   0% /dev/shm
/dev/sda1                   485M  105M  355M  23% /boot

Adım 2: /dev/sdb alanını siliniz.

[root@srv1 ~]# fdisk /dev/sdb

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
Selected partition 1

Command (m for help): p

Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders, total 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x2dbb9f13

Device Boot      Start         End      Blocks   Id  System

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

Calling ioctl() to re-read partition table.
Syncing disks.

Adım 3: Eğer sanallaştıma kullanıyorsanız bu alana 500 MB alan daha ekleyiniz. Sonrasında yeni bir alan oluşturunuz.

[root@srv1 ~]# fdisk /dev/sdb

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): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First sector (2048-2097151, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-2097151, default 2097151): 
Using default value 2097151

Command (m for help): p

Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders, total 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x2dbb9f13

Device Boot      Start         End      Blocks   Id  System
/dev/sdb1        2048       2097151     1047552  83  Linux

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

Calling ioctl() to re-read partition table.

Şimdi aşağıdaki adımlarda resize2fs komutunu kullanarak dosya sistemini yeniden boyutlandırmamız gerekiyor.

Adım 4: Dosya sisteminizde fsck komutunu çalıştırınız.

[root@srv1 ~]# e2fsck -f /dev/sdb1
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/sdb1: 16/130560 files (0.0% non-contiguous), 426988/522080 blocks

Adım 5: resize2fs komutu ile dosya sisteminizi yeniden boyutlandırın. (500 MB’dan >> 1 GB ‘a)

[root@srv1 ~]# resize2fs /dev/sdb1 
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/sdb1 to 1044192 (1k) blocks.
The filesystem on /dev/sdb1 is now 1044192 blocks long.

Adım 6: Boyutu değişen disk alanını yeniden mount ediniz.

[root@srv1 ~]# mount /dev/sdb1 /data/
[root@srv1 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_foo-LogVol01  13G  4.6G  7.7G  38% /
tmpfs                        376M     0  376M   0% /dev/shm
/dev/sda1                    485M  105M  355M  23% /boot
/dev/sdb1                    988M  402M  536M  43% /data

Hiçbir veri kaybolmadı ve bölüm başarıyla genişletildi!

Bir Bölümü ve ya Dosya Sistemini Azaltma – Düşürme

Mevcut disk yapılandırmasını gözden geçirelim, data alanı azaltmak istediğimiz bölümdür. Bölümün 988MB kullanılabilir alanı olduğunu ve verilerin 324MB kullandığını görebiliriz. Senaryyomuz şu şkilde olsun, bölümümüzü veri kaybetmeden 400 MB’ye düşürmek istiyoruz:

[root@srv1 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_foo-LogVol01  13G  4.6G  7.7G  38% /
tmpfs                        376M     0  376M   0% /dev/shm
/dev/sda1                    485M  105M  355M  23% /boot
/dev/sdb1                    988M  324M  614M  35% /data

Partitionu umont edelim:

[root@srv1 ~]# umount /data/
[root@srv1 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_foo-LogVol01 13G  4.6G  7.7G  38% /
tmpfs                       376M     0  376M   0% /dev/shm
/dev/sda1                   485M  105M  355M  23% /boot

fsck komutunu yürütelim:

[root@srv1 ~]# e2fsck -f /dev/sdb1
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/sdb1: 15/261120 files (0.0% non-contiguous), 363953/1044192 blocks

Dosya sistemini resize2fs ile yeniden boyutlandıralım:

[root@srv1 ~]# resize2fs /dev/sdb1 400M
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/sdb1 to 409600 (1k) blocks.
The filesystem on /dev/sdb1 is now 409600 blocks long.

Partition ‘u silelim:

[root@srv1 ~]# fdisk /dev/sdb

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
Selected partition 1

Command (m for help): p

Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 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: 0x2dbb9f13

Device Boot      Start         End      Blocks   Id  System

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

Calling ioctl() to re-read partition table.
Syncing disks.

Daha küçük bir partition oluşturalım.

[root@srv1 ~]# fdisk /dev/sdb 

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): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-130, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-130, default 130): +400M 

Command (m for help): p

Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 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: 0x2dbb9f13

Device Boot      Start         End      Blocks   Id  System
/dev/sdb1           1          52      417658+   83  Linux

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

Calling ioctl() to re-read partition table.
Syncing disks.

Son olarak disk alanını mount edelim:

[root@srv1 ~]# mount /dev/sdb1 /data/
[root@srv1 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_foo-LogVol01  13G  4.6G  7.7G  38% /
tmpfs                        376M     0  376M   0% /dev/shm
/dev/sda1                    485M  105M  355M  23% /boot
/dev/sdb1                    388M  323M   45M  88% /data

Hiçbir veri kaybolmadı ve bölüm başarıyla azaltıldı!

Kolay Gelsin.

Yeteneklerini kullanarak başarılı olan insanlarla bir sorunum yok, sadece başarının en üst hedef olmadığını düşünüyorum. Özgürlük, bilginin paylaşılması - genişlemesi başarının, kişiselliğin ötesinde şeyler. Kişisel başarı yanlış değil ama etkisi sınırlanmış, eğer gerektiği kadarını elde ettiyseniz hala bunun için açlık duymak ayıp, tabii doğruluk, güzellik ve adalet için durum tam tersi. / Richard Stallman