리눅스 마운트 상태 확인 - linugseu maunteu sangtae hwag-in

리눅스에서 df -h 명령어를 통해 용량을 확인하고 용량이 큰 디렉터리의 파일들을

관리하기 위해서는 해당 폴더가 어디에 마운트되어 있는지를 알아야 대응이 됩니다.

리눅스 마운트 상태 확인 - linugseu maunteu sangtae hwag-in

df 명령은 Filesystem 카테고리별로 요약해서 나오기 때문에 Mount 된 항목의

세부한 경로까지는 알 수가 없습니다.

대부분 이럴 경우 mount -l이라는 명령어를 통해서 현재 마운트가 어떻게 되어있는지

파악할 수도 있겠지만 다음 그림과 같이 굉장히 가독성이 떨어지게 됩니다.

명령어 : mount -l
리눅스 마운트 상태 확인 - linugseu maunteu sangtae hwag-in

마운트 디렉토리를 하나하나 찾아봐야 하고 시간도 오래 걸리는데

mount -l 명령어가 아닌 findmnt라는 명령어를 통해 정보를 확인하면

트리구조의 형태로 마운트 현황을 파악할 수 있습니다.

명령어 : findmnt
리눅스 마운트 상태 확인 - linugseu maunteu sangtae hwag-in

가독성도 뛰어나고 Filesystem별로 정리가 되어 mount -l 명령어보다 사용하기 좋습니다.

또한 findmnt 명령어는 특정 device의 마운트 정보만을 출력할 수도 있습니다.

명령어 : findmnt /dev/xvda1
리눅스 마운트 상태 확인 - linugseu maunteu sangtae hwag-in

df -l을 통해 리눅스 시스템에서 용량이 많은 쪽을 찾고 findmnt를 통해 해당 위치를 추적하여

용량을 관리하면 용량 넘침으로 인한 에러는 사전에 방지가 가능합니다.

mount 동작은 생성된 파일시스템을 운영체제와 연결하는 작업을 의미.

유닉스 계열 시스템에서 파티션은 수동으로 운영체제의 디렉터리에 연결 된다.

# mount  [-options]  /dev/partition  /point(dir)

# mount   :  현재 연결되어 있는 파일시스템 정보보기

# mount   /dev/sdb#   /point1

# mount  -t  ext3  /dev/sdb#  /point2-->  타입에 따른 마운트 (옵션 사용)

# mount  -o  ro  /dev/sdb#  /point3-->  -o 뒤에 나오는 것을 옵션으로 처리하겠다.

rw :  default value 읽기, 쓰기 

ro  :  read only-->  데이터의 손상도를 가하지 않을 때 사용함 (데이터 값들이 전혀 수정되지 않음)

mount 명령어로 상태 확인할 수 있음

* 디렉터리 안에 'lost+found' 라는 디렉터리가 있다면 파티션이라는 의미!

# df  -h                   :  파일시스템의 연결 상태 확인 및 사이즈 정보 확인 (disk file - heterogeneous)

# df  -hT                 :  해당 연결된 타입까지 볼 수 있음

# file -s /dev/partition:  또 다른 방법 타입 알 수 있음

# vi  /etc/mtab  :  umount 했을 때, 확인하는 방법 (변경하면 안됨!!!!)

# du -sk                   :  파일시스템 내 디렉터리 단위로 크기 정보 확인

# umount  /point             :  연결 해제   

[실습]

----------------------------------------------------------------

1. fdisk 작업 (4개 생성)

2. mkfs 작업

# mkfs  /dev/sdb1

# mkfs.ext2  /dev/sdb2

# mkfs.ext3  /dev/sdb3

# mkfs.ext4  /dev/sdb4

3. mount 작업

# mkdir  /p1 /p2 /p3 /p4

# mount  /dev/sdb1 /p1

# mount  /dev/sdb2 /p2

# mount  -t ext3  /dev/sdb3 /p3

# mount  -o ro  /dev/sdb4  /p4

# ls -l /p1

# df  -h

# mount

4. 연결 해제 작업

# fuser  /p1       : 해당 point에 작업 내역 확인 -->  현재 접속한 유저 누구야?

# fuser -k /p1   : 해당 point의 작업 강제 종료 -->  접속한 유저들 끊내버리겠다. killing

# umount  /p1 -->  사용자가 없고, 프로그램을 안돌리고 있어야 umount 가능

# umount  /p2

# umount  /p3

# umount  /p4

# df -h

----------------------------------------------------------------

* mount 되어 있는 디스크의 경우 fdisk, mkfs 명령을 사용할 수 없음.

* mount 되어 있는 파티션에 사용자가 있는 경우 umount 명령이 실행 안됨.

[mount 자동화]

부팅 시 파일시스템을 자동으로 마운트 할 수 있도록 구성하기 위해 /etc/fstab 파일 사용.

마운트 명령에 사용될 내용을 정리하여 저장하면 리부팅 이후 적용되어 자동으로 마운트가 진행 됨.

<파일 구성>

mount-device   point    FStype    mount-option    dump   fsck

  /dev/sdb1         /p1      ext2        defaults             0        1

  /dev/sdb2        /p2      ext3        ro                      0        0

  /dev/sdb3        /p3      ext4        defaults             0        1

* 완료 후 점검을 위해 사용되는 명령

# mount -a--> 자동적으로 마운트 명령 쓰겠다.

# df -h

# umount -a--> 자동적으로 마운트한 것 해지하겠다.

[파일시스템 복구]

-----------------------------------------------------------------------

1. 시스템 리부팅 후 enter눌러서 Grub로 진입

2. 이미지 선택 후 'e'(edit) 명령 

3. Kernel 이미지 선택 후 'e' 명령

4. grub> 프롬프트의 마지막 부분에 single 추가

5. 'b' 명령을 이용하여 booting

6. Single User mode(관리자만 로그인 되는 상태) 진입

    -> 패스워드를 물어보지 않음. 

7. 복구 시작 

    fsck  -->  데이터 구성 정보 파일 수정 --> ctrl+d 부팅 진행

* 장애 발생 시 '/' 파티션의 마운트 상태는 ro로 자동 변경 됨.

* '/' 파티션의 마운트 방법 변경

# mount -o remount,ro /dev/sdb1

# mount

# mount -o remount,rw /dev/sdb1

# mount

-----------------------------------------------------------------------

[File System ChecK]

파일시스템의 이상 유무를 검사할 때 사용되는 명령으로 무결성 점검 도구라 함.

파일시스템 내의 데이터에 이상이 발생할 경우 무결성 유지를 위해 복구를 시도

하거나 또는 손상도가 심할 경우 삭제함.

데이터 접근시 데이터 손상이 되었을 때, 서버를 켠 상태에서 재부팅이 불가능 할 때

데이터를 실행시키지 못할 정도로 손상이 되어있다면 삭제할 확률이 큼

그러므로 백업본을 만들어 놓기!

# fsck [-options] partition_name

# fsck  

# fsck  /dev/sdb1

# fsck  -t  ext4  /dev/sdb2

* fsck 명령 사용 시 해당 파티션은 반드시 umount 상태

* 사용자가 데이터 작업 시, 해당 내용을 에러로 판단하여 처리함.

clean :  

stable :  안정화되었다.

unclean :  베드섹터가 있다. 복구가 불가능한 파일이 있다. lost+file 확인