/ Etc / fstab ayarlarını geri yüklemenin veya yeniden yüklemenin hızlı yolu?


11

/etc/fstabRHEL 6.x tabanlı bir sunucu üzerinde bir kompleks ile çalışıyorum . Sistem, sekiz bölmede çeşitli bağlama montajları da dahil olmak üzere çeşitli montaj seçeneklerine sahiptir. Seçenekler ve üzerinde çalıştığım görüntü üzerindeki etkilerini test ediyorum.

mesela seçenekleri gibi nodev, nosuid, noexec, nobarrierve birkaç XFS sistemleri parametreleri yerindedir.

Belirli seçeneklerle yeniden takmanın mümkün olduğunu bilsem de, tüm bağları sabit kodlanmış kalıcı ayarlara geri döndürmenin hızlı bir yolu var /etc/fstabmı?

Örneğin değerleri sysctl -pyükler /etc/sysctl.confve uygular. Bir var mı mounteşdeğer?


Düzenle:

Örnek bir yapılandırma:

#
# /etc/fstab
#
UUID=e6ca80cd    /                       ext4    noatime,nobarrier        1 1
UUID=a327d315    /boot                   ext4    defaults                 1 2
UUID=333ada18    /home                   ext4    noatime,nobarrier,nodev  1 2
UUID=7835718b    /tmp                    ext4    nodev,nosuid,noexec      1 2
UUID=4dd2e9d4    /usr                    ext4    defaults                 1 2
UUID=c274f65f    /var                    ext4    noatime,nobarrier        1 2
UUID=5b5941e0    /var/log                ext4    defaults                 1 2
UUID=3645951a    /var/log/audit          ext4    defaults                 1 2
UUID=3213123c    /vol1                   xfs     noatime,logbufs=8,nobarrier 1 2
UUID=1ee1c070    swap                    swap    defaults                 0 0
# Bind mount for /tmp
/tmp             /var/tmp                none    bind                     0 0
tmpfs            /dev/shm                tmpfs   nodev,nosuid,noexec      0 0
devpts           /dev/pts                devpts  gid=5,mode=620           0 0
sysfs            /sys                    sysfs   defaults                 0 0
proc             /proc                   proc    defaults                 0 0

Tabii ki, bir geliştirici bir uygulamayı yüklemek için üzerinde yürütme izinleri istiyor /tmp...

Bunu buluyorum remountseçenek cihazı belirtmeden bu sistemde çalışmaz ve (yeniden) mountpoint. Bu güvenlikle sertleştirilmiş bir sunucudur, bu yüzden gördüğüm sorunlar SElinux ile ilişkili veya bağlama bağlarının bir sonucu olabilir, hatta belki de reddedilen seçeneklerin varlığı da olabilir (exec yerine noexec) ...


Geliştirici, komut dosyasını doğrudan bir kabuktan veya web'den (httpd aracılığıyla) yürütmeye mi çalışıyor? bir komut dosyasını çalıştırmayı denediğinizde hangi hata mesajını görüyorsunuz?
Daniel t.

Bunu, bir ikili veya kabuk yürütülebilir dosyasını boşaltan tipik bir üçüncü taraf uygulama yükleyicisi olarak düşünün /tmp. Örneğin Oracle.
ewwhite

Bu bir SELINUX sorunu olabilir ausearch -m AVC,USER_AVC -sv no, herhangi bir tmphata için çıktıyı deneyebilir ve deneyebilirsiniz .
Daniel t.

Yanıtlar:


9

Bunu bash içine yazın:

egrep -v '^#' /etc/fstab | while read dev dir type opts dump pass ; do
    echo "mount -o remount,${opts} ${dir}";
done

Sistemimde, bu şöyle çıktı üretir:

mount -o remount,nodev,noexec,nosuid /proc
mount -o remount,relatime,errors=remount-ro /
mount -o remount,defaults /misc

Sisteminizde deneyin. Çıktısını beğendiyseniz, kullanın veya echoyukarıdaki komuttan ve çift tırnak işaretlerini kaldırın .


Muhtemelen $devoraya da eklemeniz gerekiyor ...
freiheit

4

Sadece ilgili dosya sistemleri için bir komut dosyası kullanmak

for fs in /home /var /whatever
do
    mount -o remount "$fs"
done

-fBir veya daha fazla fs meşgulse, oraya da koymanız gerekebilir.

mount -f -o remount "$fs"

3

Gönderen mountman :

Yeniden montaj işlevi, mount komutunun fstab seçenekleriyle nasıl çalıştığını standart şekilde izler. Bu, mount komutunun fstab (veya mtab) öğesini yalnızca bir aygıt ve dizin tam olarak belirtildiğinde okumadığı anlamına gelir.

  mount -o remount,rw /dev/foo /dir

Bu çağrıdan sonra, tüm eski bağlama seçenekleri değiştirilir ve mount komutu tarafından dahili olarak oluşturulan ve sürdürülen loop = seçeneği hariç, fstab öğesinden rastgele şeyler yoksayılır.

  mount -o remount,rw  /dir

Bu yüzden mount -o remount /mountpointaşağıdaki seçenekleri geri yüklemelisiniz /etc/fstab:

mgorven@mamma:~% grep boot /etc/fstab
UUID=823c73dc-8f64-4f76-a120-968106ffdf5a /boot           ext4    relatime        0       2
mgorven@mamma:~% sudo mount -o remount,ro /boot
mgorven@mamma:~% mount | grep boot
/dev/sda4 on /boot type ext4 (ro,relatime)
mgorven@mamma:~% sudo mount -o remount /boot
mgorven@mamma:~% mount | grep boot
/dev/sda4 on /boot type ext4 (rw,relatime)

Bu benim durumumda işe yaramadı, ancak sistemdeki diğer faktörlerin bir sonucu olabilir. Yukarıdaki güncellenmiş fstab'a bakın.
ewwhite

@whwhite Sorunu fstab seçeneklerinizi kullanarak yeniden oluşturamıyorum, bu yüzden başka bir şey oluyor.
mgorven

0

Bağlama bayraklarının dinamiklerini / etc / fstab'den geçip yeniden başlatmadan değiştiriyor musunuz?

Aşağıdakileri yapamaz mısınız (örneğin):

 mount -o remount /usr

etc / fstab içindeki orijinal seçenekleri nasıl geri yükleyebilirim? Bağlanan seçenekleri bağımsız değişken olmadan mount komutunu kullanarak kontrol edebilirsiniz.


0

Sistem çalışmaya başladıktan sonra / usr ve / var gibi dosya sistemlerini yeniden kurmakta zorlanacaksınız. Örneğin, tembel yeniden montaj, muhtemelen sadece bir başarı döndürür, ancak aslında istenen çalışmayı gerçekleştirme fırsatı elde etmez, çünkü sistemin tüm çalışma ömrü boyunca açık tutulan dosya tanıtıcıları olacaktır.

Bu bir geliştirme görüntüsü ise, kulağa benziyorsa, her test için sistemi temiz önyüklemenizi öneririm. Sıkıcı, ancak en azından sistemin üretimdeki gibi çalıştığından emin olabilirsiniz, bu nedenle testiniz güvenilirdir.

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.