Neden monte edilmiş bir bölümü arayamıyorsunuz?


43

Asla monte edilmiş bir bölümü kırmamanız gerektiği bilinmektedir. Dosya sistemi fsck tarafından yazıldıysa (örneğin, -a seçeneği kullanılıyorsa) bunun kolayca nasıl yolsuzluğa yol açabileceğini anlayabiliyorum , ancak neden salt-okunur kontroller takılı disklerde çalıştırılamıyor?

Yanıtlar:


28

Gönderen:

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

"Genel olarak yayınlanmaya güvenli olmadığını Not e2fsckbağlanan dosya üzerinde. Eğer tek istisnası -nseçeneği belirtilmişse, ve -c, -lveya -Lseçenekler belirtilmemiştir. Ancak, bunu yapmak için güvenli olsa bile, tarafından basılan sonuçlar e2fsckşunlardır dosya sistemi monte edilmişse geçerli değildir. Monte edilmiş e2fsckbir dosya sistemini kontrol edip etmemeniz gerektiğini sorarsanız, doğru olan tek cevap '' hayır '' dır. yol. "


3
Bir istisna: eğer dosya sistemi salt okunur olarak monte edilmişse ve fsck ayrıca salt okunur modda ise, işler
Demi

31

Temel sorun, dosya sistemi denetleyicisinin (genellikle) dosya sisteminin bir parçası olmamasıdır. Bunun yerine, çekirdekteki dosya sistemi koduyla aynı diske okuyan ve yazan, ayrı bir programdır. Sonuç olarak, eğer etkin bir dosya sisteminde fsck çalıştırırsanız, aynı verileri (disk) okuyan (ve potansiyel olarak değiştiren) iki farklı varlığınız vardır, ancak bunlar birbirleriyle hiçbir şekilde koordine edilmezler. Sonuç, diğerlerinin de belirttiği gibi, çoğu denetleyici, çalıştırırken dosya sistemi meta verilerini başka kimsenin değiştirmemesini beklediğinin sonucudur. Çekirdek dosya sistemi, denetleyicinin beklemediği bir şeyi değiştirirse, kafaları karışır ve / veya sahte hatalar bildirilir.

Açıkça "çevrimiçi" (yani, dosya sistemi etkinken) çalıştırılmak üzere tasarlanmış, denetleyicileri olan birkaç dosya sistemi vardır. FFS / UFS'nin daha yeni sürümleri, fsck'i dosya sisteminin yakın zamandaki bir anlık görüntüsüne (salt okunur, tam zamanında, anında kopyalanabilen bir kopya) karşı çalıştırarak yapar. Tahsis bit haritalarındaki tutarsızlıklar gibi sorunlar bulursa, bunları ham diske yazmak yerine sistem çağrısı yoluyla düzeltir. Bu, aktif dosya sistemiyle koordine olmasını sağlar.

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


11

Fsck'i bölüme monte edilmiş okuma-yazma işleminde çalıştırmak, fsck salt okunur modda olsa bile aptalca olacaktır. Dosya sistemi fsck altında değişecek ve fsck'in dosya sistemindeki önbellekleri geçersiz kılacak (ve böylece fsck tutarsızlığı görecektir). Fsck'i salt okunur modda salt okunur modda çalıştırabilir ve geçerli sonuçlar alabilirsiniz. Fsck'in salt okunur şekilde monte edilmiş bir dosya sisteminde okuma / yazma modunda çalıştırılması, eğer fsck çalışması sırasında dosya sisteminde değişiklikler yaparsa, çekirdeğin dosya sistemi yapılarının beklenmedik şekilde altında değişmesini görmesine neden olur. Bu da kötü olurdu.


"Salt okunur monte edilmiş bir filsistemde fsck'i okuma / yazma modunda çalıştırmak, çekirdeğin beklenmedik şekilde altında değişen dosya sistemi yapılarını görmesine neden olur" yazdınız. Dosya sistemi yapıları neden salt okunur bir sisteme bağlı olarak değişiyor?
guettli

Bu cevaba göre, sadece okuma bölümündeki fsck tamam, sorun değil ise yeniden başlatırsanız: serverfault.com/a/405252/90324
guettli

@guettli - Bağlandığın cevap benimkiyle aynı şeyi söylüyor. (Yazım hatasını düzelttim, BTW. Teşekkürler!) Eğer çekirdek bir dosya sistemine sahipken fsck değişiklikler yaparsa, çekirdek içindeki fsck tarafından yapılan değişiklikler ışığında çekirdek içindeki salt okunur önbelleğe alınmış veriler geçersiz hale gelebilir. Tabii, daha sonra yeniden başlatabilirsiniz. Ayrıca heyecan verici bir çekirdek böceği keşfedebilir ve yeniden başlatma şansı yakalamadan önce çekirdeğinizi paniğe kapabilirsiniz.
Evan Anderson

9

Muhtemelen G / Ç işlemlerinizi öldüreceği gerçeğinden ayrı olarak, eğer dosya sistemi fsck'd iken değiştirilirse, fsck'in değişiklikleri takip etmesinin ve tutarsızlıkları rapor etmesinin bir yolu yoktur.

XFS gibi bazı dosya sistemleri, dosya sistemi okuma-yazma takılıyken tutarlılık kontrolü yapmanıza izin verir, sahte hataların muhtemelen rapor edileceği uyarısı verilir. xfs_checkkontrolü gerçekleştirmeden önce dosya sisteminin çıkarılmasını veya salt okunur şekilde monte edilmesini önerir.


6

Peki, fsck'in amacı, ihlal edilen ihlallere karşı dosya sistemi tutarsızlıklarını bildirmektir.

Bununla birlikte, bu kontrollerin çoğu, birden fazla FS yapısını içermektedir. Birisi FS'yi değiştiriyorsa (veri yazma), bu yapılar geçici olarak senkronize edilmemiş olabilir. fsck, gerçekten bir sorun olmasa da bunu bir tutarsızlık olarak görür. fsck’in bir tutarsızlığın sadece geçici mi, yoksa düzeltilmesi gereken kalıcı bir problem mi olduğunu söyleme yolu yoktur. Bu nedenle, bu muhtemelen işe yaramaz (Bir FS çevrimiçi kontrole izin vermek için özel olarak tasarlanmadıysa. Bazıları yapar, ancak ext3 çalışmıyor).


3

Peki, yapabilirsin. fsck -n / dev / sda1, en azından ext3'te tam olarak bunu yapacak. Ben sadece test ettim :)


-4

Elinizi hareketli bir blenderin içine sokabildiğiniz ve muhtemelen yaralayamayacağınız gibi, ya da aşağıdaki kaldırıma yerleştirdiğiniz küçük minder yığınını hedeflerken yüksek bir binadan sıçrayabildiğiniz gibi.

Peki neden kendi ölüm oranlarını test etmekten başka? Çünkü patronunuz neden posta sunucusunun neden kök sürücüyü tanımayacağını öğrendiğinde kesinlikle tekrar test edecek.


Aslında bence daha iyi bir benzetme hareketli bir karıştırıcıya bakmak ya da yüksek bir binanın kenarına bakmak olacaktır. Sadece oku.
mike
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.