S.M.A.R.T ile Disklerde Hata Taraması Gerçekleştirmek

Gerek Raspberry Pi’ın işletim sisteminin yüklü olduğu disk olan SD kart gerekse de harici olarak bağlanan USB depolama ortamları zaman zaman fiziksel hasara uğrayabilmekte ve bu hasar bir süre kendini göstermeden var olmaya devam edebilmektedir. Bir disk ortamının verileri sağlıklı saklayıp saklamadığı, yani yazılan verinin bozulmadan varlığını koruyup korumadığı basit bir yazma ve okuma denemesi neticesi kolaylıkla anlaşılabilir.

 

SATA, IDE, SCSI arabirimli (HDD/SSD) sabit disklerde S.M.A.R.T adı verilen bir program (firmware) çalışır. Bu program diskin mikrokontrolörüne üretim sırasında yüklenir ve disk enerjilendiği andan itibaren sürekli çalışarak diskin kondisyonunu takip eder ve raporlar üretir. S.M.A.R.T programı diskin okuma/yazma kafasının mekanik tepkilerini, disk motorunun hız ivmelerini, plaka yüzeyindeki manyetik malzemenin durumunu (bad sector) sürekli izler. Diskin toplam çalışma saatini fabrika eşiği ile karşılaştırıp, ölçümlediği diğer seçenekleri de hesaba katarak kalan ömrü hakkında tahmini veri sağlayabilir. Diskteki herhangi bir sorun henüz işletim sistemine yansımamış olsa dahi S.M.A.R.T’ın disk kontrolcüsünün belleğinde tuttuğu log’lar diskin genel sağlığını yorumlamak için değerli bilgiler sunabilir. Aynı zamanda kondisyon durumunu öğrenmek için disk donanımı üzerinde çeşitli tarama algoritmalarını çalıştırarak raporlayabilir.

Araç smartmontools adlı paket içerisinde yer almaktadır. Paketi yükledikten sonra –scan seçeneği ile S.M.A.R.T destekli diskler taranarak listelenmiştir.

pi@raspberry:~ $ sudo apt-get update

pi@raspberry:~ $ sudo apt-get install smartmontools

pi@raspberry:~ $ sudo smartctl –scan

/dev/sda -d usbsunplus # /dev/sda [USB Sunplus], ATA device

smartctl diskin genel sağlık durumunu görüntülemek için -H (health) seçeneğine sahiptir. 24 saat içinde arızalanma ihtimali olan bir diskte sınama sonucu FAILED olarak raporlanır. -H seçeneği SMART tarafından tutulan disk seçeneklerini ve günlükleri kullanarak tahmini bir sağlık raporu verir.

pi@raspberry:~ $ sudo smartctl -H /dev/sda

smartctl 6.6 2016-05-31 r4324 [armv7l-linux-4.9.80-v7+] (local build)

Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

 

=== START OF READ SMART DATA SECTION ===

SMART overall-health self-assessment test result: PASSED

Eğer bu sınama başarısız (FAIL) olarak sonuçlandıysa disk hali hazırda arızalıdır veya kısa bir zaman içerisinde arızalanacak demektir. Bu durumda diskteki verilerin acilen yedeklenmesi tavsiye edilir.

Diskin mevcut durumu hakkında daha detaylı bilgiler ve SMART’ın tuttuğu günlükleri görüntülemek için -a (all) seçeneği kullanılabilir. -a seçeneğinin listelediği bilgiler arasında diskin desteklediği yetenekler (capabilities), disk sağlığını takip etmek için kullandığı öznitelikler (attributes), firmware yazılımının (SMART) taramaları sırasında karşılaştığı sorunlara ait günlükler yer alır. Bu bilgiler ışığında ileride arızalanma riski olan diskleri teşhis etmek mümkün olabilir.

pi@raspberry:~ $ sudo smartctl -a /dev/sda

smartctl 6.6 2016-05-31 r4324 [armv7l-linux-4.9.80-v7+] (local build)

Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

 

=== START OF INFORMATION SECTION ===

Device Model: TOSHIBA MK3276GSX -63

Serial Number: X1RGS31LS

LU WWN Device Id: 5 000039 395d88b2d

Firmware Version: GS101X

User Capacity: 320,072,933,376 bytes [320 GB]

Sector Size: 512 bytes logical/physical

Rotation Rate: 5400 rpm

Form Factor: 2.5 inches

Device is: Not in smartctl database [for details use: -P showall]

ATA Version is: ATA8-ACS (minor revision not indicated)

SATA Version is: SATA 2.6, 3.0 Gb/s (current: 1.5 Gb/s)

Local Time is: Sat Sep 29 08:51:35 2018 UTC

SMART support is: Available – device has SMART capability.

SMART support is: Enabled

[…]

Error 2 occurred at disk power-on lifetime: 175 hours (7 days + 7 hours)

When the command that caused the error occurred, the device was active or idle.

 

After command completion occurred, registers were:

ER ST SC SN CL CH DH

— — — — — — —

84 51 01 c7 2b 1e 40 Error: ICRC, ABRT 1 sectors at LBA = 0x001e2bc7 = 1977287

 

Error 1 occurred at disk power-on lifetime: 113 hours (4 days + 17 hours)

When the command that caused the error occurred, the device was active or idle.

 

After command completion occurred, registers were:

ER ST SC SN CL CH DH

— — — — — — —

84 51 01 1c a2 74 62 Error: ICRC, ABRT 1 sectors at LBA = 0x0274a21c = 41198108

[…]

Yukarıdaki SMART çıktısı uzunluğu nedeniyle kırpılmıştır ve devam eden paragraflarda ayrı olarak açıklanmıştır. Çıktıda cihazın genel bilgileri yanında (-i seçeneği ile de listelenebilir) karşılaşılan aynı türden 2 hata olduğu ve ilk hatanın 175 saatlik kesintisiz çalışma sırasında CRC kontrol değerinin teyit edilememesinden kaynaklandığı raporlanmıştır. Uzun süreli çalışmaya bağlı olarak ısınan disklerde bu tarz veri bozulmaları olabilir. Bu sorunun kaynağı sadece konnektör ve kablo bağlantıları da olabilir ve disk sektörlerinin ya da disk mekaniğinin arızalı olduğu anlamına gelmeyebilir. Yine de badblocks ile yazma/okuma taraması ya da ileriki başlıklarda anlatıldığı gibi SMART taramalarını gerçekleştirmekte fayda vardır. -a seçeneğini kullanarak SMART bilgilerini listelemek istediğinizde aşağıdaki gibi bir mesajla karşılaşıyorsanız diskin SMART programı devre dışı bırakılmış demektir (-s off ile devre dışı bırakılabilir).

SMART Disabled. Use option -s with argument ‘on’ to enable it.

Diskin SMART programını tekrar çalışır duruma getirmek için -s on seçeneğini verebilirsiniz.

pi@raspberry:~ $ sudo smartctl -s on /dev/sda

Smartctl’in -x seçeneği, tüm standart SMART bilgileri yanında disk üreticisinin modele özgü tanımladığı sınama seçeneklerini ve sonuçlarını da listeler. Üreticiye özel seçenekler içinde diskin karşılaştığı en yüksek sıcaklık (Max Temperature), diskin çalışma saati (Power On Hours), plaka dönüş başlatma denemesi sayısı (Spin_Retry_Count) gibi teknik veriler yer alır

pi@raspberry:~ $ sudo smartctl -x /dev/sda

  1. diskin SMART yeteneklerini ve özniteliklerini listelemek

    Smartctl aracı hem standar hem de disk üreticisine özel SMART yeteneklerini ve özniteliklerini listelemek için –capabilities ve –attributes seçeneklerine sahiptir. –capabilities seçeneği ile disk üzerinde çalıştırılabilecek test rutinleri ve tahmini tamamlanma süreleri ve diğer üretici tanımlı işlevler hakkında bilgiler listelenir. attributes ile de SMART tarafından takip edilen disk özniteliklerinin değerleri listelenir. Bu değerler diskin ömrü ve mevcut durumu hakkında önceden bilgi saylayabilir. Disk yeteneklerini listelemek için aşağıdaki komut çalıştırılabilir:

    pi@raspberry:~ $ sudo smartctl –capabilities /dev/sda

    Komut listelediği belli başlı işlevler şunlardır:

  • Self-test execution status: Hali hazırda devam eden bir SMART sınaması varsa işlemin kalan yüzdesini gösterir. Eğer yoksa tarama sonucunda karşılaşılan hatalar bu satırda listelenir.
  • Offline data collection status: Offline kısa taramanın etkileştirilip etkinleştirilmediğini, etkinleştirilmiş ise diskin SMART yazılımının 4 saatte bir gerçekleştirdiği tarama sonuçlarını görüntüler.
  • Short self-test routine recommended polling time: Bir short sınamasının tahmini olarak ne kadar sürede tamamlanacağını dakika cinsinden haber verir.
  • Extended self-test routine recommended polling time: long (extended) disk sınamasının tahmini olarak ne kadar sürede tamamlanacağını dakika cinsinden haber verir.
  • Error logging capability: Sınamalar sırasında tespit edilen disk hatalarının disk mikrokontrolör belleğinde kayıt altına alınıp alınamayacağını belirtir. Başka bir ifadeyle kayıt altına alma özelliğinin desteklenip desteklenmediğini belirtir.
  • Offline data collection capabilities: Diskin SMART yazılımının ne tür işlevlerini desteklediğini görüntüler. Bunlar arasında, arka planda otomatik veri toplama ve disk yüzeyi taraması gibi işlevler yer alır.

Diskin smart yazılımının takip ettiği öznitelikleri (attributes) listelemek için aşağıdaki komut çalıştırılabilir:

pi@raspberry:~ $ sudo smartctl –attributes /dev/sda

smartctl 6.6 2016-05-31 r4324 [armv7l-linux-4.9.80-v7+] (local build)

Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

 

=== START OF READ SMART DATA SECTION ===

SMART Attributes Data Structure revision number: 16

Vendor Specific SMART Attributes with Thresholds:

ID# ATTRIBUTE_NAME VALUE WORST THRESH TYPE UPDATED RAW_VALUE

1 Raw_Read_Error_Rate 100 099 050 Pre-fail Always 0

2 Throughput_Performance 100 100 050 Pre-fail Offline 0

3 Spin_Up_Time 100 100 001 Pre-fail Always 1387

4 Start_Stop_Count 100 100 000 Old_age Always 297

5 Reallocated_Sector_Ct 100 100 050 Pre-fail Always 0

7 Seek_Error_Rate 100 100 050 Pre-fail Always 0

8 Seek_Time_Performance 100 100 050 Pre-fail Offline 0

[…]

Attributes listesinde her bir öznitelik için sunulan sütunların anlamları şunlardır:

  • ID: Özniteliğin kimlik numarasıdır. Çeşitli program çıktılarında veya üretici dokümanlarında sunulan öznitelikleri karşılaştırmak için kimlik numarasını kullanmak daha doğrudur. Örneğin farklı isimler ile ifade edilen öznitelikler aynı kimlik numarasına sahip olabilir. Bu gibi durumlarda aynı SMART özniteliğinden bahsediliyor demektir.
  • ATTRIBUTE_NAME: Smart özniteliğinin adıdır.
  • VALUE: Özniteliğin normalleştirilmiş değeridir. Normalleştirmeden kasıt her üreticinin kendi disk teknoloji ve üretim kalite standartlarını dikkate alarak belirlediği değerleri farklı üreticilerinkiler ile kıyaslayabilmek için sabit bir aralık ile eşleştirmesidir. Bu sütunun değer aralığı çoğunlukla 0-100 arasında olmasına karşın bazı öznitelikler için 0-255 aralığında da olabilir. Üreticiler arasında ham (RAW) değerlerin normalleştirilmesi konusunda bir standart yoktur. Normalleştirme işlemi doğrusal olabileceği gibi üstel ya da logaritmik de yapılmış olabilir. Yüksek değerler (bazı üreticilerin sıcaklık özellikleri hariç) her zaman daha iyi sonuçları ifade eder. Normalleştirilmiş olan bu değerler üreticinin ilgili öznitelik için belirlediği ve uzun süreli kullanım koşullarında test ederek ulaştığı referans değerleri baz alır. Bu nedenle her üreticinin aynı öznitelik için belirlediği ham değer aynı olmayacaktır. Aynı olmayan bu değerleri karşılaştırabilmek için normalleştirilmeleri gerekir. Örneğin bir disk üreticisi yeniden ayrılan 1000 sektör için 10 normalleştirilmiş değerini sunabilirken bir diğer üretici 15 değerini sunabilir. Bu yaklaşım diğer normalleştirilmiş öznitelikler için de geçerlidir. TYPE sütununda Pre-fail yazan bir özniteliğin normalleştirilmiş değeri (VALUE) THRES’den küçük veya eşit ise bu bir sorun olduğuna ve diskin ileride arızalanacağına işaret eder. Aynı durumda (VALUE<=THRES) TYPE sütununda Old_age varsa, diskin üreticinin öngördüğü oranda yıpranmış olduğu anlaşılır.
  • WHEN_FAILED: Bir arızanın kesin olarak var olup olmadığını belirtir. Kesinleşmiş bir sorun var ise bu sütunda FAILING_NOW ifadesi görüntülenir. Sütunda değer olarak “-” işareti varsa ilgili özniteliğin soruna işaret etmediği, daha önce de bu öznitelikle ilgili bir sorunla karşılaşılmadığı anlamı çıkar. Eğer WORST değeri THRES’den küçük veya eşitse, bu sütunda “in_the_past” bilgisi görüntülenerek, ilgili sorunla geçmişte en az bir kez karşılaşıldığı belirtilir.
  • WORST: VALUE sütununda olduğu gibi normalleştirilmiş bir değerdir ve değerini yansıttığı özniteliğin SMART programının çalıştığı süre içinde karşılaştığı en kötü halini ifade eder.
  • THRESH: Eşik değeri de (Threshold), normalleştirilmiş bir değerdir ve iyi durum ile kötü durum arasındaki sınır değeri ifade eder. VALUE değeri THRES değerinden ne kadar büyükse ilgili öznitelik açısından diskin durumu o kadar iyi demektir. VALUE, THRES’ın altına düşerse sorunlar baş göstermeye başlayacak demektir. Tam bir sonuca varabilmek için VALUE, TYPE ve WHEN_FAILED sütunlarını birlikte yorumlamak gerekir.
  • TYPE: Özniteliğin türünü ifade eder. Aşınma ve yıpranma miktarını öngören öznitelikler de Old-age (yaşlı-yıpranma), yaklaşan olası bir arızayı göstermek için de Pre-fail (ön-hata) değeri kullanılır. Pre-fail öznitelikleri, üretici tarafından öngörülen disk ömrünü takip etmek için kullanılır. Pre-fail tek başına diskin arızalı olduğu anlamını taşımaz, bunun için ilgili özniteliğin VALUE değerinin THRES’den küçük veya eşit olması gerekir.
  • RAW_VALUE: Değerin normalleştirilmemiş ham halidir ve çoğu durumda bir karara varmak için kullanılabilecek bir değer sunmaz. Bunun nedeni, diskin sağlığı konusunda karara varmak için her diskin fiziksel özelliklerine göre değişen eşiklere sahip olmasıdır.

Komutun çıktısında listelenen SMART özniteliklerinden en önemlileri ve kodları şöyledir:

  • Raw Read Error Rate (1): Diskin içinde bulunduğu enerji oturumunda (son enerjilenmesinden bu yana) karşılaştığı okuma hatalarının sayısını tutar. Bu hatalar CRC kontrol bilgisi ile sağlama yapılamadığında oluşur.
  • Spin Up Time (3): Disk plakasının tam devir hızına ulaşması için geçen süreyi verir. Milisaniye veya saniye cinsinden olabilir.
  • Reallocated Sectors Count (5): Okunamayıp (bad sector) diskin servis alanındaki yedek sektör ile ilişkilendirilmesi yapılan sektörlerin sayısı.
  • Power On Hours (9): Diskin toplam çalışma süresini saat olarak verir. 9 numaralı bu SMART özniteliği, bazı marka disklerde dakika ve saniye cinsinden de tutulabilir.
  • Spin Retry Count (10): Diskin olağan dönüş devir hızına ulaştırmak için fazladan gerçekleştirilen deneme sayısı. Bu deneme sayısı mekanik sorunlara işaret edebilir.
  • G-Sense Error Rate (191): Disk kartının üzerinde yer alan G-Sensörünün kaydettiği harici şok ve titreşimlerin sayısını takip eden özniteliktir.
  • Power-Off Retract Count (192): Diskin kapalı duruma geçme sayısını tutar Power Cycle Count ile beraber değerlendirildiğinde iki değerin eşit yada yakın olması beklenir.
  • Load/Unload Cycle Count (193): Okuma/yazma kafasının kaç kez park konumuna geçtiğni söyler. Özellikle 2.5 inçlik taşınabilir sabit diskler, bir sarsıntı anında kafanın disk yüzeyine çarpmaması ve enerji tasarrufu için sıklıkla park konumuna geçerler. Sıklıkla park konumuna geçmek genel disk başarımını düşürür. Disk üreticileri bu özelliği özelleştirmek için araçlar veya firmware’ler yayınlayabilir.
  • Hardware ECC Recovered (195): Donanımsal hata düzeltme sayısı diskin elektro-mekanik sorunlarına işaret edebilir.
  • Reallocation Event Count (196): Başarılı ve başarısız şekilde yeniden ayrılan bozuk sektörlerin miktarını ifade eden özniteliktir.
  • Current Pending Sector Count (197): Yeniden ayrılmak için bekleyen bozuk sektörlerin miktarını ifade eden özniteliktir.
  • Offline Uncorrectable (198): Hatalı ve düzeltilemeyen sektör okuma yazma işlemlerinin miktarını ifade eder.
  • Disk_Shift (220): Okuma/yazma kafasının konumunu referans alarak disk plakasının dönme merkezinden kayıp kaymadığını takip eden özniteliktir. Plakanın dönme merkezinden kayması, disk mekanik bir şok aldığında veya aşırı ısındığında gerçekleşebilir.
  • Load-in Time (226): Okuma/yazma kafasının park konumundan disk üzerindeki konumuna geçiş süresini sağlar. Uzun değerler mekanik bir soruna işaret edebilir.

Smart öznitelikleri okunurken her zaman normalleştirilmiş değerler dikkate alınmalıdır. Ham (RAW) değerler, disk hakkında doğru karar vermek için yeterli olmayabilir. Çünkü her üreticinin kullandığı teknoloji ve üretim standardına göre belirlediği aralıklar değişkenlik gösterir.

  1. offline sınama gerçekleştirmek

    Sabit disk işletim sistemi tarafından kullanılmadığı anlarda disk hasarlarına karşı kendi kendini otomatik olarak tarayarak kendi sağlığı hakkında veri toplayabilir. Bu veri toplama ve tarama işlemine offline sınama adı verilir. SMART uyumlu disklerde offline taramaya kısa (short) tarama adı da verilir. Kısa (short) veri toplama ya da tarama işi diskin meşgul olmadığı zamanlarda 4 saatte bir gerçekleştirilir. Diskin bu tarama işlemini ne kadar sürede tamamlayabileceği ve offline sınama kapsamında tarayabileceği disk seçenekleri listelemek için -c (calculate) seçeneğini kullanabiliriz:

    pi@raspberry:~ $ sudo smartctl -c /dev/sda

    Yukarıdaki komutun ekran çıktısında Short test ve Extended self test sütunlarında, sınamaların tahmini tamamlanma suresi yazar.

    Diskin uygun olduğu zamanlarda (offline) kısa taramayı kendi kendine düzenli olarak gerçekleştirmesi için -o (offline) seçeneğini aşağıdaki gibi kullanabilirsiniz:

    pi@raspberry:~ $ sudo smartctl -o on /dev/sda

    smartctl 6.6 2016-05-31 r4324 [armv7l-linux-4.9.80-v7+] (local build)

    Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

     

    === START OF ENABLE/DISABLE COMMANDS SECTION ===

    SMART Enable Automatic Offline failed: scsi error unsupported scsi opcode

    Enson tarama sonuçlarını ise aşağıdaki gibi listeletebilirsiniz:

    pi@raspberry:~ $ sudo smartctl -l selftest /dev/sda

    === START OF READ SMART DATA SECTION ===

    SMART Self-test log structure revision number 1

    Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error

    # 1 Short offline Completed without error 00% 214 –

    # 2 Short offline Completed without error 00% 214 –

    # 3 Short offline Completed without error 00% 193 –

    # 4 Short offline Completed without error 00% 184 –

    Yukarıdaki ekran çıktısında diskte gerçekleştirilen shorf offline taramalarının sonuç kaydı yeniden eskiye doğru listelenmiştir. Bu kayıtlara göre tüm sınamalar hatasız olarak tamamlanmıştır. Daha kapsamlı bir tarama için long taraması gerçekleştirebilirsiniz.

  2. short sınaması gerçekleştirmek

    Kısa (short) ya da selftest adı verilen taramayı -t short seçeneği ile istediğiniz zaman başlatabilirsiniz. Tarama, diskin firmware yazılımına gönderilecek bir komut ile başlatılacak ve -c çıktısında belirtilen sürede tamamlanacaktır. Bu tarama sorunlu diskleri hızlı bir şekilde tespit etmek için kullanışlıdır ve temel olarak 3 aşamada hızlı bir tarama gerçekleştirir.

    pi@raspberry:~ $ sudo smartctl -t short /dev/sda

     

  • 1. Elektriksel özellikler: Diskin üzerindeki mikrokontrolör kapsamı çok üretici tarafından belirlenen elektronik bileşenleri sınar. Bunlar arasında diskin üzerindeki tampon bellek (RAM), okuma/yazma devreleri ve okuma/yazma kafasını kontrol eden elektronik devreler sayılabilir. Bu aşamada gerçekleştirilen sınamalar üreticinin disk tasarımına dahil ettiği sınama özelliklerini kapsadığı için çok daha fazla olabilir.
  • 2. Mekanik özellikler: Diskin okuma/yazma kafasının konumlanma başarımı ve disk dönüş hızı gibi tamamen üreticiye özel sınamaların gerçekleştirildiği aşamadır.
  • 3. Okuma ve doğrulama: Disk üreticisi tarafından ayrılan bir disk alanından okuma yaparak okuduğu veriyi doğrular. Bu doğrulama diskin kullanıcı verilerinin saklandığı alanında yapılmaz.

Short sınamasının tamamlanma yüzdesini ve geçmiş offline tarama sonuçlarını, sudo smartctl -a /dev/sda çıktısında “Self-test execution status: ” satırında görebilirsiniz. Mevcut taramayı iptal etmek için -X seçeneğini kullanabilirsiniz. En son tarama sonuçlarını ise önceki başlıkta olduğu gibi -l selftest seçeneği ile listeletebilirsiniz:

pi@raspberry:~ $ sudo smartctl -l selftest /dev/sda

=== START OF READ SMART DATA SECTION ===

SMART Self-test log structure revision number 1

Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error

# 1 Extended offline Completed: read failure 90% 19675 69299

# 2 Short offline Completed: read failure 90% 18675 52526

# 3 Short offline Completed: read failure 90% 16601 48525

# 4 Short offline Completed without error 00% 5505 –

Yukarıdaki örnek SMART günlük kaydında disk çalışma zamanınn 5505. dakikasında gerçekleştirilen kısa tarama başarıyla tamamlanmış fakat 16601. dakikasında gerçekleştirilen taramada 48525. sektörde okuma hatası tespit edilmiştir. Disk firmware’i okuma hatası olan sektörleri yeniden ayrılmak üzere işaretler. Bunu 18675. dakikada gerçekleştirilen taramada 48525. sektörden sonra gelen 52526. sektörde tespit edilen okuma hatasından anlıyoruz. Benzer şekilde, bu sektör de bad sector olarak işaretlenmiştir ve daha sonra diskin sağlam bir alanı (spare area) ile ilişkilendirilmiştir. Ancak disk 19675. dakikada gerçekleştirilen long (extended) sınamasından 69299. sektördeki okuma hatası nedeniyle başarıyla geçememiştir. Uzun kullanım süresine sahip disklerde bu tarz sektör bozulmaları olması olağandır. Bu diskin kullanılmaması gerektiğine tam olarak karar vermek için SMART özelliklerinin (attributes) değerleri yorumlanmalı ve belli aralıklarla short ve long taramaları gerçekleştirilmelidir.

Bozuk sektör olarak işaretlenen alanların diskin servis alanı da adı verilen yedek sektörler ile ilişkilendirilmesi gerekir. Bu yapıldığında diski kullanan yazılım/işletim sistemi bozuk sektörlere aynı sektör adresini kullanarak erişebilir. Bozuk sektörlerin sağlam sektörler ile eşleştirme işlemi disk donanımı tarafından fiziksel olarak gerçekleştirilir ve ilgili eşleştirme tablosu yeni diskin servis alanı olarak ayrılmış kısmında saklanır. Okuma hatası nedeniyle işaretlenen bir sektörün yedek sektör (servis alanında bu amaçla ayrılmış boş sektörler) ile eşleştirilmesi ilk yazma işlemi sırasında gerçekleştirilir. Bu yazma işlemini 19675. sektör için elle gerçekleştirmek isterseniz dd aracından faydalanabilirsiniz. Aşağıdaki komut /dev/sda aygıtının 19675. Sektörünü okuyarak yine aynı sektöre yazmaktadır:

pi@raspberry:~ $ sudo blockdev –getbsz /dev/sda

4096

pi@raspberry:~ $ sudo dd if=/dev/sda of=/dev/sda bs=4096 count=1 seek=69299 conv=noerror,sync

1+0 records in

1+0 records out

4096 bytes (4.1 kB, 4.0 KiB) copied, 0.000887961 s, 4.6 MB/s

İlk komut ile dosya sisteminin kullandığı blok boyutu (cluster boyutu) öğrenilerek dd komutunun block size (bs) seçeneğini geçilmiştir. Komut çalıştıktan sonra kopyalamanın başarıyla gerçekleştiği gözükmektedir. Bu işlemden sonra smartctl aracının -A ile listelenen SMART özellikleri listesindeki Current Pending Sector Count değeri 1 azalarak Reallocated Sectors Count değeri 1 artmıştır.

  1. long (extended) sınaması gerçekleştirmek

    Uzun (long) SMART taraması diskin tüm sektörlerini tarayarak, diskin sağlık durumu hakkında daha kesin bir bilgi sunar. Bu bilgiyi short taramasının sonuçlarını doğrulamak için kullanmak akıllıcadır. Bu sınamanın süresi diskin kapasitesine göre değişir. Raspberry Pi takılan harici diskleri otomatik olarak bağladığı için taramaya başlamadan önce ayırmak faydalı olur:

    pi@raspberry:~ $ sudo umount /dev/sda1

    Taramayı başlatmak için aşağıdaki komutu çalıştırabilirsiniz:

    pi@raspberry:~ $ sudo smartctl -t long /dev/sda

     

    Testing has begun.

    Please wait 98 minutes for test to complete.

    Test will complete after Fri Oct 12 12:46:47 2018

     

    Use smartctl -X to abort test.

    Bu taramanın tamamlanma yüzdesi ve sonuçları smartctl -a çıktısından görülebilir.

    pi@raspberry:~ $ sudo smartctl -a /dev/sda

    === START OF READ SMART DATA SECTION ===

    SMART overall-health self-assessment test result: PASSED

     

    General SMART Values:

    […]

    Self-test execution status: ( 249) Self-test routine in progress…

    90% of test remaining.

    SMART Self-test log structure revision number 1

    Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error

    # 1 Extended offline Aborted by host 70% 216 –

    # 2 Extended offline Aborted by host 60% 215 –

    # 3 Short offline Completed without error 00% 214 –

    # 4 Short offline Completed without error 00% 214 –

    # 5 Short offline Completed without error 00% 193 –

    # 6 Short offline Completed without error 00% 184 –

    Yukarıdaki ekran çıktısında taramanın devam ettiği ve %10’unun tamamlandığı (90% remaining) ve daha önce bitirilen testlerden son ikisinin -X seçeneği ile kullanıcı tarafından sonlandırıldığı yazmaktadır.

  2. grafik ortamda smart taraması gerçekleştirmek

    Eğer grafik masaüstü kurulumuna sahipseniz smartctl aracının görsel versiyonu olan GSmartControl programını da kullanabilirsiniz. Program komut satırı aracı olan smartctl ile gerçekleştirilebilen hemen tüm temel işlevleri yerine getirebilen görsel bir arayüze sahiptir. Programı kurmak için önce paket listesini güncelleyelim:

    pi@raspberry:~ $ sudo apt-get update

    pi@raspberry:~ $ sudo apt-get install gsmartcontrol -y

    Programı çalıştırmak için grafik ortamda bir terminal penceresi açarak aşağıdaki komutu verin:

    pi@raspberry:~ $ sudo gsmartcontrol

    Programın ekran görüntüsü aşağıdaki gibidir. Identy sekmesinde sabit diskin marka/model bilgileri, Attributes sekmesinde firmware tarafından disk içinde izlemesi gerçekleştirilen teknik özellikler, Capabilites sekmesinde diskin donanımsal ve yazılımsal özellikleri listelenir. Error Log sekmesinde taramalar sırasında oluşan hataların detaylı bir listesi yer alır. Self-test Logs sekmesinde offline veya kullanıcı tarafından başlatılan sınamaların sonuçları listelenir. Perform Tests sekmesinde kısa (short) ve gelişmiş (extended/long) taramaları başlatmak için komut listesi yer alır.


    GSmartControl programınn Self-Tests sekmesi

     

KULLANIM SARTLARI

Bu web sitesinin içeriginin tüm haklari saklidir. Kitabin/site içeriginin hiçbir bölümü, yazarinin yazili izni olmaksizin tekrar üretilemez, bir erisim sisteminde tutulamaz, herhangi bir biçimde elektronik, mekanik, fotokopi, ses kayit ya da diger yollarla iletilemez. Ancak istisna olarak; ticari olmayan amaçlar için yazara önceden bilgi vermek ve raspberrypikitabi.com adresini kaynak göstermek kaydiyla 10 sayfaya kadar kullanilabilir. Kitapta kullanilan logolar, firmalarin tescilli logolaridir. Raspberry Pi, Raspberry Pi Vakfi'nin ticari markasidir.



BILGILENDIRME

Bu kitapta Raspberry Pi, çesitli çevre birimleri ile düsük voltaj elektronik bilesenlerin bir arada kullanildigi uygulamalar yer almaktadir. Uygulamalarin tamami Raspberry Pi'in üzerinde kosan Linux çekirdegi ve açik kaynak kod özgür yazilimlar kullanilarak gerçeklestirilmistir. Uygulamalar gerçeklestirilirken ortaya çikabilecek elektriksel sorunlar veya kullanici hatalari nedeniyle cihazlar zarar görebilir veya veri kaybi yasanabilir. Ayrica, kitapta anlatilan konularin uygulanmasi sonucu ortaya çikabilecek her türlü lisans ihlali/kanuni ihlal ve zararin sorumlulugu uygulayan kisiye aittir. Olusabilecek herhangi bir zarardan yazar sorumlu tutulamaz.

Leave a comment

Your email address will not be published. Required fields are marked *