Disk ve Bad Sector Problemi
Kullandığım cihazda sürekli şuradaki read-only file system
problemini yaşamaktaydım. İlk başta hatanın işletim sisteminin kendisinden geleceğini düşündüm. Daha sonra ise diskin dosya sistemindeki yazılımsal hatalardan dolayı olabileceğini düşündüm ve şurada yazdığım adımları uyguladım. Bu adımlar sadece geçici bir süreliğine işe yaradı. Bu yüzden daha uzunca bir araştırma yaptım ve problemin yazılımsal değil diskteki fiziksel
bir problem olabileceğini öğrendim.
HDD disklerindeki sector
kısımları zamanla fiziksel olarak zarar görebiliyor. Bad sector
kısımlarına veri okuma-yazma işlemleri yapılmak istendiğinde işletim sistemi bir problem olduğunu farkediyor ve güvenlik açısından kendisinin yüklü olduğu disk kısmını read-only haline getiriyor. Baştan beri yaşadığım problem buydu.
Bad sector fiziksel bir problem olduğundan aslında bu problemi çözemeyiz fakat bu kullanılamayan sector kısımlarını diskin görmezden gelmesini sağlayıp bu problemden diski formatlamadığımız sürece
kurtulabiliriz.
Bad sector’e sahip disk, sistemimde /dev/sda1
olarak bulunuyor. Bu her cihazda değişiklik gösterebilir.
Diskte ne kadar bad sector olduğunu bulmadan önce diskteki her bir sector’ün boyutunu öğrenmeliyiz.
$ sudo tune2fs -l /dev/sda1 | grep -i 'block size'
Diskteki bad sector kısımlarının bulunması ve bu kısımların bir dosyaya yazılması gereklidir. Bu işlem için tüm diskin taranması gerektiğinden işlem çok uzun sürebilir. 1TB
boyutundaki bir disk için saatler sürebilir. Bu uzun tarama süresinden kaçınmak için diskimi 100GB
ve 900GB
olarak ayırdım. 900GB’lik kısmı kullanmama gerek olmadığından bu kısmı GParted
üzerinden unallocated
olarak formatladım. Diğer 100GB boyutunu da ext4
olarak formatladım. Böylece sadece 100GB’lik bir alan taranacağından taranma süresi çok daha hızlı olacak. (yaklaşık 40 dakika)
$ sudo badblocks -b 4096 -vs /dev/sda1 > ./bad_blocks.txt
Eğer diskteki blok boyutunu öğrenmeden -b 4096
kısmını ilk yazılan komutta girmeseydik büyük ihtimal out of range; ignored.
hatası olacaktı.
Tarama bittiğinde kaç adet bad block olduğu gösterilir.
Bad block kısımlarının kaydedildiği bad_blocks.txt
dosyası.
Son olarak diskin, hatalı blokları görmezden gelmesi sağlanmalıdır.
$ sudo e2fsck -l bad_blocks.txt /dev/sda1