리눅스 파일 시스템 이해하기 : 파일 시스템 확인 방법 가이드

리눅스 파일 시스템에 대한 이해와 파일 시스템 확인 방법에 대한 포괄적인 가이드를 제공합니다. ext4, XFS, Btrfs 등 다양한 파일 시스템과 df, du, mount, findmnt 등의 명령어를 사용하여 파일 시스템을 확인하는 방법에 대해 알아봅니다.
인프라코디
리눅스 파일 시스템 이해하기 : 파일 시스템 확인 방법 가이드

리눅스는 운영 체제의 핵심인 커널을 기반으로 한 소프트웨어 모음입니다. 이 중 하나가 바로 파일 시스템인데, 이는 운영 체제가 데이터를 저장하고 검색하는 방법을 결정합니다.

이 글에서는 리눅스 파일 시스템의 중요성, 기본적인 개념, 확인하는 방법, 그리고 문제를 해결하는 방법에 대해 상세히 설명하겠습니다.

리눅스 파일 시스템의 중요성

리눅스 파일 시스템의 역할과 중요성

파일 시스템은 데이터를 효율적으로 저장하고 검색하는 데 필수적인 운영 체제의 주요 구성 요소입니다.

리눅스 파일 시스템은 사용자 데이터와 시스템 데이터를 조직화하고 관리하는 데 중추적인 역할을 수행합니다.

또한, 파일 시스템은 데이터 보호, 공유, 백업 등 다양한 기능을 제공합니다.

파일 시스템 확인이 필요한 이유

파일 시스템 검사의 필요성 파일 시스템을 검사하는 것은 디스크 공간을 효율적으로 관리하고, 시스템 성능을 향상시키며, 데이터 손실을 방지하는 데 중요한 역할을 합니다.

예를 들어, 디스크 공간이 부족하다면 새로운 애플리케이션의 설치나 중요한 데이터의 저장에 문제가 생길 수 있습니다.

그래서 이러한 문제를 미리 방지하기 위해 파일 시스템을 정기적으로 검사하는 것이 중요합니다.

리눅스 파일 시스템 기본 개념

파일 시스템이란 무엇인가?

파일 시스템은 운영 체제가 데이터를 디스크에 어떻게 저장하고 검색할지를 결정하는 방식입니다.

더 자세히는 파일 시스템은 데이터를 파일과 디렉터리로 조직화하고, 이들을 디스크에 어떻게 배치할지를 정합니다.

그리고 파일 시스템은 사용자가 데이터에 접근하고 수정할 수 있는 권한을 관리하는 역할도 합니다.

리눅스에서 사용되는 주요 파일 시스템 종류

리눅스에서는 다양한 종류의 파일 시스템을 지원하며, 그 중에서도 ext4, XFS, Btrfs는 가장 널리 사용되는 파일 시스템입니다. 각각의 파일 시스템은 특징과 장단점을 가지고 있습니다.

ext4는 리눅스에서 가장 일반적으로 사용되는 파일 시스템으로, 대용량 파일과 디렉터리, 저널링 기능 등을 지원합니다. 그러나 확장, 동적 할당, inode 및 블록 하위 할당에 대한 기본 기능이 부족하며, 삭제된 파일을 복구하기 어렵다는 단점이 있습니다.

XFS는 대용량 데이터를 처리하는 데 특화된 파일 시스템입니다. 이 파일 시스템은 64비트 파일 시스템으로 900만 TB까지 지원하며, 파일 수에 관계없이 예상치 못한 상황으로부터 신속한 복구 및 재시작이 가능합니다.

Btrfs는 스냅샷, 복제 등 고급 기능을 제공하는 최신 파일 시스템입니다. 실시간 오류 정정 기능과 스냅샷을 이용하여 볼륨 복원이 가능하며, 드라이브 압축이 가능하여 속도가 빠른 SSD에 사용 시 탁월한 읽기 와 쓰기 성능을 제공합니다. 그러나 스냅샷 이미지의 저장을 위해 디스크 공간을 추가로 사용하며 스냅샷 용량 증가의 특성상 디스크 사용량 예측이 어려운 것이 단점입니다.

이러한 다양한 파일 시스템은 각각의 특징과 장단점을 가지고 있으며, 사용자의 요구에 따라 적절한 파일 시스템을 선택할 수 있습니다.

리눅스에서 파일 시스템 확인하는 방법

df 명령어를 사용한 디스크 공간 확인

df 명령어는 디스크 사용량을 확인하는 데 사용되는 효과적인 도구입니다. 이 명령어를 실행하면, 파일 시스템의 총 공간, 사용된 공간, 사용 가능한 공간, 사용률, 그리고 마운트된 위치를 확인할 수 있습니다.

df 명령어의 장점과 단점에 대해 알아보겠습니다.

  • df 명령어 장점
    • 전체적인 디스크 사용량 확인 : df 명령어는 리눅스 시스템 전체의 디스크 사용량을 확인할 수 있습니다. 파일 시스템별로 마운트된 디스크의 전체 크기, 사용 중인 공간, 사용 가능한 공간, 사용률, 마운트된 위치 등의 정보를 제공합니다.
    • 사용자 친화적 : df -h 옵션을 사용하면, 파일 시스템의 정보를 사람이 읽기 쉬운 형식으로 출력하기에 디스크 사용량을 한눈에 파악하는 데 도움이 됩니다.
  • df 명령어 단점
    • 디렉토리별 디스크 사용량 불가능 : df 명령어는 시스템 전체의 디스크 사용량만을 확인할 수 있으며, 특정 디렉토리나 파일에 대한 디스크 사용량은 확인할 수 없습니다.
    • 삭제된 파일에 대한 정보 불충분 : df 명령어는 삭제된 파일이나 열린 파일 디스크립터에 대한 정보를 제공하지 않습니다. 이로 인해 df와 du 명령어의 출력 결과가 일치하지 않을 수 있습니다.

예를 들어, df -h 명령을 실행하면, 파일 시스템의 정보를 사용자가 읽기 쉬운 형식으로 출력하며, 디스크 사용량을 한눈에 파악할 수 있습니다.

df -h
실행 결과
Filesystem Size Used Avail Use% Mounted on devtmpfs 32G 0 32G 0% /dev tmpfs 32G 1.7M 32G 1% /dev/shm tmpfs 32G 3.2G 29G 11% /run tmpfs 32G 0 32G 0% /sys/fs/cgroup /dev/mapper/centos-root 20G 1.6G 17G 9% / /dev/sda1 488M 162M 291M 36% /boot /dev/mapper/centos-tmp 3.9G 18M 3.6G 1% /tmp /dev/mapper/centos-var 14G 2.5G 11G 20% /var /dev/mapper/data-pub 493G 148G 320G 32% /pub tmpfs 6.3G 0 6.3G 0% /run/user/866 tmpfs 6.3G 0 6.3G 0% /run/user/901

du 명령어를 사용한 디렉토리별 용량 확인

du 명령어는 디렉토리별로 사용된 디스크 공간을 확인하는 데 사용되는 효과적인 도구입니다. 이 명령어를 실행하면, 지정된 디렉토리와 그 하위 디렉토리에서 사용된 디스크 공간을 확인할 수 있습니다.

du 명령어의 장점과 단점에 대해 알아보겠습니다.

  • du 명령어 장점
    • 디렉토리별 디스크 사용량 확인 : du 명령어는 특정 디렉토리를 기준으로 디스크 사용량을 확인할 수 있습니다. 해당 디렉토리에서 얼마나 많은 디스크 공간이 사용되고 있는지 쉽게 파악하는 데 도움이 됩니다.
    • 사용자 친화적 : du -sh 옵션을 사용하면, 지정된 디렉토리에서 사용된 디스크 공간을 사람이 읽기 쉬운 형식으로 출력합니다. 디렉토리별로 얼마나 많은 디스크 공간이 사용되고 있는지 쉽게 파악하는 데 도움이 됩니다.
  • du 명령어 단점
    • 전체 파일 시스템 사용량 불가능 : du 명령어는 특정 디렉토리를 기준으로만 디스크 사용량을 확인할 수 있으며, 전체 파일 시스템의 디스크 사용량은 확인할 수 없습니다.
    • 실행 속도 : du 명령어는 파일 트리를 따라 이동하면서 각각의 디렉토리, 심볼릭 링크 및 파일에 할당된 블록의 수를 더하여 계산하기 때문에, 대용량의 파일 시스템에서는 실행 속도가 느릴 수 있습니다.

특정 파티션 사용량이 증가했을 때 어떤 디렉토리가 공간을 많이 사용하고 있는지 확인 할 수 있으므로, du 명령어는 디스크 공간 관리에 필수적으로 사용됩니다.

du -sh /home
실행 결과
1.7M /home

디렉터리가 여러 개 있으면 아래와 같이 와일드카드를 사용하여 사용량을 확인할 수 있습니다.

du -sh /var/spool/*
실행 결과
8.0K /var/spool/at 4.0K /var/spool/audit 4.0K /var/spool/cron 4.0K /var/spool/lpd 4.0K /var/spool/mail 4.0K /var/spool/plymouth 64K /var/spool/postfix

lsblk와 blkid 명령어를 사용한 블록 장치 정보 확인

lsblk 명령어는 시스템의 블록 장치 목록을 보여주는 데 사용되는 효과적인 도구입니다. 이 명령어를 실행하면, 블록 장치의 이름, 타입, 크기, 마운트된 위치 등을 확인할 수 있습니다.

  • lsblk 명령어 특징
    • 블록 장치 정보 제공 : lsblk 명령어는 시스템의 블록 장치 정보를 제공합니다. 블록 장치의 이름, 타입, 크기, 마운트된 위치 등의 정보를 제공합니다.
    • 상세 정보 제공 : lsblk -f 옵션을 사용하면, 블록 장치의 파일 시스템 타입과 UUID도 함께 출력합니다. 블록 장치의 상세한 정보를 한눈에 파악하는 데 도움이 됩니다.
  • lsblk 명령어 장점
    • 디스크 관리 용이 : lsblk 명령어는 디스크 관리와 문제 해결에 매우 유용합니다. 블록 장치의 상세한 정보를 한눈에 파악할 수 있기 때문입니다.
  • lsblk 명령어 단점
    • 실행 속도 : lsblk 명령어는 모든 블록 장치의 정보를 출력하기 때문에, 대용량의 파일 시스템에서는 실행 속도가 느릴 수 있습니다.
    • 디렉토리별 디스크 사용량 불가능 : lsblk 명령어는 시스템 전체의 블록 장치 정보만을 확인할 수 있으며, 특정 디렉토리나 파일에 대한 디스크 사용량은 확인할 수 없습니다.

예를 들어, lsblk -f 명령을 실행하면, 블록 장치의 파일 시스템 타입과 UUID도 함께 출력합니다. 이렇게 하면 블록 장치의 상세한 정보를 한눈에 파악할 수 있으며, 디스크 관리와 문제 해결에 매우 유용합니다.

lsblk
실행 결과
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 40G 0 disk ├─sda1 8:1 0 512M 0 part /boot └─sda2 8:2 0 39.5G 0 part ├─centos-root 253:0 0 19.5G 0 lvm / ├─centos-swap 253:1 0 2G 0 lvm ├─centos-tmp 253:2 0 4G 0 lvm /tmp └─centos-var 253:3 0 14G 0 lvm /var sdb 8:16 0 500G 0 disk └─data-pub 253:5 0 500G 0 lvm /pub sdc 8:32 0 100G 0 disk └─swap-disk 253:4 0 100G 0 lvm [SWAP] sr0 11:0 1 1024M 0 rom

blkid 명령어는 블록 장치의 속성을 식별하는 데 사용되는 효과적인 도구입니다. 이 명령어를 실행하면 블록 장치에 대해 사용 가능한 속성, 예를 들어 고유 식별자(UUID), 파일 시스템 유형(TYPE), 볼륨 레이블(LABEL) 등을 표시합니다.

  • blkid 명령어 특징
    • 블록 장치 속성 식별 : blkid 명령어는 블록 장치의 속성을 식별하는 데 사용됩니다. 블록 장치에 대해 사용 가능한 속성, 예를 들어 고유 식별자(UUID), 파일 시스템 유형(TYPE), 볼륨 레이블(LABEL) 등을 표시합니다.
    • UUID 출력 : blkid 명령어는 리눅스 블록 디바이스의 UUID를 출력하는 데 사용됩니다. 파일 시스템 정보를 기술하는 /etc/fstab 파일에 마운트 정보를 설정할 때 /dev/sda1 같은 블록 디바이스보다는 UUID를 적는 것을 권장하고 있습니다.
  • blkid 명령어 장점
    • 디스크 관리 용이 : blkid 명령어는 디스크 관리와 문제 해결에 매우 유용합니다. 블록 장치의 상세한 정보를 한눈에 파악할 수 있기 때문입니다.
  • blkid 명령어 단점
    • 실행 속도 : blkid 명령어는 모든 블록 장치의 정보를 출력하기 때문에, 대용량의 파일 시스템에서는 실행 속도가 느릴 수 있습니다.
    • 디렉토리별 디스크 사용량 불가능 : blkid 명령어는 시스템 전체의 블록 장치 정보만을 확인할 수 있으며, 특정 디렉토리나 파일에 대한 디스크 사용량은 확인할 수 없습니다.

blkid 명령어를 실행하면, 볼륨 레이블(LABEL), 고유 식별자(UUID), 파일 시스템 유형(TYPE) 순으로 출력하는 것을 확인할 수 있습니다.

blkid
실행 결과
/dev/sda1: UUID="67fe761d-0d23-4801-898b-cbd65df35b77" TYPE="ext4" /dev/sda2: UUID="XZdC4c-bcl5-J0di-ldNy-3A90-xFUa-jsKWiH" TYPE="LVM2_member" /dev/sdb: UUID="FVZGD4-oZFJ-J6YE-Oqxt-MWIg-6VM2-sXJ4Tq" TYPE="LVM2_member" /dev/sdc: UUID="UNT33l-rlYj-y3lQ-oTvY-VDJe-Lt9H-VFPqne" TYPE="LVM2_member" /dev/mapper/centos-root: UUID="0647d3e5-0a88-4b7a-99c0-befa1a35f720" TYPE="ext4" /dev/mapper/centos-swap: UUID="f9d6bb8f-db6b-4789-832d-f48dcd749043" TYPE="swap" /dev/mapper/centos-tmp: UUID="0dcf6f4d-2239-497d-ae03-ffe6cc5a8eba" TYPE="ext4" /dev/mapper/centos-var: UUID="d5a9184e-1199-40ec-8519-12f98737393b" TYPE="ext4" /dev/mapper/swap-disk: UUID="4e1f5d51-e283-4228-b70d-f6f55376f7f4" TYPE="swap" /dev/mapper/data-pub: UUID="fcfda2a3-f4e0-4b8b-9a71-389338f548d0" TYPE="ext4"

findmnt 명령어를 사용한 마운트된 파일 시스템 정보 확인

findmnt 명령어는 리눅스 시스템에서 파일 시스템의 마운트 정보를 확인하는 데 사용되는 효과적인 도구입니다. 이 명령어를 실행하면, /etc/fstab, /etc/mtab, 또는 /proc/self/mountinfo 파일에서 마운트 정보를 찾아 출력하여 보여줍니다.

  • findmnt 명령어 특징
    • 마운트 정보 제공 : findmnt 명령어는 파일 시스템과 마운트 정보를 제공합니다. 파일 시스템의 마운트 위치, 타입, 옵션 등의 정보를 제공합니다.
    • bind 옵션 지원 : findmnt 명령어는 bind 옵션으로 마운트된 파티션을 확인하는 데 사용될 수 있습니다.
  • findmnt 명령어 장점
    • 디스크 관리 용이 : findmnt 명령어는 디스크 관리와 문제 해결에 매우 유용합니다. 전체 파일 시스템의 상세한 정보를 한눈에 파악할 수 있기 때문입니다.
  • findmnt 명령어 단점
    • 실행 속도 : findmnt 명령어는 모든 파일 시스템의 정보를 출력하기 때문에, 대용량의 파일 시스템에서는 실행 속도가 느릴 수 있습니다.
    • 디렉토리별 디스크 사용량 불가능 : findmnt 명령어는 시스템 전체의 파일 시스템 정보만을 확인할 수 있으며, 특정 디렉토리나 파일에 대한 디스크 사용량은 확인할 수 없습니다.

findmnt 명령어를 실행하면, TARGET, SOURCE, FSTYPE, OPTIONS 열로 표시되며, bind 옵션으로 마운트되어 있는 파티션 정보를 확인할 수 있습니다.

findmnt
실행 결과
TARGET SOURCE FSTYPE OPTIONS / /dev/mapper/centos-root ext4 rw,noatime,nodiratime,discard,data=ordered ├─/sys sysfs sysfs rw,nosuid,nodev,noexec,relatime │ ├─/sys/kernel/security securityfs securityfs rw,nosuid,nodev,noexec,relatime │ ├─/sys/fs/cgroup tmpfs tmpfs ro,nosuid,nodev,noexec,mode=755 │ │ ├─/sys/fs/cgroup/systemd cgroup cgroup rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd │ │ ├─/sys/fs/cgroup/cpu,cpuacct cgroup cgroup rw,nosuid,nodev,noexec,relatime,cpuacct,cpu │ │ ├─/sys/fs/cgroup/net_cls,net_prio cgroup cgroup rw,nosuid,nodev,noexec,relatime,net_prio,net_cls │ │ ├─/sys/fs/cgroup/blkio cgroup cgroup rw,nosuid,nodev,noexec,relatime,blkio │ │ ├─/sys/fs/cgroup/pids cgroup cgroup rw,nosuid,nodev,noexec,relatime,pids │ │ ├─/sys/fs/cgroup/perf_event cgroup cgroup rw,nosuid,nodev,noexec,relatime,perf_event │ │ ├─/sys/fs/cgroup/devices cgroup cgroup rw,nosuid,nodev,noexec,relatime,devices │ │ ├─/sys/fs/cgroup/hugetlb cgroup cgroup rw,nosuid,nodev,noexec,relatime,hugetlb │ │ ├─/sys/fs/cgroup/memory cgroup cgroup rw,nosuid,nodev,noexec,relatime,memory │ │ ├─/sys/fs/cgroup/freezer cgroup cgroup rw,nosuid,nodev,noexec,relatime,freezer │ │ └─/sys/fs/cgroup/cpuset cgroup cgroup rw,nosuid,nodev,noexec,relatime,cpuset │ ├─/sys/fs/pstore pstore pstore rw,nosuid,nodev,noexec,relatime │ ├─/sys/kernel/config configfs configfs rw,relatime │ ├─/sys/kernel/debug debugfs debugfs rw,relatime │ └─/sys/fs/fuse/connections fusectl fusectl rw,relatime ├─/proc proc proc rw,nosuid,nodev,noexec,relatime │ └─/proc/sys/fs/binfmt_misc systemd-1 autofs rw,relatime,fd=22,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=18838 ├─/dev devtmpfs devtmpfs rw,nosuid,size=32966908k,nr_inodes=8241727,mode=755 │ ├─/dev/shm tmpfs tmpfs rw,nosuid,nodev │ │ └─/dev/shm/FlexNetFs.58815 FlexNetFs fuse.FlexNetFs rw,nosuid,nodev,relatime,user_id=866,group_id=865,allow_other │ ├─/dev/pts devpts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 │ ├─/dev/hugepages hugetlbfs hugetlbfs rw,relatime │ └─/dev/mqueue mqueue mqueue rw,relatime ├─/run tmpfs tmpfs rw,nosuid,nodev,mode=755 │ ├─/run/user/901 tmpfs tmpfs rw,nosuid,nodev,relatime,size=6595720k,mode=700,uid=901,gid=901 │ └─/run/user/866 tmpfs tmpfs rw,nosuid,nodev,relatime,size=6595720k,mode=700,uid=866,gid=865 ├─/boot /dev/sda1 ext4 rw,noatime,nodiratime,discard,data=ordered ├─/tmp /dev/mapper/centos-tmp ext4 rw,noatime,nodiratime,discard,data=ordered ├─/var /dev/mapper/centos-var ext4 rw,noatime,nodiratime,discard,data=ordered │ └─/var/opt /dev/mapper/data-pub[/var/opt] ext4 rw,noatime,nodiratime,discard,data=ordered ├─/pub /dev/mapper/data-pub ext4 rw,noatime,nodiratime,discard,data=ordered └─/opt /dev/mapper/data-pub[/opt] ext4 rw,noatime,nodiratime,discard,data=ordered

mount 명령어를 사용한 마운트된 파일 시스템 정보 확인

mount 명령어는 리눅스 시스템에서 파일 시스템의 마운트 정보를 확인하는 데 사용되는 명령어입니다.

이 명령어를 실행하면, 각각의 연결된 파일 시스템에 대한 장치 이름, 연결 지점, 파일 시스템 유형 등을 확인할 수 있습니다.

  • mount 명령어 특징
    • 마운트 정보 제공 : mount 명령어는 파일 시스템과 마운트 정보를 제공합니다. 전체 파일 시스템의 마운트 위치, 타입, 옵션 등의 정보를 제공합니다.
    • 다양한 파일 시스템 지원 : mount 명령어는 ext2, ext3, xfs, jfs, vfs, reiserfs 등 다양한 파일 시스템을 지원합니다.
    • USB 장치 인식 가능 : USB 장치나 외장 하드 디스크 등도 mount 명령어를 통해 마운트할 수 있습니다.
  • mount 명령어 장점
    • 디스크 관리 용이 : mount 명령어는 디스크 관리와 문제 해결에 매우 유용합니다. 전체 파일 시스템의 상세한 정보를 한눈에 파악할 수 있기 때문입니다.
  • mount 명령어 단점
    • bind 옵션 미지원 : mount 명령어는 bind 옵션으로 마운트된 파티션을 정확하게 표시해주지 않습니다. 이 경우 findmnt 명령어의 사용을 권장합니다.
    • 실행 속도 : mount 명령어는 모든 파일 시스템의 정보를 출력하기 때문에, 대용량의 파일 시스템에서는 실행 속도가 느릴 수 있습니다.

mount 명령어를 실행하면, 마운트 되어 있는 블록 장치명, 마운트 위치, 파일 시스템 타입, 마운트 옵션을 확인할 수 있습니다.

mount
실행 결과
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime) proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) devtmpfs on /dev type devtmpfs (rw,nosuid,size=32966908k,nr_inodes=8241727,mode=755) securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime) tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev) devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000) tmpfs on /run type tmpfs (rw,nosuid,nodev,mode=755) tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755) cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd) pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime) cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu) cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_prio,net_cls) cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio) cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids) cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event) cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices) cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb) cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory) cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer) cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset) configfs on /sys/kernel/config type configfs (rw,relatime) /dev/mapper/centos-root on / type ext4 (rw,noatime,nodiratime,discard,data=ordered) systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=22,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=18838) debugfs on /sys/kernel/debug type debugfs (rw,relatime) hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime) fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime) mqueue on /dev/mqueue type mqueue (rw,relatime) /dev/sda1 on /boot type ext4 (rw,noatime,nodiratime,discard,data=ordered) /dev/mapper/centos-tmp on /tmp type ext4 (rw,noatime,nodiratime,discard,data=ordered) /dev/mapper/centos-var on /var type ext4 (rw,noatime,nodiratime,discard,data=ordered) /dev/mapper/data-pub on /pub type ext4 (rw,noatime,nodiratime,discard,data=ordered) /dev/mapper/data-pub on /var/opt type ext4 (rw,noatime,nodiratime,discard,data=ordered) /dev/mapper/data-pub on /opt type ext4 (rw,noatime,nodiratime,discard,data=ordered) tmpfs on /run/user/866 type tmpfs (rw,nosuid,nodev,relatime,size=6595720k,mode=700,uid=866,gid=865) FlexNetFs on /dev/shm/FlexNetFs.58815 type fuse.FlexNetFs (rw,nosuid,nodev,relatime,user_id=866,group_id=865,allow_other) tmpfs on /run/user/901 type tmpfs (rw,nosuid,nodev,relatime,size=6595720k,mode=700,uid=901,gid=901)

/etc/fstab 파일을 사용한 파일 시스템 정보 확인

/etc/fstab 파일은 시스템 부팅시 마운트할 파일 시스템 정보를 담고 있습니다. 이 파일을 확인하면, 마운트 되어 있는 파일 시스템의 장치 이름, 마운트 포인트, 파일 시스템 타입, 마운트 옵션 등을 알 수 있습니다.

  • /etc/fstab 파일 특징
    • 파일 시스템 정보 제공 : /etc/fstab 파일은 마운트 된 파일 시스템의 장치 이름, 마운트 포인트, 파일 시스템 타입, 마운트 옵션 등의 정보를 제공합니다.
    • 부팅 시 자동 마운트 설정 : /etc/fstab 파일에 등록된 파일 시스템은 시스템 부팅 시 자동으로 마운트됩니다. 디스크를 추가하거나 파티션 정보를 변경한 경우에도 해당 정보를 이 파일에 등록하면 부팅 시 자동으로 마운트할 수 있습니다.
  • /etc/fstab 파일 장점
    • 디스크 관리 용이 : /etc/fstab 파일은 디스크 관리와 문제 해결에 매우 유용합니다. 파일 시스템의 상세한 정보를 한눈에 파악할 수 있기 때문입니다.
    • UUID 지원 : /etc/fstab 파일에서는 UUID로 식별되는 파일 시스템을 사용할 수 있습니다. 특정 장치가 연결될 때마다 특정 장소에 자동으로 마운트되어야한다는 것을 설정할 수 있습니다.
  • /etc/fstab 파일 단점
    • 수동 설정 필요 : /etc/fstab 파일은 사용자가 직접 편집해야 합니다. 실수로 잘못된 설정을 입력하면 시스템 부팅에 문제를 일으킬 수 있습니다.
    • 동적 장치 인식 미지원 : /etc/fstab 파일은 고정된 장치에 대한 정보만을 담고 있으며, 동적으로 추가되거나 제거되는 장치(예: USB 메모리)에 대한 정보는 자동으로 갱신되지 않습니다.

cat /etc/fstab 명령어를 실행하면 /etc/fstab 파일의 내용을 확인할 수 있습니다.

cat /etc/fstab
실행 결과
# # /etc/fstab # Created by anaconda on Mon Jan 25 13:07:09 2021 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/centos-root / ext4 defaults,noatime,nodiratime,discard 1 1 UUID=67fe761d-0d23-4801-898b-cbd65df35b77 /boot ext4 defaults,noatime,nodiratime,discard 1 2 /dev/mapper/centos-tmp /tmp ext4 defaults,noatime,nodiratime,discard 1 2 /dev/mapper/centos-var /var ext4 defaults,noatime,nodiratime,discard 1 2 #/dev/mapper/centos-swap swap swap defaults 0 0 /dev/mapper/data-pub /pub ext4 defaults,noatime,nodiratime,discard 1 2 /pub/opt /opt none bind /pub/var/opt /var/opt none bind UUID=4e1f5d51-e283-4228-b70d-f6f55376f7f4 swap swap defaults,noatime,nodiratime,discard 1 2

파일 시스템 문제 해결 방법

fsck 명령어를 사용한 파일 시스템 오류 검사 및 복구

fsck 명령어는 파일 시스템 오류를 검사하고 복구하는 데 사용됩니다.

이 명령어를 실행하면, 지정된 파일 시스템에 대해 일관성 검사를 수행하고 발견된 오류를 자동으로 수정합니다.

badblocks 명령어를 사용한 디스크 블록 검사

badblocks 명령어는 디스크에 손상된 블록이 있는지 검사하는 데 사용됩니다.

이 명령어를 실행하면, 지정된 디스크 장치에 대해 표면 검사를 수행하고 손상된 블록을 찾아냅니다.

badblocks 명령어의 사용 예제는 다음과 같습니다.

  • 비파괴 읽기 전용 테스트를 사용하여 디스크에서 불량 블록을 검색합니다.
    • badblocks -s /dev/sda2
      실행 결과
      Checking for bad blocks (read-only test): done
  • 비파괴 읽기-쓰기 테스트를 통해 마운트 해제된 디스크에서 불량 블록을 검색합니다.
    • badblocks -sn /dev/sdc
  • 파괴적인 쓰기 테스트를 통해 마운트 해제된 디스크에서 불량 블록을 검색하고 자세한 상태를 표시합니다.
    • badblocks -svw /dev/sdc
  • 파괴 모드에서 마운트 해제된 디스크를 검색하고 발견된 블록을 파일로 출력합니다.
    • badblocks -o /path/to/file -w /dev/sdc
  • 4K 블록 크기 및 64K 블록 수를 사용하여 향상된 속도로 파괴 모드에서 마운트 해제된 디스크를 검색합니다.
    • badblocks -w -b 4096 -c 65536 /dev/sdc

리눅스 파일 시스템 관리의 중요성

정기적인 파일 시스템 확인의 중요성

파일 시스템은 운영 체제의 핵심 구성 요소이며, 이를 관리하는 것은 시스템의 안정성과 성능에 큰 영향을 미칩니다.

따라서, 정기적으로 파일 시스템을 확인하고 필요한 유지 보수 작업을 수행하는 것이 중요합니다.

리눅스 시스템 관리자로서의 역할

리눅스 시스템 관리자로서, 우리는 파일 시스템을 효과적으로 관리하고 문제를 빠르게 해결할 수 있는 능력이 필요합니다.

이를 위해, 우리는 파일 시스템의 기본 개념을 이해하고, 다양한 명령어와 도구를 사용하여 파일 시스템을 확인하고, 문제를 해결하는 방법을 알아야 합니다. 이러한 지식과 기술은 우리가 리눅스 시스템을 효과적으로 관리하고 최적의 성능을 달성하는 데 도움이 됩니다.

인프라코디
서버, 네트워크, 보안 등 IT 인프라 관리를 하는 시스템 엔지니어로 일하고 있으며, IT 기술 정보 및 일상 정보를 기록하는 블로그를 운영하고 있습니다. 글을 복사하거나 공유 시 게시하신 글에 출처를 남겨주세요.

- 블로그 : www.infracody.com

이 글이 유익했나요? 댓글로 소중한 의견을 남겨주시거나 커피 한 잔의 선물은 큰 힘이 됩니다.
댓글