본문 바로가기

CentOS/Study

[Study49]Linux 장치 인식과 디스크 관리 7

반응형

마운트 명령어

리눅스에서는 자원(예: 장치)을 마운트할 때 해당 자원을 마운트 포인터에 연결하여 사용합니다. 이를 위해서는 mount 명령어를 사용합니다. 일반적으로 다음과 같은 구문을 사용합니다.

# mount [-t ext3] [-o rw] /dev/sdb1 /p**

좀 더 간단한 구문으로는 mount /dev/sdb1 /p**도 사용할 수 있습니다. 또한 부팅 시 자동으로 마운트하려면 /etc/fstab 파일에 항목을 추가한 다음 mount /p 명령어를 사용하세요. 이때, mount LABEL=/home /home** 구문을 사용하여 특정 라벨이 지정된 장치를 마운트할 수도 있습니다.

 

옵션: ro, noatiome, nosuid, usrquota

mount 명령에 옵션을 추가하여 특정 동작을 지정할 수도 있습니다. 사용 가능한 옵션에는 ro (읽기 전용), noatiome, nosuid, usrquota 등이 있습니다.

 

언마운트 명령어

장치를 언마운트하려면 다음 구문을 사용할 수 있습니다.

# umount /dev/sdb1**

좀 더 간단한 구문으로는 umount /p**도 사용할 수 있습니다.

 

mount –a (/etc/fstab)

/etc/fstab 파일에 목록에 있는 모든 장치를 마운트하려면 mount -a 명령어를 사용하세요

 

umount –a (/etc/mtab)

/etc/mtab 파일에 목록에 있는 모든 장치를 언마운트하려면 umount -a 명령어를 사용하세요.

 

mount 명령어

mount 명령어는 자원(예: 장치)을 마운트할 때 사용하는 명령어입니다. 이 명령어를 사용하면 시스템에서 자원을 인식할 수 있습니다.

mount CMD	/* 자원(Resource)을 마운트할 때 사용하는 명령어 */

umount CMD	/* 자원 마운트를 해제할 때 사용하는 명령어 */

mount -a CMD	/* 마운트할 만한 정보를 모두 마운트하는 명령어 */

umount -a CMD	/* 마운트되어 있는 자원을 모두 해제할 때 사용하는 명령어 */

마운트는 장치를 파일 시스템으로 바꾸어 주어야만 인식할 수 있습니다. 이때, 시스템의 모든 파일들은 하나의 거대한 나무 구조에 속해 있으며 그 뿌리는 "/" 입니다. mount 명령어를 사용하여 리눅스에서 자원을 쉽게 사용할 수 있습니다. 또한, umount 명령어를 사용하여 마운트된 자원을 해제할 수 있습니다. 이러한 명령어를 사용하여 시스템의 자원을 적극적으로 활용하세요.

 

mount / umount 명령어

[명령어 형식]

# mount [-t ext4] [-o OPTIONS] /dev/sdb1 /testmount
# mount /dev/sdb1 /testmount
# mount /testmount (/etc/fstab)

# umount /dev/sdb1
# umount /testmount

마운트와 언마운트 명령어는 Linux에서 파일 시스템을 연결하고 분리할 때 사용됩니다. 마운트 명령어는 파일 시스템을 마운트하여 운영 체제에서 사용할 수 있게 하고, 언마운트 명령어는 파일 시스템을 언마운트하여 더 이상 사용할 수 없게 합니다.

마운트 명령어에는 -t 옵션을 사용하여 파일 시스템 유형을 지정하고, -o 옵션을 사용하여 마운트 옵션을 설정하는 등 다양한 옵션이 있습니다. 또한, 파일 시스템을 자동으로 부팅 시 마운트하려면 /etc/fstab 파일에 추가해야 합니다.

파일 시스템이 마운트되면 해당 파일 시스템의 내용은 사용자 및 응용 프로그램에서 액세스할 수 있게 됩니다. 따라서 파일 시스템이 적절한 권한 및 보안 설정으로 마운트되어 무단 액세스를 방지해야 합니다.

[마운트 옵션]

파일시스템을 마운트할 때 기본적으로 따르는 옵션은 기본 옵션(Default Options)으로, mount 명령어를 수행할 때 따로 옵션을 지정하지 않으면 기본 옵션으로 마운트된다. 기본 옵션은 rw, suid, exec, auto, nouser 다섯개의 옵션으로 구성된다.

그러나 기본 옵션 외에도 다양한 옵션을 지정할 수 있다. 예를 들어, dev와 async가 있다. dev는 파일 시스템의 캐릭터, 블럭 특수장치에 대한 해석을 의미하며, async는 파일 시스템의 동기화 옵션으로 입출력 연산이 비동기적으로 수행된다.

다음은 mount 명령어에서 사용할 수 있는 옵션들의 설명이다.

 

옵션 설명
rw 읽기 및 쓰기가 가능한 옵션으로, 쓰기가 불가능한 ro와 대조된다.
auto 부팅 시 자동으로 마운트하는 옵션으로, 부팅 시 자동 마운트하지 않는 noauto와 대조된다.
atime Access Time을 기록으로 남기는 옵션으로, atime을 기록하지 않는 noatime와 대조된다.
exec 실행 파일이 실행되는 것을 허용하는 옵션으로, 실행 파일이 실행되는 것을 허용하지 않는 noexec와 대조된다.
suid SetUID 프로그램처럼 동작하는 옵션으로, SetUID 프로그램처럼 동작하지 않는 nosuid와 대조된다.
nouser 일반 계정 사용자가 마운트 할 수 없는 옵션으로, 일반 계정 사용자가 마운트 할 수 있는 user와 대조된다.
nousrquota 일반 사용자 quota를 적용하지 않는 옵션으로, 일반 사용자 quota를 적용하는 usrquota와 대조된다. (ext4에서는 지원하지 않음)
nogrpquota 그룹 quota를 적용하지 않는 옵션으로, 그룹 quota를 적용하는 grpquota와 대조된다.

이외에도 많은 옵션이 존재하며, 사용자의 목적에 따라 적절한 옵션을 선택해야 한다.

 

마운트 옵션 예제

mount 명령어를 수행할 때 ro 옵션을 사용하면, 여러 가지 기본 옵션 중 read/write만 read-only 옵션으로 바뀌고 나머지 옵션(지정되지 않은 옵션)은 그대로 기본 옵션을 따릅니다. 여러 가지 옵션을 지정하는 경우 컴마(,)로 구분합니다.

예를 들어, 다음과 같습니다.
# mount -o ro /dev/sdb /testmount  (# mount -o ro,nouser,auto,exec,suid /dev/sdb /testmount)
# mount -o ro,nosuid /dev/sdb /testmount
# mount -o noatime /dev/sdb /testmount

각 파티션별로 권장되는 마운트 옵션은 다음과 같습니다. (mount Options Reference)
- ro: /usr/local (추가적인 패키지 설치 공간, read-only)
- nosuid: /home/fedora, /user (사용자 홈 디렉터리(파티션), SetUID 프로그램으로 동작하지 않음)
- noatime: /var (가변적인 데이터 기록 파티션, access time을 남기지 않음)

위의 예제에서는 ro 옵션이 사용되었으며, 각 파티션별로 권장되는 마운트 옵션을 확인할 수 있습니다. 이를 참고하여 마운트 옵션을 설정하면 효율적인 운영이 가능합니다.

 

디스크 추가 작업

# chkconfig --list kudzu
# chkconfig kudzu on
Power OFF
디스크 장착(VMWare > VM > Add > "Hard Drive" > "Create a new virtual disk" >
                     SCSI > 1.0G > Finish)
Power ON
# ls -l /dev/sd?  (# fdisk -l)

위 코드는 디스크 추가 작업에 대한 명령어입니다.

  1. chkconfig --list kudzu 명령어를 사용하여 kudzu 서비스가 실행 중인지 확인합니다.
  2. chkconfig kudzu on 명령어를 사용하여 kudzu 서비스가 부팅할 때 자동으로 실행되도록 설정합니다.
  3. 디스크를 장착합니다.
  4. ls -l /dev/sd? 명령어를 사용하여 디스크가 인식되었는지 확인합니다.
# fdisk /dev/sdc
/dev/sdc1(primary partition(1G))
# fdisk –l /dev/sdc
  1. fdisk /dev/sdc 명령어를 사용하여 /dev/sdc에 파티션을 생성합니다.
  2. fdisk –l /dev/sdc 명령어를 사용하여 /dev/sdc의 파티션 정보를 확인합니다.
# mkfs.ext4 /dev/sdc1
# dumpe2fs /dev/sdc1   (# tune2fs –l /dev/sdc1)
  1. mkfs.ext4 /dev/sdc1 명령어를 사용하여 /dev/sdc1에 파일 시스템을 생성합니다.
  2. dumpe2fs /dev/sdc1 명령어를 사용하여 /dev/sdc1의 파일 시스템 정보를 출력합니다.
# mkdir /oracle
# mount /dev/sdc1 /oracle
# vi /etc/fstab
# df –h
  1. /oracle 디렉토리를 생성합니다.
  2. /dev/sdc1을 /oracle에 마운트합니다.
  3. /etc/fstab 파일을 열어서 /dev/sdc1을 부팅시 자동으로 마운트되도록 설정합니다.
  4. df -h 명령어를 사용하여 디스크의 마운트 상태를 확인합니다.

 

"noatime 옵션" 실습

atime(Access Time)을 기록으로 남기지 않는 옵션 확인

[참고] 파일의 속성 정보 중 시간

mtime(Modify Time)   # ls -l    파일 생성 및 파일의 내용을 수정한 시간 기록
atime(Access Time)   # ls -lu   파일 접근시간 - 파일을 열어볼 때 시간 기록
ctime(Changed Time)  # ls -lc   파일 속성 정보 변경 시간 기록

 

1. /testmount(/dev/hda1) 마운트 옵션 확인

마운트 된 파티션의 atime(Access Time)을 기록하지 않기 위한 noatime 옵션을 확인한다.

# mount | grep testmount
/dev/hda1 on /testmount type ext4 (rw)
  • noatime : 보이는 옵션
  • atime(Access Time) : 안 보이는 옵션
# cat /etc/fstab | grep testmount

 

2. 마운트 포인트 변경 및 마운트 옵션 확인(/testmount -> /noatime)

마운트 할 때 특별한 옵션을 주지 않으면 기본 옵션(Default Options)으로 마운트 된다. 파티션을 새로운 마운트 포인트인 /noatime에 마운트하고 마운트 옵션을 확인한다.

# cd
# umount /testmount

# mkdir /noatime
# mount /dev/sdb1 /noatime
# mount | grep noatime
/dev/sba1 on /noatime type ext4 (rw)

 

3. 마운트시 기본 옵션(noatime 아닌 경우) 설정 확인

기본 옵션을 사용하게 되면 파일을 접근(Access) 할 때마다 atime(Access Time)이 변경된다. 파일의 내용을 수정하거나 내용을 확인해도 atime(Access Time)이 변경된다.

# cd /noatime
# echo "hello" > testfile
# ls -l testfile /* -l : mtime 확인할 때 사용하는 옵션 */
-rw-r--r-- 1 root root 6 Jan 27 03:39 testfile
# ls -lu testfile /* -u : atime 확인할 때 사용하는 옵션 */
-rw-r--r-- 1 root root 6 Jan 27 03:39 testfile

 

# cat testfile
hello
# ls -l testfile
-rw-r--r-- 1 root root 6 Jan 27 03:39 testfile
# ls -lu testfile
-rw-r--r-- 1 root root 6 Jan 27 03:45 testfile

 

4. 마운트 옵션 noatime으로 설정(noatime)

noatime 옵션을 사용하면 파일을 접근(Access) 할 때마다 atime(Access Time)을 기록하지 않는다.

# cd
# umount /noatime
# mount -o noatime /dev/sdb1 /noatime
# mount | grep /noatime
/dev/sdb1 on /noatime type ext4 (rw,noatime)

 

5. 변경된 마운트 옵션(noatime) 확인

# cd /noatime
# rm -rf /noatime/*

# echo "hello" > testfile
# ls -l testfile
-rw-r--r-- 1 root root 6 Jan 27 03:49 testfile
# ls -lu testfile
-rw-r--r-- 1 root root 6 Jan 27 03:49 testfile

<얼마의 시간이 지난 후>

# cat testfile
hello
# ls -l testfile
-rw-r--r-- 1 root root 6 Jan 27 03:49 testfile
# ls -lu testfile
-rw-r--r-- 1 root root 6 Jan 27 03:49 testfile
# vi testfile
-> 새로운 내용 추가

# ls -l testfile
-rw-r--r-- 1 root root 10 Jan 27 10:20 testfile1
# ls -lu testfile
-rw-r--r-- 1 root root 10 Jan 27 10:20 testfile1

파일의 접근 시간을 기록하지 않는 noatime 옵션을 사용하면 파일의 내용을 수정하거나 확인하는 등의 작업을 해도 파일의 접근 시간이 변경되지 않는다. 이렇게 접근 시간을 기록하지 않으면 파일의 접근 시간 정보를 유지하고 있다는 의미로 볼 수 있다.

 

noatime 옵션에 대해서

/var(Log/Spool/Caching) 파일시스템에 noatime 옵션을 통해 마운트 하면, 성능이 좋아진다. 그 이유는 atime이라는 파일에 마지막으로 접근한 시간을 기록하는 것이 끄는 것 때문이다. 그렇기 때문에 noatime 옵션을 사용하면 파일에 접근하는 시간을 기록하지 않아 시스템 성능이 향상될 수 있다.

그렇지만, noatime 옵션을 사용하면 파일에 접근한 시간을 알 수 없기 때문에, 파일이 언제 마지막으로 수정되었는지 알 수 없다. 그래서, 파일이 수정 시간을 추적해야 할 경우 atime 값을 유지하는 relatime 옵션을 사용할 수도 있다.

그러므로, /var 디렉토리도 별도의 파티션으로 생성하는 것을 추천한다. 이렇게 함으로써, noatime 옵션을 사용할 수 있으며, 디스크 공간도 부족해지지 않을 것이다.

 

nosuid 옵션 실습

nosuid는 SetUID 프로그램처럼 작동하지 않습니다. 이것은 일반 사용자가 SetUID가 설정된 프로그램을 실행할 때 발생할 수 있는 보안 취약점을 방지하기 위해 사용할 수 있는 옵션이며, 이로 인해 root 권한으로 실행되는 프로그램의 보안성이 향상됩니다. 그러나, 이러한 옵션이 사용되면 다른 프로그램의 실행에 대한 제한이 발생할 수 있습니다. 이로 인해 일부 프로그램은 예상대로 작동하지 않을 수 있습니다. 따라서, nosuid 옵션을 사용하기 전에 이러한 제한 사항을 고려해야 합니다. 또한, 다른 방법으로 보안성을 향상시키는 것도 고려할 수 있습니다. 예를 들어, 파일 및 디렉토리의 권한을 제한하는 것과 같은 다른 보안 조치를 취할 수 있습니다.

마운트할 디바이스를 선택하고 마운트 옵션을 설정해야 합니다. 마운트 시에 특별한 옵션을 주지 않으면, 기본 옵션으로 마운트됩니다. 그러나 마운트할 디바이스가 특별한 설정이 필요한 경우, 해당 설정을 반드시 적용해야 합니다. 마운트 옵션을 확인하고 적절한 옵션을 선택하기 위해서는 여러 가지 요소들을 고려해야 합니다. 예를 들어, 파일 시스템의 종류, 마운트 포인트의 위치, 보안 요구 사항 등이 있습니다.

디바이스를 선택한 후, 마운트 옵션을 확인하고 적절한 옵션을 선택해야 합니다. 마운트할 디바이스가 특별한 설정이 필요한 경우, 해당 설정을 반드시 적용해야 합니다. 다음은 마운트 포인트 변경 및 마운트 옵션 확인 예시입니다.

# cd
# umount /noatime

# mkdir /setuid
# mount /dev/sdb1 /setuid
# mount | grep /setuid
/dev/hda1 on /setuid type ext4 (rw)

SetUID 프로그램을 만들어야 합니다. 커널 2.6 버전부터는 쉘에서 SetUID나 SetGID를 부여할 수 없습니다. 따라서, SetUID 특수 권한을 지닌 bash 쉘을 만들기 위해서는 vi 편집기를 이용하여 프로그램을 만들어야 합니다. 프로그램을 만들기 위해서는 먼저 vi 편집기를 실행해야 합니다. 또한, SetUID 특수 권한을 가진 프로그램을 만드는 것은 보안 상 위험할 수 있으니, 이를 반드시 고려해야 합니다.

# cd /test
# vi backdoor.c
#include <stdio.h>
--------------------------------
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#define _GNU_SOURCE

int main ()
{
	setuid(0);
	setgid(0);
	system("/bin/bash");
}
--------------------------------

프로그램을 만든 후, gcc 패키지가 없는 경우에는 아래 명령어를 실행하여 gcc RPM 패키지를 설치합니다.

# rpm -qa | grep gcc
# yum -y install gcc

프로그램을 컴파일하고 권한을 설정합니다.

# gcc -o back backdoor.c
# ls -l back
-rwxr-xr-x 1 root root 5.1K Apr 28 17:24 back*
# chmod 4755 back/* SetUID 권한을 부여
# ls -l back
-rwsr-xr-x 1 root root 5.1K Apr 28 17:24 back*
# cp /test/back /setuid /* SetUID 권한이 실행 가능하도록 마운트 된 디렉토리로 cp

SetUID 프로그램을 사용자로 실행합니다.

# telnet localhost
fedora 사용자로 로그인

$ id
uid=500(fedora) gid=500(fedora) groups=500(fedora)
$ cd /setuid
$ ./back
# id
uid=0(root) gid=0(root) groups=500(fedora)
# exit
$ exit
#

마운트 옵션 nosuid로 설정합니다.

# cd ; umount /setuid
# mount -o nosuid /dev/sdb1 /setuid
# mount | grep setuid
/dev/hda1 on /setuid type ext4 (rw,nosuid)
# cp /test/back /setuid

nosuid 옵션 설정을 확인합니다.

# telnet localhost
fedora 사용자로 로그인

$ id
uid=500(fedora) gid=500(fedora) groups=500(fedora)
$ cd /setuid
$ ./back

$ id
uid=500(fedora) gid=500(fedora) groups=500(fedora)
$ exit
$ exit
#

 

nosuid 옵션에 대해서

파일 시스템은 시스템에서 중요한 역할을 담당하기 때문에 보안이 매우 중요합니다. 그러므로, /home (사용자 홈디렉토리) 파일 시스템을 nosuid 옵션으로 마운트하면, 사용자들이 SetUID 프로그램을 만들어도 SetUID 동작을 하지 않기 때문에 시스템의 보안이 강화될 수 있습니다. 이렇게 함으로써 시스템에 악성 코드나 해킹 공격이 들어오는 것을 방지할 수 있습니다.

하지만 이렇게 설정하면 사용자가 SetUID 프로그램을 사용할 수 없다는 단점이 있습니다. 만약 사용자들이 SetUID 프로그램을 사용해야 한다면, nosuid 옵션을 사용하지 않아야 합니다.

# find /home -perm -4000 -exec rm -f {} \\\\;
# mount -o nosuid /home[EX4] "usrquota 마운트 옵션" 실습

위 명령어를 사용하여 /home 파일 시스템을 nosuid 옵션으로 마운트하면, 시스템의 보안을 강화할 수 있습니다. 그러나, 사용자가 SetUID 프로그램을 사용해야 하는 경우에는 이 옵션을 사용하지 않아야 합니다. 이렇게 함으로써, 사용자가 필요한 작업을 수행할 때 시스템의 보안을 유지할 수 있습니다. 이를 위해, 다음과 같은 명령어를 사용할 수 있습니다.

# mount /home

이 명령어는 nosuid 옵션을 사용하지 않으므로, 사용자가 필요한 작업을 수행할 수 있습니다. 그러나, 시스템의 보안에 대해서는 조금 더 신경써야 합니다. 따라서, 시스템의 보안을 유지하면서 사용자가 필요한 작업을 수행할 수 있는 방법을 찾아보아야 합니다.

 

"usrquota 마운트 옵션" 실습

쿼터(Quota)란 디스크 저장 장치의 사용을 제한하기 위해 사용자나 그룹이 가질 수 있는 inode의 수, 혹은 사용자나 그룹에게 할당된 디스크 블록의 수를 제한하는 개념입니다. 이를 통해 디스크 공간을 효율적으로 관리할 수 있습니다.

쿼터를 이해하기 위해서는 제한(Limit)이라는 개념을 이해해야 합니다. 쿼터는 제한을 설정하는 방법 중 하나로, 디스크 저장 장치에 저장되는 파일의 개수(Inode Count)나 사용량(Block Count)을 제한함으로써 사용자 또는 그룹의 디스크 공간 사용을 제한합니다.

쿼터에서는 Soft Limit과 Hard Limit 두 가지 제한 방법을 사용합니다. Soft Limit은 제한을 느슨하게 설정한 것으로, 사용자나 그룹이 Soft Limit을 넘어섰을 때 경고를 주고, Hard Limit을 넘어섰을 때는 파일 저장을 막습니다. 반면 Hard Limit은 제한을 더 엄격하게 설정한 것으로, 사용자나 그룹이 Hard Limit을 넘어섰을 때는 파일 저장을 막습니다.

예를 들어, 사용자나 그룹에 대해 Disk의 용량을 쿼터를 이용해 10메가로 제한하고 Disk 사용량이 9메가가 넘을 시 경고를 해주는 것을 말합니다. 이렇게 쿼터를 설정하면 디스크 저장 장치의 사용을 효율적으로 제한할 수 있습니다.

 

quota 설치 및 확인

quota가 설치되어 있는지 확인하는 하는 법
# rpm -qa quota  (# yum -y install quota)
quota-3.13-1.2.5.el5

Quota는 리눅스 시스템에서 디스크 용량을 제한하는 데 사용되는 라이브러리입니다. 디스크 용량을 제한하면 사용자가 시스템에서 사용할 수 있는 디스크 용량을 제한할 수 있으므로 디스크 용량을 효율적으로 사용할 수 있습니다. 또한, 시스템이 과도한 디스크 사용량으로 인해 느려지는 것을 방지할 수 있습니다.

만약 quota가 설치되어 있지 않은 경우, "yum -y install quota"를 실행하여 설치할 수 있습니다. 그러나, quota를 설치하기 전에 시스템에서 quota가 필요한 이유를 잘 이해하고 설치할 것을 권장합니다. 또한, quota 사용 시 유용한 명령어도 함께 사용하는 것이 좋습니다. 예를 들어, "edquota" 명령어는 특정 사용자 또는 그룹에 대한 quota를 편집하는 데 사용됩니다. 이를 통해 사용자 또는 그룹별로 디스크 사용량을 제한할 수 있습니다.

 

Quota 관련 명령어

명령어 설명
quota 설정된 각 사용자 또는 그룹의 쿼타를 확인
edquota 각 사용자 또는 그룹의 디스크 쿼타를 설정 (edit)
quotaon 쿼타 작동
quotaoff 쿼타 중지
quotacheck 쿼타 상황 확인 (check)
repquota 쿼타 설정내역 확인 (report)

 

Quota 설정 방법

(1) 마운트 옵션 설정

# mount -o usrquota /home (/etc/fstab)

위 명령어를 입력하여 마운트 옵션을 설정합니다. 이를 통해 /home 디렉토리에 대한 Quota 설정이 가능하게 됩니다.

(2) F/S(EX: /home)에 aquota.user(EX: /home/aquota.user)

# quotacheck –am

위 명령어를 이용하여 Quota 사용을 위한 파일시스템에 aquota.user 파일을 생성합니다. 이 파일은 Quota 설정을 위해 사용됩니다.

(3) Quota 설정

# edquota qtest1

위 명령어를 입력하여 Quota 설정을 합니다. qtest1은 설정할 유저 이름입니다. 이를 통해 유저마다 Quota를 설정할 수 있습니다.

(4) Quota ON

# quotaon –a

위 명령어를 입력하여 Quota 설정을 활성화합니다. 이를 통해 Quota 설정이 적용됩니다.

 

Quota 해제 방법

(1) Quota OFF

# quotaoff –a

위 명령어를 입력하여 Quota 설정을 종료합니다.

(2) F/S(EX: /home)에 aquota.user 파일 삭제

# rm –f /home/aquota.user

위 명령어를 이용하여 aquota.user 파일을 삭제합니다. 이를 통해 Quota 설정이 초기화됩니다.

(3) 마운트 옵션 복원

# mount -o remount /home (/etc/fstab)

위 명령어를 이용하여 마운트 옵션을 복원합니다.

마운트 포인트 변경 및 마운트 옵션 확인

마운트 포인트를 변경하거나 마운트할 때 사용할 옵션을 확인합니다.

# cd ; umount /home
# mount -o usrquota /home   (# mount -o usrquota /dev/sda3 /home)
# mount | grep /home

좀 더 간단한 구문으로도 마운트할 수 있습니다.

# mount /dev/sdb1 /home

/etc/fstab 파일에 항목을 추가하여 부팅 시 자동으로 마운트할 수도 있습니다. 이때, mount LABEL=/home /home** 구문을 사용하여 특정 라벨이 지정된 장치를 마운트할 수도 있습니다.

quota를 이용할 사용자 만들기

사용자를 만듭니다.

# useradd qtest1
# passwd qtest1

# useradd qtest2
# passwd qtest2

# useradd qtest3
# passwd qtest3

쿼터 데이터베이스(EX: /home/aquota.user) 정보 입력

# cd
# quotacheck -am
# ls -l /home
-> aquota.user
  • m 옵션을 사용하여 마운트를 읽기 전용으로 변경하지 않습니다. /etc/mtab 파일에 목록에 있는 모든 장치를 마운트하려면 a 옵션을 사용합니다.
# quotacheck -a

쿼터 적용

# quotaon /home

쿼터 사용자인 qtest1로 로그인해서 사용 용량 초과 실습

# su – qtest1
$ pwd
-> /home/qtest1 홈디렉토리

[qtest1@test ~]$ cat /etc/services  >> file1
[qtest1@test ~]$ ls -lh file1
-rw-rw-r--. 1 qtest1 qtest1 655K Mar 26 10:59 file1
[qtest1@test ~]$ cat /etc/services  >> file1
[qtest1@test ~]$ cat /etc/services  >> file1
[qtest1@test ~]$ cat /etc/services  >> file1
[qtest1@test ~]$ cat /etc/services  >> file1
[qtest1@test ~]$ cat /etc/services  >> file1
[qtest1@test ~]$ cat /etc/services  >> file1
[qtest1@test ~]$ cat /etc/services  >> file1
sda8: warning, user block quota exceeded.

[qtest1@test ~]$ cat /etc/services  >> file1
cat: write error: Disk quota exceeded
[qtest1@test ~]$ cat /etc/services  >> file1
cat: write error: Disk quota exceeded
[qtest1@test ~]$ cat /etc/services  >> file1
cat: write error: Disk quota exceeded
[qtest1@test ~]$ ls -lh
total 7.0M
-rw-rw-r--. 1 qtest1 qtest1 7.0M Mar 26 11:00 file1

다른 사용자도 똑같이 적용시키기

# edquota -p qtest1 qtest2
# edquota -p qtest1 qtest2 test3
# edquota -p qtest1 `awk -F: '$3 > 1000 && $3 < 60000 '{print $1}' /etc/passwd`

쿼터 사용자인 qtest2로 로그인해서 사용 용량 초과 실습

# su - qtest2
$ cp /boot/vmlinuz-2.6.18-164.el5 linux1
$ cp linux1 linux2
$ cp linux1 linux3
hda1: warning, user block quota exceeded.
$ cp linux1 linux4
hda1: write failed, user block limit reached.
cp: writing `linux4': Disk quota exceeded
$ ls -lh
-rw-r--r-- 1 qtest2 qtest2 2.1M  8월  2 12:55 test1
-rw-r--r-- 1 qtest2 qtest2 2.1M  8월  2 12:56 test2
-rw-r--r--

쿼터 설정이 없는 qtest3로 로그인해서 사용 용량 초과 실습

# su - qtest3
$ cp /boot/vmlinuz-2.6.18-164.el5 file1
$ cp file1 file2
$ cp file1 file3
$ cp file1 file4
$ cp file1 file5
$ ls -lh

위 코드는 qtest3 사용자로 로그인하여 /boot/vmlinuz-2.6.18-164.el5 파일을 복사한 후 다른 파일에도 복사하는 코드입니다. 마지막으로 ls 명령어를 사용하여 파일 리스트를 출력합니다.

쿼터 설정 off

$ exit

# quotaoff /home

# su - qtest2

위 코드는 qtest3에서 로그아웃한 후, 쿼터를 off하는 명령어와 qtest2 사용자로 로그인하는 명령어입니다.

qtest2 사용자로 전환

$ cp linux1 linux5
$ ls -lh

$ exit

위 코드는 qtest2 사용자로 전환하여 linux1 파일을 복사한 후, ls 명령어를 사용하여 파일 리스트를 출력합니다. 마지막으로 qtest2에서 로그아웃합니다.

  1. 복원 - /quota 파일시스템 Quota OFF사용자 홈 디렉토리인 /home 파일 시스템의 Quota를 비활성화합니다.
  2. # quotaoff /home
  3. remount - /home 파일 시스템을 usrquota 옵션으로 다시 마운트/etc/fstab 파일에 /home 파일 시스템이 usrquota 옵션으로 마운트되도록 설정하고, 다시 마운트합니다.
  4. # mount -o remount,usrquota /home
  5. 검사 - /home 파일 시스템이 올바르게 마운트되었는지 확인/home 파일 시스템이 올바르게 마운트되었는지 확인합니다.
  6. # mount | grep /home
  7. 사용자 삭제 - qtest1, qtest2, qtest3 사용자 삭제qtest1, qtest2, qtest3 사용자를 삭제합니다. -r 옵션을 사용하여 사용자 홈 디렉토리도 삭제합니다.
  8. # userdel -r qtest1 # userdel -r qtest2 # userdel -r qtest3
  9. 파일 삭제 - /home/aquota.user 파일 삭제/home/aquota.user 파일을 삭제합니다.
  10. # rm /home/aquota.user
  11. 권장사항 - usrquota, grpquota 옵션 사용 권장사용자 홈 디렉토리인 /home 파일 시스템과 Mail 파일시스템인 /var/mail 파일 시스템은 usrquota 옵션으로 마운트하여 용량 제한 또는 파일 제한을 설정하는 것이 권장됩니다.
  12. # mount -o remount,usrquota /home

xfs quota 설정 방법

  1. /etc/fstab 파일 열기
    # vi /etc/fstab
    
  2. /etc/fstab 파일을 수정하기 위해서는 먼저 파일을 열어야 합니다. 아래 명령어를 입력해 파일을 열어보세요.
  3. /etc/fstab 파일에 새 항목 추가
    UUID=5392d03e-fb91-4071-aa10-248bb54f48d4 /                       xfs     defaults        0 0
    UUID=21b39ed9-9b3a-4a52-93a3-3ae14b7954d4 /boot                   ext4    defaults        1 2
    UUID=f64133ae-ddb0-4af0-b65d-257ac5c5084d /home                   xfs     defaults,usrquota        0 0
    UUID=bd9f90bc-34ed-4e03-a660-dc648d31dee1 /var                    xfs     defaults        0 0
    UUID=3a741d74-96c2-4ed1-a39b-45ffa814ce47 swap                    swap    defaults        0 0
    UUID=08f86f5f-cbdb-4971-ac7e-4e917c4342b2 /disk1		  xfs 	  defaults	  0 0
    
  4. 새로운 마운트 지점을 추가하기 위해서는 /etc/fstab 파일에 새 항목을 추가해야 합니다. 아래와 같은 형식으로 추가해보세요.
  5. 시스템 재부팅
    # reboot
    
  6. 변경 사항이 반영되기 위해서는 시스템을 재부팅해야 합니다. 아래 명령어를 입력해 시스템을 재부팅해보세요.
  7. 마운트된 디렉토리 확인
    # mount | grep home
    /dev/sda3 on /home type xfs (rw,relatime,seclabel,attr2,inode64,usrquota)
    
  8. /etc/fstab 파일을 수정하고 시스템을 재부팅한 다음에는 새로운 마운트 지점이 올바르게 설정되었는지 확인해야 합니다. 아래 명령어를 실행해 마운트된 디렉토리를 확인해보세요.
  9. 쿼터 확인
    # xfs_quota -x -c 'report -h' /home
    User quota on /home (/dev/sda3)
                            Blocks
    User ID      Used   Soft   Hard Warn/Grace
    ---------- ---------------------------------
    root            0      0      0  00 [------]
    team01        16K      0      0  00 [------]
    fedora        12K      0      0  00 [------]
    
  10. 디렉토리에 대한 쿼터를 설정하기 전에는 현재 사용 중인 용량을 확인하는 것이 좋습니다. 아래 명령어를 실행해 쿼터 사용량을 확인해보세요.
  11. 쿼터 제한 설정
    # xfs_quota -x -c 'limit -u bsoft=700m bhard=1g team01' /home
    
  12. 마지막으로, 사용자 혹은 그룹에 대한 쿼터 제한을 설정할 수 있습니다. 아래 명령어를 실행해 쿼터 제한을 설정해보세요.

각 단계별로 코드를 삽입하여 설명하였습니다. 이제 더 자세한 내용을 추가하여 더욱 자세히 설명해보세요.

 

mount -a / umount -a 명령어

mount -a 명령어는 /etc/fstab 파일에 정의된 모든 파일시스템을 마운트합니다. 이 명령어를 사용하면 각 파일시스템을 개별적으로 마운트하는 불편함을 줄일 수 있습니다. umount -a 명령어는 현재 마운트되어 있는 모든 파일시스템을 언마운트합니다. 이 명령어를 사용하면 파일시스템을 개별적으로 언마운트하는 불편함을 줄일 수 있습니다. 그러나, /, /usr, /var, /tmp, 가상 파일시스템과 같이 언마운트할 수 없는 파일시스템이 있을 수 있습니다. 이 경우, 해당 파일시스템을 언마운트하기 위해서는 해당 파일시스템을 사용하고 있는 프로세스를 먼저 종료해야 합니다. 프로세스를 종료할 수 없는 경우, 해당 파일시스템을 강제로 언마운트할 수 있습니다.

[명령어 형식]

# mount -a /* (/etc/fstab) 마운트 할 만한 정보를 모두 마운트 하는 명령어 */
# umount -a /* (/etc/mtab)  마운트 되어 있는 자원을 모두 해제할 때 사용하는 명령어 */

이 명령어들은 리눅스 시스템에서 자주 사용되는 명령어 중 하나입니다. 마운트 명령어는 파일 시스템을 장치에 연결하여 사용할 수 있도록 만들어주는 명령어입니다. umount 명령어는 마운트 명령어의 반대로, 파일 시스템을 장치에서 연결을 해제하는 명령어입니다. 이 명령어들은 /etc/fstab 및 /etc/mtab 파일에서 모든 정보를 마운트 및 언마운트합니다. 이러한 명령어들은 시스템 관리자들이 매우 유용하게 사용할 수 있습니다.

 

mount -a /umount -a 실습

umount -a 명령어 실습

먼저, df -h 명령어를 입력하여 현재 시스템에서 마운트되어 있는 모든 파일 시스템을 확인합니다. 그리고 umount -a 명령어를 입력하여 마운트된 모든 파일 시스템을 언마운트합니다. 그러나, 시스템이 사용 중인 파일 시스템은 언마운트할 수 없으므로 오류가 발생할 수 있습니다. 마지막으로 df -h 명령어를 입력하여 파일 시스템이 언마운트되었는지 확인합니다.

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              17G  3.4G   12G  22% /
/dev/sda8             487M   11M  451M   3% /data1
/dev/sda7             487M   11M  451M   3% /data2
/dev/sda6             487M   11M  451M   3% /data3
/dev/sda5             487M   11M  451M   3% /data4
/dev/sda3             487M   11M  451M   3% /home
tmpfs                 506M     0  506M   0% /dev/shm
/dev/sdb1            1004M   18M  936M   2% /testmount
# umount -a
umount: /var/lib/nfs/rpc_pipefs: device is busy
umount: /: device is busy
# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              17G  3.4G   12G  22% /

mount -a 명령어 실습

먼저, /etc/fstab 파일을 수정하여 파일 시스템이 부팅 시 자동으로 마운트되도록 합니다. 그리고 mount -a 명령어를 입력하여 /etc/fstab 파일에 등록된 모든 파일 시스템을 마운트합니다. 마지막으로 df -h 명령어를 입력하여 파일 시스템이 마운트되었는지 확인합니다.

# vi /etc/fstab
LABEL=/                 /                       ext4    defaults        1 1
LABEL=/data1            /data1                  ext4    defaults        1 2
LABEL=/data2            /data2                  ext4    defaults        1 2
LABEL=/data3            /data3                  ext4    defaults        1 2
LABEL=/data4            /data4                  ext4    defaults        1 2
LABEL=/home             /home                   ext4    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
LABEL=SWAP-sda2         swap                    swap    defaults        0 0
#/dev/sdb1              /testmount              ext4    defaults        1 2

# mount -a
# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              17G  3.4G   12G  22% /
/dev/sda8             487M   11M  451M   3% /data1
/dev/sda7             487M   11M  451M   3% /data2
/dev/sda6             487M   11M  451M   3% /data3
/dev/sda5             487M   11M  451M   3% /data4
/dev/sda3             487M   11M  451M   3% /home
tmpfs                 506M     0  506M   0% /dev/shm

 

사용 중인 파일시스템 마운트 해제

파일시스템을 언마운트하기 위해서, 기본적으로 파일시스템을 사용하고 있는 사용자가 없어야한다. 그렇지 않으면, 관리자는 파일시스템을 언마운트 할 수 없다. 파일시스템을 사용하고 있는 사용자를 확인하려면, fuser -ck 명령어를 사용하면 된다. 만약 다른 사용자가 파일시스템을 사용하고 있다면, 관리자는 이러한 사용자를 로그 아웃 시킨 후 파일시스템을 언마운트 할 수 있다.

만약 최소 설치 버전을 사용하고 있다면, psmisc를 설치해야 한다.

[SERVER1# dnf -y install psmisc

따라서, 파일시스템을 언마운트하기 위해서는 다른 사용자가 파일시스템을 사용하고 있지 않은지 확인한 후, 기본적으로 fuser -ck 명령어를 사용하여 확인할 수 있다. 만약 다른 사용자가 파일시스템을 사용하고 있다면, 관리자는 이러한 사용자를 로그 아웃 시킨 후 파일시스템을 언마운트할 수 있다. 이러한 파일시스템을 언마운트 할 수 있는 방법 중 하나는 psmisc를 설치하는 것이다.

 

명령어 형식

# fuser -cu /home
# fuser -ck /home

위 명령어는 리눅스의 fuser 명령어를 사용하여 /home 디렉터리에 대한 프로세스 락(lock)을 확인하고 그것을 해제하는데 사용됩니다. 이 명령어는 파일 시스템에서 발생할 수 있는 문제를 해결하는데 유용합니다. 그러나 주의할 점은 이 명령어를 사용할 때 이러한 작업을 수행하는 프로세스들에게 모두 영향을 미칠 수 있다는 것입니다. 따라서 이 명령어를 사용하기 전에 이 명령어가 실행될 때 영향을 받을 수 있는 다른 프로세스들을 확인하는 것이 좋습니다.

 

사용 중인 파일 시스템 언마운트 실습

Term1: 사용자 윈도우

사용자 윈도우에 로그인합니다.

현재 디렉토리를 확인합니다.

$ pwd
/home/fedora

Term2: 관리자 윈도우

관리자 윈도우를 엽니다.

파일 시스템 체크나 오프라인 백업을 하기 위해 파일 시스템을 언마운트합니다. 이때, 언마운트에 실패할 경우 다음 단계로 넘어가지 마세요.

# umount /home
umount: /home: device is busy
umount: /home: device is busy

어떤 프로세스가 파일 시스템을 사용하고 있는지 확인합니다.

# fuser -cu /home       /* -c : PID, -u : username */
/home:                5103c(fedora)

해당 프로세스를 종료시킵니다. 종료시키지 않으면 파일 시스템을 언마운트할 수 없습니다.

# wall '/home directory! stops a use'
Broadcast message from root (pts/1) (Wed Jan 27 05:53:29 2010):
/home directory! stops a use

다시 확인해보면, 어떤 프로세스도 파일 시스템을 사용하고 있지 않은 것을 볼 수 있습니다.

# fuser –cu /home
/home:                5103c(fedora)
# fuser –ck /home
/home:                5103c

이제 파일 시스템을 언마운트합니다.

# umount /home

 

자신이 사용중 일때

# mount /home

/home 디렉토리를 마운트합니다.

# cd /home
# umount /home

/home 디렉토리로 이동한 후, 해당 디렉토리를 언마운트합니다.

umount: /home: device is busy
umount: /home: device is busy

디바이스가 사용 중이라는 메시지가 표시됩니다.

# fuser –cu /home
/home:                9018c(root)

/home 디렉토리를 사용 중인 프로세스를 확인합니다. 여기서는 root 권한으로 9018번 PID의 bash 쉘이 사용 중이므로 이를 종료합니다.

# ps
 PID TTY          TIME CMD
 9018 pts/3    00:00:00 bash
# cd
# umount /home

현재 실행 중인 프로세스를 확인합니다. 이제 /home 디렉토리를 언마운트할 수 있습니다.

# mount /home
# df -h
-> /home 마운트 확인

/home 디렉토리를 마운트하고, df 명령으로 /home 디렉토리가 마운트되었는지 확인합니다.

 

e2label 명령어

e2label은 특정 볼륨에 대한 복잡한 장치명에 라벨을 붙여 쉽게 사용할 수 있도록 해주는 명령어입니다. 이 명령어를 사용하면, 사용자는 볼륨에 대한 정보를 더욱 쉽게 파악할 수 있습니다. 예를 들어, e2label을 사용하면 볼륨에 대한 간단한 이름을 지정할 수 있으며, 이를 통해 사용자는 볼륨을 더욱 빠르게 식별할 수 있습니다. 또한, e2label은 사용자가 볼륨을 더욱 쉽게 관리할 수 있도록 해줍니다. 이 명령어를 사용하면, 사용자는 볼륨에 대한 다양한 정보를 추가하고, 이를 통해 볼륨을 보다 효율적으로 관리할 수 있습니다.

 

명령어 형식

# e2label /dev/sdb1
# e2label /dev/sdb1 /testmount

이 명령어는 리눅스에서 파일 시스템 레이블을 변경하는 데 사용됩니다. 이 명령어를 사용하면 더 쉽게 읽을 수 있는 레이블을 지정하여 파일 시스템을 식별할 수 있습니다. 또한, 이 명령어를 사용하면 파일 시스템의 이름이 변경되어도 데이터에 영향을 미치지 않습니다. 이것은 유용한 기능이며, 파일 시스템을 사용하는 데 있어서 더 효율적인 방법을 제공합니다. 이 명령어 사용 방법을 잘 익혀두면 더욱 효율적으로 시스템을 관리할 수 있습니다.

 

e2label 실습

e2label 명령어는 파일 시스템의 라벨을 설정하거나 변경하는 명령어입니다.

# e2label
Usage: e2label device [newlabel]
# e2label /dev/sda3
/home
# e2label /dev/sdb1
#

# e2label /dev/sdb1 /testmount
# e2label /dev/sdb1
/testmount

먼저 e2label 명령어를 입력하면 사용 방법이 출력됩니다. 그 다음 /dev/sda3 장치에 라벨을 설정하려면 e2label /dev/sda3 명령어를 사용합니다. 라벨은 /home으로 설정되었습니다. /dev/sdb1 장치는 라벨이 설정되어 있지 않으므로 라벨을 조회하면 공백이 출력됩니다. /dev/sdb1 장치에 /testmount 라벨을 설정하려면 e2label /dev/sdb1 /testmount 명령어를 사용합니다. e2label /dev/sdb1 명령어를 사용하여 라벨이 /testmount로 설정되었는지 확인할 수 있습니다.

# vi /etc/fstab
LABEL=/                 /                       ext4    defaults        1 1
LABEL=/data1            /data1                  ext4    defaults        1 2
LABEL=/data2            /data2                  ext4    defaults        1 2
LABEL=/data3            /data3                  ext4    defaults        1 2
LABEL=/data4            /data4                  ext4    defaults        1 2
LABEL=/home             /home                   ext4    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
LABEL=SWAP-sda2         swap                    swap    defaults        0 0
#
# (1) DISK Configuration
#
#/dev/sdb1              /testmount              ext4    defaults        1 2
LABEL=/testmount        /testmount              ext4    defaults        1 2
# umount /testmount
# mount /testmount
# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              17G  3.4G   12G  22% /
/dev/sda8             487M   11M  451M   3% /data1
/dev/sda7             487M   11M  451M   3% /data2
/dev/sda6             487M   11M  451M   3% /data3
/dev/sda5             487M   11M  451M   3% /data4
/dev/sda3             487M   11M  451M   3% /home
tmpfs                 506M     0  506M   0% /dev/shm
/dev/sdb1            1004M   18M  936M   2% /testmount
# e2label /dev/sdb1 /testmount (/etc/fstab)
# mount /dev/sdb1 /testmount
# mount LABEL=/testmount /testmount
# mount /testmount

/etc/fstab 파일은 파일 시스템과 관련된 정보를 포함하고 있습니다. 이 파일에는 파일 시스템 경로, 파일 시스템 유형, 마운트 포인트, 마운트 옵션 등이 포함됩니다. /dev/sdb1 장치를 /testmount 디렉토리에 마운트하려면 /etc/fstab 파일에 목록을 추가해야 합니다. 이 목록을 추가하는 방법은 다음과 같습니다.

  1. /etc/fstab 파일을 엽니다.
  2. 파일 맨 끝에 다음과 같은 구문을 추가합니다. LABEL=/testmount /testmount ext4 defaults 1 2
  3. 파일을 저장하고 닫습니다.

이제 /testmount 라벨이 지정된 장치를 마운트할 수 있습니다. /testmount 디렉토리를 마운트하기 전에는 장치가 준비되어 있어야 합니다. 이를 위해 다음과 같은 작업을 수행해야 할 수 있습니다.

  • /dev/sdb1 장치를 파티션으로 나눕니다.
  • 파일 시스템을 생성합니다.
  • /testmount 디렉토리를 생성합니다.

이러한 작업을 수행하면 /testmount 디렉토리에 파일 시스템이 마운트되어 사용할 수 있습니다.

 

디스크 추가 작업

디스크 인식

디스크 인식을 위해서는 kudzu를 활성화해야 합니다. 이를 위해서는 다음 명령어를 사용합니다.

# chkconfig --list kudzu
# chkconfig kudzu on

다음으로, VMWare 상에서 디스크를 생성하고, VM을 켜주세요. 이후 다음 명령어를 사용하여 디스크가 인식되었는지 확인합니다.

# ls -l /dev/sd?  (# fdisk -l)

 

파티션 설정

디스크 인식이 완료되면, 파티션을 설정해야 합니다. 이를 위해서는 다음 명령어를 사용합니다.

# fdisk /dev/sdc
/dev/sdc1(primary partition(1G))

이후 다음 명령어를 사용하여 파티션이 제대로 설정되었는지 확인합니다.

# fdisk –l /dev/sdc

 

파일 시스템 작업

파티션 설정이 완료되면, 다음 명령어를 사용하여 파일 시스템을 설정합니다.

# mkfs.ext4 /dev/sdc1

파일 시스템이 올바르게 설정되었는지 확인하려면 다음 명령어를 사용하세요.

# dumpe2fs /dev/sdc1   (# tune2fs –l /dev/sdc1)

 

마운트 작업

파일 시스템이 설정되면, 다음 명령어를 사용하여 디스크를 마운트합니다.

# mkdir /oracle
# mount /dev/sdc1 /oracle

마운트가 제대로 이루어졌는지 확인하려면 다음 명령어를 사용하세요.

# df –h

마지막으로, 부팅 시 자동으로 마운트하기 위해 /etc/fstab 파일에 다음 내용을 추가합니다.

/dev/sdc1 /oracle ext4 defaults 0 0

위 내용을 추가한 뒤 다음 명령어를 사용하여 마운트를 완료하세요.

# mount -a

 

오버마운트

파일 시스템을 마운트할 때는 대부분 빈 디렉토리를 사용합니다. 하지만 가끔 파일이 이미 있는 장치를 마운트해야 할 때가 있습니다. 이를 오버마운트라고 합니다.

오버마운트를 하게 되면, 마운트된 디렉토리 안에 이미 있는 파일들은 무시되고, 마운트된 장치의 파일만 보여지게 됩니다. 이전에 작업한 파일들은 마운트를 해제해야만 볼 수 있습니다.

먼저, 현재 마운트된 장치를 확인하기 위해 df 명령어를 입력합니다. 여기서는 /dev/sdb1이 마운트되어 있는 것을 확인할 수 있습니다.

$ df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda1       98490636 4432388  89032100   5% /
/dev/sdb1        1014680    2580    890964   1% /testmount  # /dev/sdb1 마운트되어 있는것을 확인

그리고, 마운트된 장치를 해제합니다.

$ umount /testmount

이제 /testmount 디렉토리에 파일을 생성합니다.

$ cd /testmount
$ touch file1 file2
$ ls
file1  file2

그리고, sda1_file이라는 파일을 생성합니다.

$ touch sda1_file
$ ls
file1  file2  sda1_file   # /testmount 디렉토리 자체에 파일을 생성

이제 /dev/sdb1을 다시 마운트합니다.

$ cd
$ mount /dev/sdb1 /testmount/

/testmount 디렉토리에 들어가서 파일을 확인해보면, 이전에 생성한 파일들이 보이지 않습니다. 대신 /dev/sdb1 내의 파일들이 출력됩니다.

$ cd /testmount/
$ ls
back  file1.txt  lost+found    # 기존에 생성한 파일이 나오지 않으며 /dev/sdb1 내의 파일이 출력

마지막으로, 마운트를 해제하고 /testmount 디렉토리에 들어가보면, 이전에 생성한 파일들이 출력됩니다.

$ cd
$ umount /testmount/
$ cd /testmount/
$ ls
file1  file2  sda1_file

따라서, 오버마운트를 하게 되면, 디렉토리 자체에 저장되어 있는 파일들은 무시되고, 마운트된 장치의 파일만 보여지게 됩니다. 이전에 작업한 파일들은 마운트를 해제해야만 볼 수 있습니다. 마운트용 디렉토리에는 파일을 저장하지 않습니다.

반응형