it-swarm.asia

Neden monte edilmiş bir bölümü fsck edemiyorsunuz?

Asla monte edilmiş bir bölümü fsck etmemelisiniz. Dosya sistemi yazılır fsck ise (örneğin, -a seçeneği kullanılırsa) bunun nasıl yolsuzluğa yol açabileceğini anlayabilirim, ancak bağlı disklerde neden salt okunur denetimler çalıştırılamıyor? ?

43
mike

Gönderen:

http://linux.die.net/man/8/fsck.ext

"Genel olarak e2fsck bağlı dosya sistemlerinde. Tek istisna -n seçeneği belirtildi ve -c, -l veya -L seçenek belirtilmedi. Ancak, güvenli olsa bile, e2fsck dosya sistemi takılıysa geçerli değildir. Eğer e2fsck takılı bir dosya sistemini kontrol edip etmemeniz gerektiğini sorar, tek doğru cevap '' hayır '' dır. Sadece ne yaptığını gerçekten bilen uzmanlar bu soruya başka bir şekilde cevap vermeyi düşünmelidir. "

28
MathewC

Temel sorun, dosya sistemi denetleyicisinin (genellikle) dosya sisteminin bir parçası olmamasıdır. Bunun yerine, çekirdekteki dosya sistemi koduyla aynı diske okuma ve yazma yapan ayrı bir programdır. Sonuç olarak, fsck'i etkin bir dosya sisteminde çalıştırırsanız, aynı verileri (disk) okuyan (ve potansiyel olarak değiştiren) iki farklı varlığınız vardır, ancak birbirleriyle hiçbir şekilde koordinasyon yapmazlar. Sonuç, diğerlerinin de belirttiği gibi, çoğu denetleyicinin dosya sistemi meta verilerini çalıştırırken kimsenin değiştirmediğini beklemesidir. Çekirdek dosya sistemi denetleyicinin beklemediği bir şeyi değiştirirse karışık olur ve/veya sahte hataları bildirir.

Açıkça "çevrimiçi" çalışacak şekilde tasarlanmış denetleyicilere sahip birkaç dosya sistemi vardır (yani, dosya sistemi etkinken). FFS/UFS'nin daha yeni sürümleri, fsck'i dosya sisteminin yakın tarihli bir anlık görüntüsüne (salt okunur, zaman içinde nokta, yazma üzerine kopya çoğaltma) karşı çalıştırarak bunu yapar. Ayırma bit eşlemlerindeki tutarsızlıklar gibi sorunlar bulursa, bunları ham diske yazmak yerine sistem çağrısı yoluyla düzeltir. Bu, etkin dosya sistemi ile koordinasyonunu sağlar.

NetApp'ın WAFL'sinde çevrimiçi bir kontrol aracı da bulunmaktadır. Muhtemelen başkaları da vardır.

31
Keith Smith

Fsck'i bölüme monte edilmiş bir okuma-yazma üzerinde çalıştırmak, fsck salt okunur modda bile saçma olur. Dosya sistemi fsck altında değişecek ve dosya sisteminden fsck önbelleklerini geçersiz kılan bellek içi veriler geçersiz hale gelecektir (ve böylece fsck tutarsızlık görecektir). Fsck'i salt okunur modda salt okunur bir dosya sisteminde çalıştırabilir ve geçerli sonuçlar alabilirsiniz. Fsck'in salt okunur bir dosya sisteminde okuma/yazma modunda çalıştırılması, eğer fsck çalışma sırasında dosya sisteminde değişiklikler yaparsa, çekirdeğin dosya sistemi yapılarının altında beklenmedik şekilde değişmesine neden olur. Bu da kötü olurdu.

11
Evan Anderson

Muhtemelen I/O iş hacminizi öldüreceği gerçeğinin yanı sıra, dosya sistemi fsck'd iken değiştiriliyorsa, fsck'in değişiklikleri takip edip tutarsızlıkları bildirmesinin bir yolu yoktur.

XFS gibi bazı dosya sistemleri, dosya sistemi okuma-yazma monte edilirken tutarlılık kontrolü yapmanıza izin verir ve sahte hataların muhtemelen bildirileceği uyarısı verir. xfs_check denetimi gerçekleştirmeden önce dosya sisteminin sökülmesini veya salt okunur olarak takılmasını önerir.

9
Kamil Kisiel

Fsck'in amacı, dosya sistemi tutarsızlıklarını, yani ihlal edilen değişmezleri bildirmektir.

Ancak bu kontrollerin çoğu birden fazla FS yapı içerir. Birisi FS (veri yazma) değiştiriyorsa), bu yapılar geçici olarak senkronize olmayabilir. fsck, gerçekten bir sorun olmasa bile, bu tutarsızlık olarak görür. fsck, tutarsızlığın sadece geçici mi yoksa düzeltilmesi gereken kalıcı bir sorun mu olduğunu söyleyemez. Bu nedenle, (muhtemelen bir FS çevrimiçi denetlemeye izin vermek için özel olarak tasarlanmıştır. Bazıları bunu yapar, ancak ext3 izin vermez).

6
sleske

Evet, yapabilirsin. fsck -n/dev/sda1 bunu en azından ext3'te yapar. Sadece test ettim :)

3
Sven