Meşgul bir diski salt okunur moda yeniden takın


19

Bir disk bölümünü salt okunur moda zorlamak ve 30 dakikadan uzun süre salt okunur tutmak istiyorum.

Ne denedim:

  1. mount -o remount,ro (partition-identifier) (mount-point) -t (filesystem)

    Sorun : Bazı işlemler bölümü kullandığından cihaz meşgul hatası verdi. İşlemleri diski kullanarak öldürmek istemiyorum. İşlemler hala kullanırken diski aniden salt okunur olacak şekilde taklit etmek istiyorum.

  2. Kullanılan sihirli sysrq anahtar, aşağıdaki gibi

    echo u > /proc/sysrq-trigger
    

    Sorun : Bu, tüm disk bölümlerini salt okunur yapar (aygıt meşgul olmasına rağmen). Ancak 20-30 dakika sonra makine kendini yeniden başlatıyor. Bu komut yürütüldüğünde bazı makineler hemen yeniden başlatılır. Bu yeniden başlatmaya neyin neden olduğundan emin değilim. Makinenin kendisini yeniden başlatmasını istemiyorum ve diski 30+ dakika boyunca salt okunur modda tutmam gerekiyor.

Soru : Tek bir disk bölümünü salt okunur olmaya ve bu durumda yarım saat boyunca devam ettirmeye ve işlemde herhangi bir yeniden başlatmaya neden olmadan okuma-yazma moduna geri getirmenin daha iyi bir yolu var mı?


3
Düşündün mü fsfreeze -f? Dosya sistemini salt okunur olarak yeniden yüklemez. Bunun yerine, tüm yazarları tarihine kadar engeller fsfreeze -u. Ama benzer ...
Celada

Teşekkürler Celada! Bu iyi bir fikir! .. Şu anda makinemde fsfreeze çalışmıyorum ama bunu deneyeceğim.
AdithyaCS

Denedim fsfreeze -fve benim durumum daha "os donma" oldu. Belki de yazarlar reddedilmek yerine engellendikleri için mi?
Piotr Findeisen

fsfreezesistemime erişilemedi ve unfreeze komutuna bir terminale geri dönemezken giremedim ve makinemi yeniden başlatmam gerekiyordu. Dikkatli olun ! :)
Alex

Yanıtlar:


16

İşlemler üzerinde yazmaya açık bir dosya varsa veya silinmiş ancak hala açık bir dosya içeriyorsa, normalde bir dosya sistemini salt okunur olarak yeniden bağlayamazsınız. Benzer şekilde, herhangi bir dosyayı açık olan bir dosya sistemini (veya geçerli dizini orada olan bir işlem, çalışan bir yürütülebilir dosya gibi dosyaların benzer kullanımları) çıkaramazsınız.

Sen kullanabilirsiniz umount -lbağlama noktası ve daha fazla dosyaların açılmasını engeller serbest bırakmak için, ama tutmak dosya sistemi monte ve zaten dosyalar normalde çalışan açmak zorunda süreçleri tutun.

Gerektiğinde bir dosya sistemini salt okunur olmaya zorlamak için genel bir yol düşünemiyorum. Ancak, dosya sistemi bir engelleme aygıtı tarafından destekleniyorsa , engelleme aygıtını salt okunur yapabilirsiniz , ör.

echo 1 >/sys/block/dm-4/ro
echo 1 >/sys/block/sda/sda2/ro

echo u > /proc/sysrq-triggeryeniden dosyalamayı salt okunur olarak zorlamanın oldukça uç bir yoludur, çünkü tüm dosya sistemlerini etkiler. Bu, yeniden başlatmadan hemen önce dosya sistemini temiz durumda bırakmak için son bir hendek yöntemi olarak düşünülmüştür.

Bir dosya sistemini salt okunur olarak yeniden monte etmek, yeniden başlatmaya neden olmaz. Yeniden başlatmaya neden olan şey, bölümün salt okunur olarak yeniden monte edilmesiyle doğrudan ilişkili değildir. Belki tamamen ilgisizdir veya belki de uygulamada bir işlemcinin dönmesine ve işlemcisinin aşırı ısınmasına neden olur ve işlemciniz arızalı veya overclock edilir ve sonunda yeniden başlatılır. Yeniden başlatmanın nedenini bulmanız gerekir.


2
Ne yazık ki, bu taşınabilir bir çözüm değil. Ahududu alırım: Ben koşarken "İzin reddedildi"echo 1 | sudo tee /sys/block/mmcblk0/mmcblk0p2/ro
Piotr Findeisen

.. ve echo u > /proc/sysrq-triggersadece aşırı değil, aynı zamanda RW'yi yeniden takmak istiyorsanız sizi yeniden başlatmaya da zorlayabilir. Bunu denedim ve sonra ( işlenmemiş yetim inode listesi nedeniyle RDWR yeniden monte edilemedi mount..) ile dmesgremount (Lütfen yerine umount / remount "dedi
Piotr Findeisen

@PiotrFindeisen Bunu kök olarak mı çalıştırdın?
hanshenrik

@hanshenrik sanırım
Piotr Findeisen

4

Kullanım mount; 'in kuvvet seçeneği (GNU sizin monte biri olan varsayarak mount: değil, ama BSD ve örneğin MacOS yapmak)

mount -f -o remount,ro /mount/point

Tabii ki, kilometreniz gerçek dosya sistemine, çekirdek sürümüne ve duruma bağlı olarak değişebilir , bu nedenle bu, örneğin @Gilles tarafından belirtildiği gibi diğer alt düzey hileleri denemek için sadece daha yüksek seviye bir seçenektir.


1
@psusi no. Ext4 bölümümü yeniden monte etmeme izin verdi /.
Piotr Findeisen

2
Ben düşünüyordum umount -f, ama ben sadece ro yeniden montaj denedim ve -f komut bir hata döndürmüyor yaparken, dosya sistemi aslında, sadece okuma yapılmadı.
psusi

1
@psusi, sürpriz yok. Her durumda tek bir yaklaşımın işe yaramasını beklemem. Bu tekrarlanabilir bir şekilde benim için çalıştı (konu için ahududu ext4 kök bölümü) - ve ben hataları görmezden değil, RO yeniden montaj demek - bu yüzden sanırım bazı, ama hepsi için değil, diğer durumlarda. Üzgünüm, seninkini içermedi.
Piotr Findeisen

13
Adam bağlama diyor -folduğunu --fake. Alıntı: "Gerçek sistem çağrısı dışında her şeyin yapılmasına neden olur; eğer belli değilse, dosya sistemini bağlayan bu '' sahte '' Bu seçenek, mount komutunun ne yapmaya çalıştığını belirlemek için -v bayrağıyla birlikte kullanışlıdır. Daha önce -n seçeneğiyle bağlanan aygıtlar için giriş eklemek için de kullanılabilir. -f seçeneği, / etc / mtab dosyasında varolan kaydı denetler ve kayıt zaten mevcut olduğunda başarısız olur (normal sahte olmayan bağlama ile, bu çek çekirdek tarafından yapılır). "
Will Manley

3
BSD ve bu nedenle, macOS bağlar ' -f gerçekten de "kuvvet" anlamına gelir.
terdon
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.