fsck: En kapsamlı disk denetimi seçenekleri


12

Bilinen bir sorunu olan bir diskim var (biliyorum çünkü klonlamaya çalıştığımda dd gags). Ama ben canlı bir CD ile önyükleme ve monte edilmemiş bölümünde fsck çalıştırmak, bunu elde:

ubuntu@ubuntu:~$ sudo fsck /dev/sdf1
fsck 1.41.4 (27-Jan-2009)
e2fsck 1.41.4 (27-Jan-2009)
/dev/sdf1: clean, 227091/9625600 files, 12789815/38497756 blocks

milisaniye sonra. Bir ms'de tüm sabit sürücüyü kontrol ettiğine inanmak zor.

Ben de fsck'ing sdf1 ya da tüm fiziksel disk sdf olmalı emin değilim. Tüm sürücüyü denediğimde:

ubuntu@ubuntu:~$ sudo fsck /dev/sdf
fsck 1.41.4 (27-Jan-2009)
e2fsck 1.41.4 (27-Jan-2009)
fsck.ext2: Device or resource busy while trying to open /dev/sdf
Filesystem mounted or opened exclusively by another program?

Hangi anlamıyorum bölümlerin hiçbiri monte gibi görünüyor (Ben sadece canlı bir CD önyükleme ve komutu koştu).

Yani temel sorum şu: Sorun diskimi analiz etmek için milisaniyeden daha fazla harcama yapmak için fsck'i (veya daha iyi çalışabilecek farklı bir aracı) nasıl edinebilirim?

Yanıtlar:


14

Öncelikle, fsck'i bölüm üzerinde çalıştırma konusunda haklısınız - fsck tüm disklerde değil, yalnızca dosya sistemlerinde çalışır. İle diskteki tüm bölümlerin bir listesini alabilirsiniz fdisk -l /dev/sdd.

Dosya sistemi türünüz muhtemelen ext3'tür (çoğu Linux dağıtımında varsayılan), bu da günlüğü temiz olduğu sürece genellikle bir fsck'i geçireceği anlamına gelir. fsck -fYukarıda belirtildiği gibi tam bir kontrolü zorlar.

Ancak, diskte okuma hataları varsa, dd gerçekten diskin içeriğini umursamadığından, fsck miktarı dd yardımcı olmaz.

Dd'nin diski okumasını ve okuma hatalarına dd conv=noerror,syncdevam etmesini sağlamak için, okuma hataları üzerinde devam edecek ve bir okuma hatası olduğunda herhangi bir bloğa boş bayt ekleyecek şekilde kullanın.

Yedeklemeyi bitirdikten sonra, fsck -ftekrar çalışmaya başlamak için klon üzerinde çalışmanız gerekir .

Başka bir ipucu: Bölümü bir dosyaya yedeklerseniz, geri döngü montajı yapabilirsiniz mount -o loop filename.ext3 /mountpoint. Ayrıca, bir 200G bölümünü 500G sürücüsüne resize2fs /dev/sdx1klonladığınızı, daha sonra çalıştırabileceğinizi (sdx, yeni bir sürücünüzdür, tek bir 500G bölümü ile bölümlenmiştir) ve dosya sistemi 500G olarak yeniden boyutlandırılacaktır.

Son olarak, disk size okuma hataları verecek şekildeyse, veri kurtarmayı bitirene kadar diski kapatıp açmamanızı tavsiye ederim. Bazı hata modlarında, disk bir noktada artık işletim sistemi tarafından dönmeyecek veya tanınmayacak ve o noktada sürücüden veri almak oldukça pahalı hale gelecektir.


"Dd conv = noerror, sync" denedim, ancak sonuçta elde edilen klonlanmış disk önyüklenemez. Önyükleme diski iyi çalışıyor, fscks, çünkü disk sinir bozucu çünkü disk 1 kötü blok (görünüşte veri yok olduğu için) başka bir diske klonlayamıyorum. Sıkışmış gibiyim ...
Fred Hamilton

Diskin önyüklenememesinin başka nedenleri olabileceğini unutmayın (farklı disk geometrisi ve MBR / önyükleme yükleyici sorunları). İlk olarak yeni diskteki dosya sisteminin iyi olduğunu onaylayabilirseniz, kurulum CD'sindeki kurtarma modunu kullanarak, GRUB önyükleyicisini vb. Güncelleyerek sisteme önyükleme yapabilirsiniz. önce fsck -f / dev / sdx1 dosyasını çalıştırın, ardından dosya sistemini mount / dev / sdx1 / mnt ile bağlamaya çalışın - x'i uygun sürücü harfiyle değiştirin.
Kristian

Mükemmel öneri, ama klonlanmış bölümde fsck -f çalıştırdığımda, dd olduğunu kabul etmeden önce tam anlamıyla yüzlerce hata (inode'larda yasadışı bloklar, sıkıştırma sistemi olmayan bir dosya sisteminde ayarlanan sıkıştırma bitleri, kötü genişletilmiş öznitelik blokları, vb.) Aldım. klon tamamen ıslatıldı ... Şimdi ne yapacağımdan emin değilim ... Sanırım tüm dosyaları temiz bir bölüme kopyalamaya çalışacağım ... Yine de teşekkürler.
Fred Hamilton

4
Ddrescue (veya dd_rescue + dd_rhelp) kullanmak dd'den daha iyidir; hataların ele alınması, hata alan sektörlerin yeniden denenmesi daha akıllıdır. gnu.org/software/ddrescue/ddrescue.html kalysto.org/utilities/dd_rhelp/index.en.html garloff.de/kurt/linux/ddrescue
freiheit

1
Kök ext2, ext3 veya ext4 bölümü için en kapsamlı disk denetimi (mümkünse otomatik olarak tüm düzeltmelerle birlikte) aşağıdaki gibi yürütülür: (1) kurtarma ortamından önyükleme (kök bölümü bağlantısı kaldırılmalıdır), (2) çalıştırın e2fsck -f -cc -D -p. Bu, medya için tahribatsız okuma-yazma kontrolü ile zorla kontrol yapar ve güvenli bir şekilde giderilebilecek bulunan tüm sorunları onarır. 2 TB HDD için birkaç gün sürebilir ...
Mikko Rantalainen

10

Bu sizin durumunuzla ilgili olmayabilir, ancak yine de bahsettiğimi düşündüm:

Daha düşük seviyeli bir disk kontrolü için badblocksyardımcı programı kullanabilirsiniz . Bir cihazdan geçer ve kötü blokları rapor eder (elbette hiçbir şeyi onaramaz). En azından bir diskin fiziksel olarak hasar görüp görmediğini doğrulamak için kullanışlıdır.

Ayrıca, bir dosya sistemi tarafından kullanılan kötü blokları önlemek e2fsckiçin kullanabilirsiniz badblocks. Gönderen e2fsckmanuel:

  -c     This option causes e2fsck to use badblocks(8) program to do a  read-
         only scan of the device in order to find any bad blocks.  If any bad
         blocks are found, they are added to the bad block inode  to  prevent
         them from being allocated to a file or directory.  If this option is
         specified twice, then the bad block scan will be done using  a  non-
         destructive read-write test.

Ayrıca not fsck_hfs -s, kötü blokları tarar.
awiebe

5

-F seçeneğinin fsck olmasını istersiniz (Dosya sistemi temiz görünse bile denetimi zorla.)

Fsck'i tek kullanıcı modunda çalıştırmalısınız. Bunu canlı bir cdrom önyüklemesi olmadan yapmanın kolay bir yolu -F seçeneği ile yeniden başlatmaktır.

shutdown -rF now 

Teşekkürler, ama bir soru: Canlı bir CD kullanarak -F seçeneği ile yeniden başlatırsam, canlı CD, denetimi çalıştırması gerektiğini nasıl bilebilir? Bu bir CD, farkında olduğum bir anısı yok ...
Fred Hamilton

Bunu canlı cd'den yapmanız gerektiğini sanmıyorum. Sadece canlı cd'den önyükleme yapın ve birlikte verilen -f (force) seçeneğiyle monte edilmemiş bölümde fsck'i çalıştırın. VEYA, -rF kapatma ile sabit diskinizden yeniden başlatabilirsiniz. Bu, dosya sistemi yüklenmeden önce bir fsck'i zorlar.
Richard Hoskins

Aslında, fsck'i tek kullanıcı modunda yapacak. Cevabımı düzenledim.
Richard Hoskins

1
İçin -Fbayrak shutdowngenellikle resmi olarak belgelenmez (bakın man shutdownve shutdown --helporada olmadığını fark edin), bu yüzden çalışmak için güvenemezsiniz. Bazen bu işlem yapılmaz. Resmi olarak kök bölümünü taramanın tek yöntemi alternatif ortamlardan önyükleme yapmaktır.
Mikko Rantalainen
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.