Linux Disk Yönetimi

Linux Disk Yönetimi

 

Linux işletim sisteminin,disk bölüm yapısı ve desteklediği dosya sistemlerine önceki bölümde değinilmiştir. Bu bölümde disk bölümü(partition) oluşturma, disk bölümü biçimleme(format) ve disk yönetimi konuları ele alınacaktır.

 

Sisteme bağlı diskler ve bu disklerin bölüm yapıları hakkında bilgi edinmek için fdisk komutunu kullanabiliriz.

 

Dikkat : fdisk komutunu kullanırken çok dikkatli olmak gerekir aksi halde disk/diskler üzerindeki tüm bilgiler kaybedilebilir.

 

[root@lnx ~]# fdisk -l

 

Disk /dev/hda: 80.0 GB, 80026361856 bytes

255 heads, 63 sectors/track, 9729 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System

 

/dev/hda1 * 1 4079 32764536 7 HPFS/NTFS

 

/dev/hda2 4080 6884 22531162+ 83 Linux

 

/dev/hda3 6885 7015 1052257+ 82 Linux swap

 

/dev/hda4 7016 9729 21800205 83 Linux

 

Disk /dev/hdd: 40.0 GB, 40020664320 bytes

 

255 heads, 63 sectors/track, 4865 cylinders

 

Units = cylinders of 16065 * 512 = 8225280 bytes

 

Device Boot Start End Blocks Id System

 

/dev/hdd1 1 4864 39070048+ 7 HPFS/NTFS
Yukarıda görüldüğü üzere sisteme bağlı iki disk bulunmaktadır. Bu disklerden ilki hda’dır. Üzerinde 4 disk bölümü (partition) bulunduruyor. Bunlar “Device” başlığı altında sıralanmıştır. Bir sonraki başlık “Boot” başlığıdır ve sistemin başlatıldığı disk bölümünü işaret etmektedir. Daha sonra gelen başlıklar bölümlerin disk üzerinde başlangıç ve bitiş silindirlerini ve blok sayılarını göstermektedir. “Id” ve “system” başlıkları ise disk bölümünün bölüm tipini belirtir. Üzeride değişiklik yapmak için 2 numaralı(hdd) diski seçeceğiz. Bunu için

[root@lnx ~]# fdisk /dev/hdd

 

The number of cylinders for this disk is set to 4865.

 

There is nothing wrong with that, but this is larger than 1024,

 

and could in certain setups cause problems with:

 

1) software that runs at boot time (e.g., old versions of LILO)

 

2) booting and partitioning software from other OSs

(e.g., DOS FDISK, OS/2 FDISK)

 

Command (m for help):
Bilgi almak için (m) yazdıktan sonra enter tuşuna basıyoruz.

 

Command (m for help): m

 

Command action

 

a toggle a bootable flag

b edit bsd disklabel

 

c toggle the dos compatibility flag

 

d delete a partition

 

l list known partition types

 

m print this menu

 

n add a new partition

 

o create a new empty DOS partition table

 

p print the partition table

 

q quit without saving changes

 

s create a new empty Sun disklabel

 

t change a partition’s system id

 

u change display/entry units

 

v verify the partition table

 

w write table to disk and exit

 

x extra functionality (experts only)

 

Biz yeni eklediğimiz disk üzerinde yeni bir linux disk bölümü oluşturmak istiyoruz. Yeni bölümü oluşturmadan önce var olan bölümlendirmeyi görmek için (p) tuşluyoruz.

Command (m for help): p

 

Disk /dev/hdd: 40.0 GB, 40020664320 bytes

 

255 heads, 63 sectors/track, 4865 cylinders

 

Units = cylinders of 16065 * 512 = 8225280 bytes

 

Device Boot Start End Blocks Id System

 

/dev/hdd1 1 4864 39070048+ 7 HPFS/NTFS

 

Diskte yeni bir Linux bölümü oluşturmak için diskte var olan ntfs bölümü kaldırmalıyız. Bunu için menüden (d) tuşluyoruz. Tek bir disk bölümü olduğu için o bölümü hemen silecektir. Eğer birden fazla bölüm olsaydı , bize hangi bölümü silmek istediğimizi soracaktı.

Command (m for help): d

 

Selected partition 1

 

Command (m for help): p

 

Disk /dev/hdd: 40.0 GB, 40020664320 bytes

 

255 heads, 63 sectors/track, 4865 cylinders

 

Units = cylinders of 16065 * 512 = 8225280 bytes

 

Device Boot Start End Blocks Id System

 

Şimdi yeni bir disk bölümü oluşturabiliriz. Bunu için menüden (n) tuşluyoruz ve karşımıza oluşturacağımız disk bölümünün birincil disk bölümü mü yoksa uzatılmış bir bölüm mü olacağını soran bir mesaj çıkacak. Bu mesajı (p) tuşuna basarak yanıtlıyoruz. Daha sonra oluşturacağımız bölümün numarası ve boyutu ile ilgili ayarları giriyoruz. Bu ayarlarda girildikten sonra bölüm bilgisini görüntülemek için tekrar (p) tuşluyoruz. Eğer işler yolunda gittiyse çıktı aşağıdaki gibi görünecektir.

Command (m for help): n

 

Command action

 

e extended

 

p primary partition (1-4)

p

Partition number (1-4): 1

 

First cylinder (1-4865, default 1): 1

 

Last cylinder or +size or +sizeM or +sizeK (1-4865, default 4865): +10000M

 

Command (m for help): p
Disk /dev/hdd: 40.0 GB, 40020664320 bytes

 

255 heads, 63 sectors/track, 4865 cylinders

 

Units = cylinders of 16065 * 512 = 8225280 bytes

 

Device Boot Start End Blocks Id System

 

/dev/hdd1 1 1217 9775521 83 Linux

 

Aslında şu ana kadar yapılan tüm ayarlar henüz diske uygulanmadı. Menüde (w) tuşuna basılırsa yaptığımız ayarlar uygulanır. Eğer (q) tuşuna basılırsa ayarlar uygulanmadan fdiskten çıkılır. Ayarları uygulamak için (w) tuşuna basıyoruz.

Command (m for help): w

 

The partition table has been altered!

 

Calling ioctl() to re-read partition table.

Syncing disks.

 

Buraya kadarki adımlar bir disk bölümü oluşturmak için yapılan uygulamalardı. Disk bölümü henüz kullanıma hazır değildir. Diski kullanabilmek için uygun bir dosya sistemi ile diski biçimlendirmek gerekir. Disk bölümü biçimlendirmek için mkfs aracını kullanacağız.

Dikkat: Dosya sistemi desteğinin çekirdekten geldiğini unutmayın. Eğer kullanmayı planladığınız dosya sisteminin çekirdek desteği yoksa o dosya sistemini kullanamazsınız. İkinci olarak oluşturduğumuz disk bölümünü biçimlendirmek için uygun araçlara sahip olmanız gerekir. Çekirdek desteği olsa dahi bu araçlara sahip değilseniz disk bölümü biçimlendiremezsiniz. Varsayılan çekirdekte reiserfs, xfs, jfs gibi dosya sistemleri için destek bulunmaz. Centos sitesinde yukarıda saydığımız dosya sistemlerinin desteğini içeren Linux çekirdeklerini ve araçlarını sağlamaktadır.

http://mirror.centos.org/centos/4/centosplus/i386/RPMS/
[root@lnx ~]# mkfs.ext3 /dev/hdd1

 

mke2fs 1.35 (28-Feb-2004)

 

Filesystem label=

 

OS type: Linux

 

Block size=4096 (log=2)

 

Fragment size=4096 (log=2)

 

1224000 inodes, 2443880 blocks

 

122194 blocks (5.00%) reserved for the super user

 

First data block=0

 

Maximum filesystem blocks=2503999488

75 block groups

 

32768 blocks per group, 32768 fragments per group

16320 inodes per group

 

Superblock backups stored on blocks:

32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

 

Writing inode tables: done

Creating journal (8192 blocks): done

Writing superblocks and filesystem accounting information: done

 

This filesystem will be automatically checked every 31 mounts or

180 days, whichever comes first. Use tune2fs -c or -i to override.

Artık disk bölümünü kullanabiliriz. Disk bölümünü bağlayacağımız bir dizin oluşturuyoruz ve bölümü dizine bağlıyoruz.

[root@lnx ~]# mkdir /mnt/linuxyedek

[root@lnx ~]# mount /dev/hdd1 /mnt/linuxyedek/

Bir başka disk bölümü daha ekleyelim. Bu disk bölümü fat dosya sistemi kullansın Bu durum hem Windows hem Linux’tan erişilebilen bir alan oluşturmak için idealdir. Yine fdisk aracını kullanarak /dev/hdd yi seçiyoruz.

[root@lnx ~]# fdisk /dev/hdd

Command (m for help): n

Command action

e extended

p primary partition (1-4)

p

Partition number (1-4): 2

First cylinder (1218-4865, default 1218):

Using default value 1218

Last cylinder or +size or +sizeM or +sizeK (1218-4865, default 4865): +10000M

Yukarıda Linux bölümü oluşturmak için uygulanan adımları aynen tekrarlıyoruz. Oluşturduğumuz disk bölümü diskteki 2. bölümdür. Fdiskten çıkmadan önce disk bölüm tipini Linux’tan Windows fat bölüm tipine çevireceğiz. Bunun için menüden (t) tuşluyoruz. Daha sonra bize hangi disk bölümünün tipini değiştirmek istediğimiz sorulacak, (2) yi tuşluyoruz. Değiştirmek istediğimiz bölüm türü soruluyor. Bu bölümün kodu “hexadecimal” olarak girilmelidir. Eğer (L) tuşlanırsa bölüm tipleri ve kodları listeleniyor. Windows fat 32 için (c) harfini seçiyoruz. çıktı aşağıdaki gibi olmalıdır.

Command (m for help): t

Partition number (1-4): 2

Hex code (type L to list codes): L

Hex code (type L to list codes): c

Changed system type of partition 2 to c (W95 FAT32 (LBA))

Disk bölümleri görüntülemek için (p) tuşluyoruz.

Device Boot Start End Blocks Id System

/dev/hdd1 1 1217 9775521 83 Linux

/dev/hdd2 1218 2434 9775552+ c W95 FAT32 (LBA)

Şimdi değişikliklerş kaydedip fdikten çıkmak için (w) tuşluyoruz.

CommandCommand (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

Syncing disks.

Disk bölümümüzü oluşturduk artık diski biçimlendirip kök dizine bağlayabiliriz.

[root@lnx ~]# mkfs.vfat /dev/hdd2

mkfs.vfat 2.8 (28 Feb 2001)

[root@lnx ~]# mkdir /mnt/vfat

[root@lnx ~]# mount -t vfat /dev/hdd2 /mnt/vfat/

Bir başka örnekte ise reiserfs dosya sistemi kullanan bir disk bölümü oluşturacağız Başlamadan önce yukarıda çekirdekle ilgili yapılan uyarıyı tekrar okuyun. Kullanacağımız çekirdek reiserfs desteği içermeli ve reiserfs dosya sistemi araçları temin edilmelidir.

[root@lnx ~]# fdisk /dev/hdd

…….

Command (m for help): n

Command action

e extended

p primary partition (1-4)

p

Partition number (1-4): 3

First cylinder (2435-4865, default 2435):

Using default value 2435

Last cylinder or +size or +sizeM or +sizeK (2435-4865, default 4865):+10000

Disk bölümünü oluşturduk (p) tuşlayıp bölüm bilgisini görüntüleyelim.

Command (m for help): p

Disk /dev/hdd: 40.0 GB, 40020664320 bytes

255 heads, 63 sectors/track, 4865 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System

/dev/hdd1 1 1217 9775521 83 Linux

/dev/hdd2 1218 2434 9775552+ c W95 FAT32 (LBA)

 

/dev/hdd3 2435 3651 9775552+ 83 Linux

 

Artık değişiklikleri kaydedebiliriz.

 

Command (m for help): w

 

The partition table has been altered!

Calling ioctl() to re-read partition table.

Syncing disks.

 

Şimdi disk bölümünü biçimlendirelim.

 

[root@lnx ~]# mkfs.reiserfs /dev/hdd3

 

All data on /dev/hdd3 will be lost. Do you realy want to create reiserfs 3.6 (y/n) y

 

Creating reiserfs 3.6 with standard journal on /dev/hdd3

 

initializing skiped area: done

 

initializing journal: done

 

syncing…done

 

Disk bölümünü sisteme bağlayalım.

 

[root@lnx ~]# mount -t reiserfs /dev/hdd3 /mnt/reiser/

 

Dosya Sistemi Bakımı

 

Modern dosya sistemleri hatalara karşı dayanıklılığı arttırmak için journal (günlük) tutarlar. Dosya sisteminde herhangi bir işlem yapılmadan önce günlüklere kaydedilir. Daha sonra yapılacak olan iş yerine getirilir. Dosya sisteminde herhangi bir hata meydana geldiğinde günlüklerdeki muamele girdileri konrol edilerek hata düzeltilmeye çalışılır. Günlüklü dosya sistemleri, günlüksüz olanlara göre çok daha hızlı bir dosya sistemi kurtarma işlemi gerçekleştirebilir. Örneğin ani güç kesilmesi durumunda fsck aracı dosya ve dizinleri teker teker kontrol etmek yerine günlük girdileri kontrol edilir. Böylece dosya sistemini bozulmadan önceki durumuna kolayca çevirebilir. Linux ext2 dosya sistemi günlüğe sahip değildir. Ext3 dosya sistemi ise günlük kullanır. Eğer dosya sisteminiz ext2 ise ve ext3 dosya sistemine terfi etmek istiyorsanız, bu terfi işlemini biçimlendirme (format) işlemine gerek kalmadan gerçekleştirebilirsiniz. Bunun için

 

[root@lnx ~]# tune2fs -j /dev/hdd3

 

tune2fs 1.35 (28-Feb-2004)

 

Creating journal inode: done

 

This filesystem will be automatically checked every 26 mounts or

 

180 days, whichever comes first. Use tune2fs -c or -i to override.

 

Böylece ext2 dosya sistemine sahip olan /dev/hdd3 disk bölümü herhangi bir bilgi kaybına uğramadan ext3 dosya sistemine terfi etmiştir.

FSCK kullanımı:

 

Bir başka yöntemde fsck aracını kullanarak dosya sistemindeki hataları onarabiliriz. Bunun için fsck aracı ile denetleyeceğimiz alanın sisteme bağlı olmaması gerekir.

[root@lnx ~]# umount /dev/hdd3

 

[root@lnx ~]# fsck.ext3 -a /dev/hdd3

 

/dev/hdd3: clean, 11/1224000 files, 51990/2443888 blocks

 

fsck komutu ile kullanılan -a parametresi bulunan hataların otomatik olarak onarılmasını sağlıyor. Eğer denetlemek istediğimiz disk bölümü kök dizinin bulunduğu bölüm ise o zaman ne yapmalıyız? Çünkü kök dizini ayırmamız mümkün değildir. Bu durumda shutdown komutu bize yardımcı olabilir.

[root@lnx ~]# shutdown -F -r now

 

Burada kullanılan -F parametresi sistem yeniden başlatıldığında disk bölümü bağlanmadan bölümün denetlenmesini sağlar.

BADBLOCKS KULLANIMI

 

Disk hatalarının badblocks ile denetlenmesi Bozuk bloklar için periyodik denetimler yapmak iyi bir fikir olabilir. Bu işlem badblocks komutu ile yapılabilir. Bu komut bulabildiği bütün bozuk bloklar için bir liste verir. Bu liste fsck için dosya sistemi veri yapısı içinde bulunan kayıtlara yönlendirilebilir, böylece işletim sisteminin bozuk blok hatalarının kaydı tutulmak zorunda kalınmaz. Aşağıdaki örnek bunun nasıl yapılacağını açıklamaktadır.

 

# badblocks -o bozuk_sector /dev/sdb1

 

# fsck -t ext2 -l bozuksektor /dev/sdb1

 

fsck 1.25 (20-Sep-2001)

 

e2fsck 1.25 (20-Sep-2001)

 

1. geçiş: dosya indeksleri, bloklar ve uzunluklar denetleniyor

 

2. geçiş: Dizin yapısı denetleniyor

 

3. geçiş: Dizin bağlanabilirliği denetleniyor

 

4. geçiş: Başvuru sayısı denetleniyor

 

5. geçiş: grup özet bilgileri denetleniyor

 

/dev/fd0u1440: ***** DOSYA SİSTEMİ DEĞİŞTİRİLDİ *****

 

/dev/fd0u1440: 11/184 dosya (0.%0 yanyana olmayan düğüm),

41/1440 blok

#

 

Şayet kullanımdaki bir bloğun hatalı olduğu rapor edilirse e2fsck bu bloğu başka bir yere taşıyacaktır. Şayet durum gerçekten kötü ise bu blok içindeki dosyaların içeriği bile bozulabilir.

 

Linux Disk Yönetimi
Etiketlendi:     

admin

Bütün Hayatım Linux Sistemleri...

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir