SMART selftestleri badblock'larla nasıl ilişkilidir?


15

Smartctl aracı uzun bir kendi kendine test ( smartctl -t long /dev/sda) başlatmayı sağlar . Ancak badblocksbir sürücüde çalışabileceğim de var. İkisi nasıl ilişkilidir? Kötü bloklar bozuk bloklar algılarsa, sürücü SMART değerlerini otomatik olarak günceller mi (örneğin taşınan sektör sayısını güncelleyerek)? Kötü bloklar yer değiştirebilir mi smartctl -t long, yoksa tersi olabilir mi?

Yanıtlar:


5

Voretaq7'ye katılmıyorum - SMART sihir değil. Bir sürücünüz varsa ve sektörlerinden biri kötüleşirse, artık bundan veri okuyamazsınız. Bu nedenle, modern bir disk sürücüsünde okunamayan bir dosyaya sahip olmak mükemmel bir şekilde mümkündür. SMART, başarısız olduktan sonra ilk erişildiğinde bu okunamayan sektörü "Mevcut Beklemede" ve "Çevrimdışı Düzeltilemez" olarak işaretler.

Ancak bu sektör tekrar yazıldığında, alanı yeniden eşlemek için yeniden işaretlenecek, işaretsiz olacak ve "Reallocated_Sector_Ct" sayacı artacaktır. Sonra bütün bir sürücü tekrar okunabilir.

smartctl -t longsınama yararlıdır - tüm sürücü alanını okunamayan sektörler için test eder ve "Geçerli Beklemede" ve "Çevrimdışı Düzeltilemez" olarak çalıştırılır. Sunucularımı bu uzun testi her sürücüde haftada bir kez çalışacak şekilde yapılandırıyorum. İşletim sistemi istekleri her zaman SMART taramalarına göre önceliğe sahip olduğundan, normal sürücü işlevlerini çok fazla etkilemez.

Bir sunucuda olduğu gibi RAID1 aynalarında her zaman diskleri çalıştırıyorum, bu yüzden uzun bir test kötü bir sektör bulduğunda, yeniden tahsisi zorlayarak başka bir sürücüdeki verileri kullanarak içeriğini yeniden yazabilirim.

badblocksbazen de yararlıdır - örneğin tüm sürücüyü test eder ve ilk hatada durmaz. Tek bir bölümü veya sürücünün herhangi bir bölümünü test edebilir. Kötü bir bloğun başarıyla yeniden tahsis edilip edilmediğini hızlı bir şekilde kontrol etmek için kullanabilirsiniz.


11

Ben işaret gibi benim diğer yanıtında , her modern sabit disk çünkü özellikle bugünün diski yoğunluklarında (kullanılabilir alan yeniden eşleme vardır, hiçbir tahrik tabağı mükemmel olacak - bile her zaman marka üzerinde, sürücü etrafında yeniden eşleştirmek zorunda olduğu birkaç kusurları olacaktır -yeni-hiç-hiç-kullanılmamış-montaj-hattı-eller-içine-sürücüler).

Bu nedenle, teorik olarak badblocks, bir sürücüdeki bildirimler (son kullanıcı tarafından görülebilir) bozuk sektörler gibi bir şeyden önce bildirilen bir SMART hatası olması gerekir .
Modern sabit disklerde, son kullanıcı tarafından görülebilen herhangi bir bozuk sektör ( badblocksişletim sistemi tarafından rapor edilebileceği veya otomatik olarak algılanabileceği gibi), ölmekte olan bir diskin son nefesi ve titremesidir.


Nihayetinde SMART ve badblocksiki farklı ama ilgili şeyi test edin:

SMART kendi kendini denetleyen bir araçtır:

Sabit sürücü, çalışma parametreleri hakkında bazı bilgiler bilir ve bazıları için "normal" ve diğerleri için "kabul edilebilir" hakkında bazı meta bilgiye sahiptir.
Sürücü belirli parametrelerin "anormal" veya "kabul edilemez" olduğunu algılarsa, bir arıza öncesi durumu rapor edecektir - başka bir deyişle sürücü hala çalışır durumdadır, ancak yakında arızalanabilir.

Örneğin: İş mili motoru normalde 0.10 amper çeker, ancak şimdi 0.50 amper çekiyor - şaftın bağlandığını veya yataklardaki kalıcı yağlayıcı gittiğini gösteren anormal derecede yüksek bir çekiş gitti. Sonunda motor direncin üstesinden gelemeyecek ve sürücü ele geçirilecek.

Başka bir örnek: Sürücünün, kötü sektörlerle başa çıkmak için 1000 "yeniden eşleme" bloğu vardır. Bunlardan 750'sini kullandı ve sürücüyü inşa eden mühendisler, remaps sayısının dahili olarak yanlış bir şey gösterdiğini belirledi (kötü tabağı, yaşlılık hatası, hasarlı kafa) - sürücü, size zaman kazandıracak bir arıza öncesi durumu bildirecek yeniden eşleme alanı dolmadan ve bozuk sektörler görünür hale gelmeden önce verileriniz kapanır.

SMART kötü sektörlerden daha fazlasını arıyor - sürücünün sağlığının daha kapsamlı bir değerlendirmesi. Bozuk kesimleri olmayan ve okuma / yazma hataları olmayan bir sürücüde SMART ön arıza uyarısı alabilirsiniz (örneğin, yukarıda tarif ettiğim iş mili motoru sorunu).


badblocks belirli (eski) bir amacı olan bir araçtır: Kötü sektörleri bulun.

badblocksSMART ve kötü sektör yeniden eşlemesinden önceki bir zamandan geliyor. O zamanlar sürücülerin kusurları olduğunu biliyorduk, ancak yanlışlıkla veri depolamasını önlemek için bunları eşlemenin tek yolu diski stres testi yapmak, bir arızaya neden olmak ve daha sonra oraya veri koymamayı hatırlamaktı.

Eski olduğunu söylememin sebebi, modern sürücülerdeki elektroniklerin zaten badblocksdahili ve birkaç bin kat daha hızlı yaptığı şeyleri yapmasıdır. badblockstemel olarak gelişmiş elektronik olmayan eski sürücülerin başarısız olan sektörleri yeniden eşlemelerine (veya atlamasına) izin verir, ancak modern sabit sürücüler zaten başarısız sektörleri algılar ve sizin için yeniden eşler.

Teorik badblocksolarak, veriyi modern diskiniz eski bir Winchester diskiymiş gibi OS yeniden eşleme (görünür) arızalarına sahip olmak için kullanabilirsiniz , ancak bu sonuçta ters etki yaratır - Daha önce de söylediğim gibi , modern bir sürücüde algılanan HERHANGİ kötü sektörler badblockstüm sürücü arızalı (veya arızalanmak üzere).

Görünür kötü sektörler, diskin eski (işlevsel ömrünün sonuna yaklaşmadan) veya kusurlu (fabrikadan kötü plakalar / kafalar) olmadıkça, modern diskler için nispeten nadir olan alanı yeniden eşleme olmadığını gösterir.


Temel olarak badblocks, bir diski üretimde dağıtmadan önce çalıştırıyorsanız , ilerlemenizi ve yapmayı daha iyi hissettirirseniz, ancak diskiniz bu yüzyılda üretildiyse ve görünür bir kötü sektör gösteriyorsa, onu çöp kutusuna yerleştirmelisiniz (veya garanti). Param için SMART durumu ve derinlemesine savunma, zamanımı diskleri manuel olarak kontrol etmekten daha iyi kullanmaktır.


1
Tamam, bu SMART ve badblock'lar arasındaki farkı çok iyi açıklıyor. Ancak bu, SMART durumunun izlenmesinin yeterli olduğu anlamına mı geliyor, yoksa SMART uyarılarının doğru bir şekilde kapanmasını istiyorsanız uzun SMART testlerini de ara sıra yapmak zorunda mıyım ? Ben smartctl -t long /dev/sdaarada bir koşmak gerekiyor muyum , ya da smartdbaşka bir şey kurmak zorunda kalmadan beni "otomatik olarak" yakın sorunları hakkında uyaracağını varsayabilir miyim ?
Hongli Lai

Bu yalnızca sizin yapabileceğiniz bir karardır, ancak SMART manuel müdahale gerektirecek şekilde tasarlanmamıştır ("Sadece Çalışır" ve genellikle bununla uğraşmamalısınız). Donanımınıza güvenin (en azından bu sınırlı ölçüde), çünkü donanımınıza güvenemiyorsanız, paketlenip eve gidebilirsiniz.
voretaq7

2
"modern sürücüler zaten blokların yaptıklarını yapar, dahili ve birkaç bin kat daha hızlı" badblockssürücüdeki her baytı okur, rastgele desenlerle yazar ve sonra orijinal verileri geri koyar. SMART kendi kendine testler bunu yapmaz. Doğru anlarsam, bu "beklemedeki" sektörleri temizlemelidir.
endolit

4
@ endolit Testler doğrudan eşdeğer değildir, ancak hizmet ettikleri amaç eşdeğerdir (kötü sektörlerin yeniden keşfedilmesi ve yeniden eşlenmesine izin vermek). Ana noktam son paragraftı: badblocks'u bir disk egzersizcisi olarak çalıştırmak istiyorsanız (SMART hatalarını provoke edip edemeyeceğinizi görmek için bir sürü kötü blok bulduğu için) bunun için gidin, ancak bugün daha sonra (taş çağında yaptığımız gibi) bu sektörleri kullanmaktan kaçınmak için kötü blok listesini yüklemeyi amaçlıyorsunuz Yanlış Yapıyorsunuz: Görünür kötü sektörler, sürücüyü en yakın çöp kutusuna yerleştirmeniz gerektiği anlamına gelir.
voretaq7

1
@Hashim Evet Bekleyen sektörleri temizleyeceği için badblock kullanmanın yararlı olduğuna inanıyorum.
endolith

5

Bu sorunun iyi cevapları

/superuser//a/693065

/superuser//a/693064

Diğer cevapların aksine ben eski bloklar değil çok yararlı bir araç buluyorum. Bir kez yeni bir sabit disk ile benim pc yükseltme ve kararsız çalışmaya başladı. Disk yüzeyinin kusurlu olduğu bloklar sayesinde fark etmem biraz zaman aldı. O zamandan beri kullanmaya başladığım her yeni sabit disk için tam yazma modu (yıkılabilir!) Tavsiye ederim bir

zaman sudo badblocks -swvo sdX.log / sev / sdX

her yeni sabit disk için. Yazma ve okuma için diskin her bir bitini birkaç kez test eder ve böylece daha sonra çok fazla sorundan kaçınabilir.

Bu test sırasında bozuk bloklar sürücü tarafından eşlenecektir. Bu nedenle, testten önce ve sonra "Yeniden Konumlandırılan Sektör Sayısı" not edilmeli ve sürücünün sağlığı hakkında bir şeyler anlatacağı için SMART eşiğiyle karşılaştırılmalıdır.


2
Yeni bir sürücüyü hala garanti altındayken stres testi yapmak harika bir fikirdir.
endolit

2

badblocks eski zamanlardan kalma bir kalıntıdır ve kesinlikle yararlı değildir, şu anda okunamayan bir sektör bulabilir, ancak kötü bir sektörle yapılacak doğru şey verileri yedeklemeden kurtarmaktır. Veriler sizin için kritik değilse, ilgili dosyayı silmek ve o konuma herhangi bir şey yazmak, ne yapması gerektiğini, diskin ihtiyaç duyduğunu düşünür ve çalışmaya devam etmesini sağlar.

Disk kendi kendine testi de etrafta dolaşır ve tüm ortamı çeşitli kusurlar için test eder, diskin çok zayıf noktaları olup olmadığını ve satıcı mantığına dayalı olup olmadığını belirlemek için normal işlemde kullandıklarına kıyasla daha düşük eşikler kullanması gerekir. disk kullanım ömrünü tamamladı ve testin başarısız olduğunu bildirdi. Bu noktada tüm verilerinizi çıkarmanız veya yedeklemeden kurtarmanız ve diski değiştirmeniz gerekir.

Bir disk eylemi (badblocks veya normal işlemle) kurtarılamaz bir okuma hatasına çarparsa, disk otomatik olarak yeniden tahsis edilmeyi bekleyen sayacını güncelleyecek ve yeniden tahsis gerçekleştirildiğinde yeniden tahsis bekleyen ve yeniden tahsis edilen sayaçları güncelleyecektir. Basit bir dd de bunun olmasını sağlayacaktır.

Eğer iki seçenek arasında seçim yapmanız gerekiyorsa smartctl -t diskin daha iyi bir analizine sahip olacağı sürece.

Ayrıca, disk taraması yardımcı programımın kullanımını önerebilirim https://github.com/baruch/diskscan , daha çok badblock'lar gibi çalışır, ancak kötüleşen sektörler, bir tür işitme zorluğu gibi okumak için çok daha uzun. Bu, gelişen bir medya sorununun göstergesidir ve gelecekteki sürümlerde diskin bu sorunu düzeltmesine yardımcı olmak için otomatik girişimde bulunabilir.


"Ayrıca, disklerin kendileri verileri yeniden tahsis edeceği ve artık dosya sistemi düzeyindeki bozuk blokları haritalamaya gerek olmadığı için badblocks aslında bu gün ve yaşta kullanılmıyor." badblocksSürücüyü SMART kendi kendini test etmediği şekilde vurgulamıyor mu ?
endolit

Hayır. Badblock'lar diskin sıralı olarak taranmasını sağlar. DD'den daha iyi değildir ve kendi kendine testin yaptığı ile aynı olacaktır.
Baruch Bile

badblocksdiskteki her baytı okur, test desenleriyle değiştirir, ardından orijinal verileri yerine yazar. SMART kendi kendine testler benzer şekilde okuma-yazma testleridir?
endolith

1
Kötü blokların verileri yeniden yazması "Bekleyen sektörleri" temizler ve sürücüyü ya tekrar iyi olarak işaretler ya da yeniden tahsis eder, doğru mu?
endolit

1
Evet. Böyle bir durumda istediğiniz şey olabilir.
Baruch Hatta
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.