[리눅스마스터 1급 - 2차] 파일 시스템

2024. 10. 24. 13:40·자격증 & 공부/리눅스마스터 1급

1. 파일 시스템

  • 운영체제가 데이터를 디스크에 어떻게 저장하고 검색할지 결정하는 방식
  • 데이터를 파일과 디렉터리로 조직화하고, 디스크에 어떻게 배치할지를 정함

2. 관련 명령어

2.1. 블록 장치 정보 확인(lsblk & blkid)

2.1.1. lsblk

  • 시스템에 연결된 모든 블록 장치 출력

2.1.2. blkid

  • UUID 값 확인
  • i : 특정 디스크 파티션의 I/O 제한 정보를 출력

 

2.2. 마운트 된 파일 시스템 정보 확인(mount)

  • 파일 시스템을 마운트하는 명령어
  • mount [옵션] [장치이름] [마운트 포인트]

2.2.1. 주요 옵션

  • -t : 파일 시스템 종류를 지정
  • -f : 마운트가 가능한지 확인만 수행
  • -o : 마운트 옵션을 지정
  • loop : ISO 이미지 파일 생성

2.2.2. 예시

  • cat mount

  • mount –o remount
    • 다시 마운트
  • mount –o nosuid /dev/sdb1 /home
    • SetUID/SetGID 파일들이 존재하는 홈 디렉터리에 SetUID/SetGID 비트가 동작하지 않도록 원천 봉쇄

 

2.3. /etc/fstab 파일

  • 자동 마운트되도록 설정하는 파일
  • 파일시스템의 마운트 설정 정보를 가지고 있는 파일

2.3.1. 파일 구조

  • 장치 이름에는 장치 파일명 외에도 UUID나 라벨명으로 설정 가능

2.3.2. 옵션 필드 종류

  • defaults : 기본값. rw, nouser, auto, exec, suid 속성을 포함
  • auto : 부팅 시 자동으로 마운트 <-> noauto
  • exec : 실행파일이 실행되는 것을 허용 <-> noexec
  • suid : SUID/SGID의 사용 허용 <-> nosuid
  • ro : 읽기 전용 <-> rw : 읽기/쓰기 허용
  • user : 일반 사용자도 마운트 가능 <-> nouser : 일반 사용자의 마운트 불가능 (root만 가능)
  • usrquota : 사용자별로 디스크 쿼터 설정 허용
  • grpquota : 그룹별로 디스크 쿼터 설정 허용

2.3.3. 덤프 설정

  • 1 : dump 등의 데이터 백업 명령어 사용으로 파일시스템의 내용 덤프 가능
  • 0 : 파일시스템의 내용을 덤프 불가능

2.3.4. 파일 점검 옵션

  • 0 : 부팅 시 fsck 명령어로 파일시스템 점검 미수행
  • 1 : 루트 파일시스템에 설정 부팅 시 파일시스템 점검 수행
  • 2 : 루트 파일시스템 이외의 파일시스템 점검 수행

2.3.5. 예시

  • /dev/sdb1 /home2 ext4 defaults,usrquota 1 1
    • ext4 파일 시스템으로 포맷된 /dev/sdb1을 /home2로 자동 마운트되도록 설정하고, 추가적으로 사용자의 디스크 사용량을 제한하기 위해 쿼터를 설정함
  • cat /etc/fstab
    • 관련 정보가 담겨있는 파일로 확인함
  • 사용자의 디스크 쿼터를 설정하기 위해서는 /etc/fstab 파일에서 설정하려는 파티션과 관련된 항목의 4번째 필드에 usrquota를 추가 기입하고 다시 마운트하거나 재시작해야 함 

 

2.4. 디스크 파티션 관리 (fdisk)

  • 디스크의 파티션 생성 삭제 정보 출력 등 파티션을 관리하는 명령어

2.4.1. 옵션

  • p : 현재 디스크 정보를 보여줌
  • d : 파티션 삭제
  • n : 파티션 생성
  • t : 파티션 속성 변경
  • w : 변경된 내용을 저장하고 종료
  • q : 변경된 내용을 저장하지 않고 종료
  • l : 파티션 테이블 정보 출력
  • v : fdisk version 출력
  • s partition : 특정 파티션 크기 출력 (단위는 block)

 

2.5. 파일 시스템 생성 포맷(mkfs, mke2fs)

2.5.1. mkfs

$ mkfs [옵션] [장치명]

2.5.2. mke2fs

  • ext2, ext3, ext4 파일 시스템을 생성
$ mke2fs [옵션] [장치명]
  • 옵션
    • -t : 파일시스템 종류 지정 (default : ext2)
    • -c : 배드블록을 체크
    • -b : 블록크기를 바이트 수로 지정
    • -j : ext3 형식으로 생성 (journaling)
    • 기본 설정값은 /etc/mke2fs.conf 파일에서 정의

 

2.6. 파일 시스템 오류 검사 및 복구(fsck)

  • 파일 시스템 검사

2.6.1. 옵션

  • N : 실행하지 않고 단지 어떤 것이 실행되어지는지만 보여줌
  • V : 자세한 출력 (실행되는 각 파일 시스템용 명령어 포함)
  • v : 버전 정보
  • y : 감지된 파일 시스템 오류를 자동적으로 수정하도록 함
  • t : 파일 시스템 타입 지정

 

2.7. LVM

  • 독립적으로 구성된 디스크 파티션을 하나로 연결하여 한 파티션처럼 사용할 수 있도록 해주는 관리 도구

2.7.1. 관련 용어

  • PV (Physical Volume) : 실제 하드디스크의 파티션
  • VG (Volume Group) : 여러 개의 PV를 그룹으로 묶은 것
  • LV (Logical Volume) : VG를 다시 적절한 크기로 나눈 파티션
  • PE (Physical Extent) : PV가 가진 일정한 블록
  • LE (Logical Extent) : LV가 가진 일정한 블록

2.7.2. 주요 명령어

  • pvcreate : PV 생성
  • pvscan : PV 상태를 확인

  • vgcreate : VG 생성
  • vgchange -a y : 활성화
  • vgchange -a n : 비활성화
  • vgdisplay -v : VG 상태 확인
  • vgscan : VG에 해당하는 모든 디스크를 스캔하고, LVM 캐시 파일을 재작성

  • lvcreate : LV 생성
  • lvcreate -L : LV의 사이즈를 지정하는 옵션(K-Kilobytes, M-Megabytes, G-Gigabytes, T-Terabytes)
  • lvcreate –l : LV의 사이즈를 지정하는 옵션으로 pe의 개수로 용량을 지정함
  • lvcreate –n : LV의 이름 지정
  • lvscan : LV 상태 확인

 

2.8. ACL(Access Control List)

2.8.1. getfacl

  • 접근 권한을 확인하는 명령어
  • -d : 기본 정보에 대해 확인
  • -R : 디렉토리인 경우 하위 디렉토리 내용까지 확인 가능

2.8.2. setfacl

  • 접근 권한을 설정하는 명령어
  • -m : 권한을 수정
    • u:[유저명]:[rwx] (rwx 대신 숫자로 7 가능) - 유저 권한 부여
    • g:[그룹명]:[6] (6 대신 rw 가능) - 그룹 권한 부여
    • m::[rw] (rw 대신 숫자 5 가능) - mask 값 설정
  • -x : 권한을 삭제
  • -R : 하위 디렉터리의 권한까지 변경
  • -b : 모든 ACL 삭제 (mask 포함)

  • 특정 파일에 사용자 kait_woman에게 읽기 및 쓰기 권한을 부여. 파일의 이름은 myfile.txt
    • setfacl -m u:kait_woman:rw myfile.txt
  • ACL 확인
    • getfacl myfile.txt
  • 모든 ACL 제거
    • setfacl -b myfile.txt

 

2.9. 새로운 디스크 추가 과정

  1. 하드디스크 인식 여부 확인 : fdisk -l
  2. 파티션 분할 및 생성 : fdisk -> n -> p -> 파티션 속성 (83: linux, 82:linux swap, 8e:LVM)
  3. 파일 시스템 생성 : mkfs, mke2fs, (mkfs.ext4 또는 mkfs -t ext4)
  4. 사용하려는 디렉터리 생성 : mkdir
  5. 마운트 및 관련 파일 등록 : mount, /etc/fstab
저작자표시 비영리 변경금지 (새창열림)

'자격증 & 공부 > 리눅스마스터 1급' 카테고리의 다른 글

[리눅스마스터 1급] 2402회 2차 시험 합격 후기  (0) 2024.11.11
[리눅스마스터 1급 - 2차] 쿼터 (Quota)  (0) 2024.10.24
[리눅스마스터 1급 - 2차] 파일 속성  (0) 2024.10.24
[리눅스마스터 1급 - 2차] 파일 및 디렉터리 권한  (0) 2024.10.23
[리눅스마스터 1급 - 2차] 파일 링크 (하드 링크 / 심볼릭 링크 / inode)  (0) 2024.10.23
'자격증 & 공부/리눅스마스터 1급' 카테고리의 다른 글
  • [리눅스마스터 1급] 2402회 2차 시험 합격 후기
  • [리눅스마스터 1급 - 2차] 쿼터 (Quota)
  • [리눅스마스터 1급 - 2차] 파일 속성
  • [리눅스마스터 1급 - 2차] 파일 및 디렉터리 권한
woojin._.
woojin._.
여러가지 개발을 해보며 발생하는 이야기들에 대한 블로그입니다:)
  • woojin._.
    Jin's Dev Story
    woojin._.
  • 전체
    오늘
    어제
    • 분류 전체보기 (829)
      • Tools (25)
        • eGovFrame (3)
        • GeoServer (3)
        • QGIS (2)
        • LabelImg (2)
        • Git (6)
        • GitHub (1)
        • Eclipse (7)
        • Visual Studio (1)
      • Web & Android (121)
        • SpringBoot (37)
        • Three.js (2)
        • Spring Data JPA (9)
        • 스프링 부트 쇼핑몰 프로젝트 with JPA (25)
        • Thymeleaf (4)
        • Spring Security (15)
        • Flutter (29)
      • Programming Language (61)
        • JAVA (27)
        • JavaScript (14)
        • Dart (2)
        • Python (15)
        • PHP (3)
      • Database (43)
        • PostgreSQL (32)
        • MYSQL (7)
        • Oracle (3)
        • MSSQL (1)
      • SERVER (17)
        • TCP_IP (3)
        • 리눅스 (7)
        • AWS (7)
      • Coding Test (445)
        • 백준[JAVA] (108)
        • 프로그래머스[JAVA] (260)
        • 알고리즘 고득점 Kit[JAVA] (3)
        • SQL 고득점 Kit[ORACLE] (74)
      • CS 지식 (49)
        • [자료구조] (14)
        • [네트워크] (12)
        • [데이터베이스] (10)
        • [알고리즘] (9)
        • [운영체제] (4)
      • 기타 (6)
      • 자격증 & 공부 (62)
        • 정보처리기사 (2)
        • SQLD (6)
        • 네트워크관리사 2급 (5)
        • 리눅스마스터 1급 (44)
        • 리눅스마스터 2급 (1)
        • ISTQB (3)
        • 시스템보안 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 인기 글

  • 태그

    Linux
    Oracle
    플러터
    programmers
    baekjoon
    시큐리티
    springboot
    Java
    스프링부트
    JPA
    backjoon
    Flutter
    CS
    postgresql
    pcce 기출문제
    스프링
    CS지식
    리눅스
    DB
    자바
    spring
    리눅스마스터
    리눅스마스터 1급
    스프링 부트 쇼핑몰 프로젝트 with JPA
    데이터
    프로그래머스
    데이터베이스
    Spring Security
    python
    백준
  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
woojin._.
[리눅스마스터 1급 - 2차] 파일 시스템
상단으로

티스토리툴바