/ etc / fstab 설정을 복원하거나 다시로드하는 빠른 방법은 무엇입니까?


11

/etc/fstabRHEL 6.x 기반 서버 에서 복잡한 작업을하고 있습니다 . 이 시스템에는 여러 바인드 마운트를 포함하여 8 개의 파티션에 걸쳐 다양한 마운트 옵션이 있습니다. 테스트중인 이미지에 대한 옵션 및 효과를 테스트하고 있습니다.

예를 들어 옵션 좋아 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 vs exec)이있을 수 있습니다 ...


개발자가 셸 또는 웹 (httpd를 통해)에서 직접 스크립트를 실행하려고합니까? 스크립트를 실행할 때 어떤 오류 메시지가 표시됩니까?
다니엘 t.

이 파일을 바이너리 또는 셸 실행 파일을 덤프하는 일반적인 타사 응용 프로그램 설치 프로그램으로 생각하십시오 /tmp. 예를 들어 오라클.
ewwhite 2019

이것은 SELINUX 문제 일 수 있습니다 . 오류가 발생 ausearch -m AVC,USER_AVC -sv no하면 출력을 시도 할 수 tmp있습니다.
다니엘 t.

답변:


9

이것을 bash에 입력하십시오 :

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

로부터 mount :

다시 마운트 기능은 fstab의 옵션에서 mount 명령이 작동하는 표준 방식을 따릅니다. mount 명령은 장치와 디렉토리가 완전히 지정된 경우에만 fstab (또는 mtab)을 읽지 않습니다.

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

이 호출 후에는 모든 이전 마운트 옵션이 교체되고 fstab의 임의 항목은 무시됩니다 (단, mount 명령으로 내부적으로 생성 및 유지 관리되는 loop = 옵션 제외).

  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

@ewwhite 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.