วิธีที่รวดเร็วในการกู้คืนหรือโหลดการตั้งค่า / etc / fstab หรือไม่


11

ฉันกำลังทำงานกับคอมเพล็กซ์/etc/fstabบนเซิร์ฟเวอร์ที่ใช้ RHEL 6.x ระบบมีตัวเลือกการเมาท์ที่หลากหลายที่ใช้งานได้ในพาร์ติชันแปดพาร์ติชัน ฉันกำลังทดสอบตัวเลือกและผลกระทบต่อภาพที่ฉันใช้งาน

เช่นตัวเลือกชอบnodev, nosuid, noexec, nobarrierและอีกหลายพารามิเตอร์ XFS ระบบแฟ้มอยู่ในสถานที่

ในขณะที่ฉันรู้ว่าเป็นไปได้ที่จะประกอบใหม่ด้วยตัวเลือกที่เฉพาะเจาะจงมีวิธีที่รวดเร็วในการเปลี่ยนการเมานต์ทั้งหมดกลับเป็นการตั้งค่าแบบถาวรที่ฮาร์ดโค้ด/etc/fstabหรือไม่

เช่นsysctl -pโหลด/etc/sysctl.confค่าและนำไปใช้ มีสิ่งที่mountเทียบเท่าหรือไม่?


แก้ไข:

ตัวอย่างการกำหนดค่า:

#
# /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

แน่นอนว่านักพัฒนาจะขออนุญาตดำเนินการ/tmpเพื่อติดตั้งแอปพลิเคชัน ...

ฉันพบว่าremountตัวเลือกไม่ทำงานบนระบบนี้โดยไม่ระบุอุปกรณ์และ (อีกครั้ง) จุดยึด นี่เป็นเซิร์ฟเวอร์ที่มีการรักษาความปลอดภัยดังนั้นปัญหาที่ฉันเห็นอาจเกี่ยวข้องกับ SElinux หรือเป็นผลมาจากการเชื่อมต่อแบบผูกหรืออาจมีตัวเลือกที่ถูกปฏิเสธ (noexec กับ exec) ...


นักพัฒนาพยายามเรียกใช้สคริปต์โดยตรงจากเชลล์หรือเว็บ (ผ่าน httpd) หรือไม่ คุณเห็นข้อความแสดงข้อผิดพลาดใดเมื่อพยายามเรียกใช้สคริปต์
แดเนียลที

คิดว่ามันเป็นตัวติดตั้งแอปพลิเคชันของบุคคลที่สามโดยทั่วไปที่ทิ้งไบนารีหรือเชลล์ที่สามารถเรียกใช้งาน/tmpได้ Oracle เป็นต้น
ewwhite

นี่อาจเป็นปัญหาของ SELINUX คุณอาจลองausearch -m AVC,USER_AVC -sv noใช้เอาท์พุตเพื่อหาtmpข้อผิดพลาด
แดเนียลที

คำตอบ:


9

พิมพ์สิ่งนี้ลงในทุบตี:

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

ในระบบของฉันสิ่งนี้จะสร้างผลลัพธ์เช่นนี้:

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

ลองใช้กับระบบของคุณ ถ้าคุณชอบมันออกมันผลิตใช้หรือเพียงแค่ลบechoและเครื่องหมายอัญประกาศคู่จากคำสั่งด้านบน


คุณอาจต้องเพิ่มที่$devนั่นเช่นกัน ...
อิสระ

4

ฉันแค่ใช้สคริปต์เพื่อทำระบบไฟล์ที่เกี่ยวข้อง

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

คุณอาจต้องใส่เข้าไป-fในนั้นด้วยหาก fs หนึ่งอันหรือมากกว่านั้นไม่ว่างเช่น

mount -f -o remount "$fs"

3

จากmountmanpage :

ฟังก์ชันการติดตั้งใหม่ตามวิธีมาตรฐานที่คำสั่ง mount ทำงานกับตัวเลือกจาก fstab หมายความว่าคำสั่ง mount ไม่อ่าน fstab (หรือ mtab) เฉพาะเมื่อระบุอุปกรณ์และ dir เท่านั้น

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

หลังจากการโทรนี้ตัวเลือกเมาท์เก่าทั้งหมดจะถูกแทนที่และสิ่งที่ไม่ได้ตั้งใจจาก fstab จะถูกละเว้นยกเว้นตัวเลือก loop = ซึ่งสร้างขึ้นภายในและดูแลโดยคำสั่ง mount

  mount -o remount,rw  /dir

ดังนั้นmount -o remount /mountpointควรคืนค่าตัวเลือกใน/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)

สิ่งนี้ไม่ทำงานในกรณีของฉัน แต่อาจเป็นผลมาจากปัจจัยอื่น ๆ ในระบบ ดูการปรับปรุง fstab ด้านบน
ewwhite

@white ฉันไม่สามารถสร้างปัญหาขึ้นมาใหม่ได้โดยใช้ตัวเลือก fstab ของคุณดังนั้นจึงมีสิ่งอื่นเกิดขึ้น
mgorven

0

คุณกำลังเปลี่ยนพลวัตของการเมานท์แฟล็กโดยไม่ผ่าน / etc / fstab และการรีบูตหรือไม่?

คุณไม่สามารถทำสิ่งต่อไปนี้ (ตัวอย่าง):

 mount -o remount /usr

การคืนค่าตัวเลือกดั้งเดิมจาก / etc / fstab คุณสามารถตรวจสอบตัวเลือกที่เมาท์ได้โดยใช้คำสั่ง mount โดยไม่มีอาร์กิวเมนต์


0

คุณจะมีเวลาในการเล่าเรื่องระบบไฟล์ใหม่เช่น / usr และ / var เมื่อระบบเริ่มทำงาน ยกตัวอย่างเช่นการเมานต์ขี้เกียจอาจจะแค่คืนความสำเร็จ แต่ก็ไม่เคยได้รับโอกาสที่จะทำการเมานต์ใหม่ตามที่ร้องขอเพราะจะมีตัวจัดการไฟล์เก็บไว้เปิดตลอดอายุการใช้งานของระบบ

หากนี่เป็นอิมเมจการพัฒนาอย่างที่ดูเหมือนฉันแนะนำให้บูทระบบให้สะอาดสำหรับการทดสอบแต่ละครั้ง มันน่าเบื่อ แต่อย่างน้อยคุณก็รู้ว่าระบบกำลังทำงานอย่างที่ควรจะเป็นในการผลิตดังนั้นการทดสอบของคุณจึงมีความน่าเชื่อถือ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.