[리눅스마스터 1급] 이기적 이론서 5회차 정리 - 파일 시스템 관리2

🏁 이기적 이론서 학습 범위

  • PART 01 리눅스 시스템 관리
    • CHAPTER 01 일반 운영 관리 (SECTION 02 파일 시스템 관리)

파일 시스템 관리

☑️ 파일 시스템 관리 및 복구

파일 시스템 생성

  • 파일 시스템 생성?
    • 하드디스크를 새로 추가하거나 기존 하드디스크에 사용하지 않는 영역 존재 시 파일 시스템을 설정하여 정보를 저장하는데 사용할 수 있다.
  • fdisk를 통한 파티션 관리
    • 디스크상에서 파티션을 생성, 삭제, 수정할 수 있다.
    • 형식

        fdisk [option] device
      
    • 옵션

      옵션설명
      -l- 지정한 디스크의 파티션 정보를 출력한다.
      - 만약 디스크를 미설정시 /proc/partitions의 장치의 파티션 정보를 출력한다.
      -b- 섹터당 크기를 설정한다.
      - 512, 1024, 2048, 4096 중 하나를 선택한다.
      -s파티션 크기를 출력하며 단위는 block이다.
    • 예제

        $ sudo fdisk -l /dev/sda # /dev/sda/ 장치의 파티션 정보 출력
              
        $ sudo fdisk -s /dev/sda1 # /dev/sda1의 크기 출력
              
        $ sudo fdisk /dev/sda # 파티션을 생성하고자 하는 장치를 지정하여 fdisk 실행
      
  • mkfs를 통한 파일 시스템 생성
    • 하드디스크를 사용할 수 있도록 파일 시스템을 생성한다.
    • 형식

        mkfs [option] device
      
    • 옵션

      옵션설명
      -t, —type파일 시스템 유형을 지정한다. 지정하지 않으면 기본값인 ext2가 사용된다.
      -c파일 시스템을 생성하기 전 배드블록을 체크한다.
    • 예제

        $ sudo mkfs -f ext4 /dev/sda2 # /dev/sda2를 ext4 파일 시스템으로 생성
      
  • mke2fs를 통한 파일 시스템 생성
    • 파일시스템을 실제로 생성한다.
    • mkfs는 내부적으로 mke2fs를 호출한다.
    • 형식

        mke2fs [option] device
      
    • 옵션

      옵션설명
      -i- 저널링 파일 시스템인 ext3로 생성한다.
      - 커널이 ext3을 지원해야 한다.
      -t- 생성할 파일 시스템 유형을 지정한다.
      - 옵션을 사용하지 않으면 /etc/mke2fs.conf에 지정된 기본값을 사용한다.
      -b- 블록 사이즈를 지정한다.
      - 블록당 1024, 2048, 4096 중 하나이다.
      -E- 파일 시스템에 대한 확장 옵션을 설정한다.
      -T- 블록크기, 아이노드 크기, 파일 시스템 기능 등 파일 시스템의 파라미터를 지정한다.
      - /etc/mke2f.conf를 통해 설정된 파일시스템 파라미터를 옵션으로 입력할 수 있다.
      - 보통 small, floppy, news, largefile, largefile4 등이 미리 설정되어 있고, 임의로 추가,제거 할 수 있다.
    • 예제

        $ sudo mke2fs -j /dev/sda2 # /dev/sda2 장치를 저널링 파일 시스템인 ext3로 생성
              
        # /dev/sda2 장치를 저널링 파일 시스템인 ext3로 생성하고, 블록 사이즈는 2048로, 스트라이프당 블록 사이즈는 32로 지정
        $ sudo mke2fs -j -b 2048 -E stride=32 /dev/sda1
              
        # /dev/sda2 장치를 ext3로 생성하고, 파일 시스템 유형을 largefile로 설정
        $ sudo mke2fs -j -T largefile /dev/sda2
      
    • mkfs.xfs
      • xfs 파일을 생성한다.
      • mkfs -t xfs 도 사용 가능하다.
        $ mkfs.xfs /dev/sda2 # /dev/sda2 장치를 xfs 파일 시스템으로 생성
              
        # /dev/sda2 장치를 xfs 파일 시스템으로 생성하고 저널 관련 로그는 /dev/sdb에 생성
        $ mkfs.xfs - l logdev=/dev/sdb. size=1000b /dev/sda2
      
  • mount를 통해 시스템에 장착
    • 하드디스크 전체나 특정 파티션을 현재 존재하는 파일 시스템의 디렉터리 구조에 붙여서 접근 가능하게 한다.
    • 형식

        mount [option] [device] [directory]
      
    • 옵션

      옵션설명
      -a, —all/dev/fstab에 명시된 모든 파일 시스템을 마운트한다.
      -t, —types- 파일 시스템 유형을 지정한다.
      - msdos, vfat, ntfs, ext2, ext3, ext4, xfs, iso9660, smbfs, cifs, nfs, udf와 같은 파일 시스템 유형할 수 있다.
      - -t 옵션을 사용하지 않거나 auto로 설정하면 커널이 /etc/filesystems 등을 참고하여 파일 시스템 유형을 추정한다.
      - 파일 시스템 유형에 “no”라고 붙이면 해당 파일 시스템은 제외한다.
      -o, —options- 파일시스템 마운트 시 옵션을 추가한다.
      - 옵션은 여러 개 입력 가능하며 콤마로 구분한다.
    • 예제

        $ mount # 현재 시스템에 마운트된 모든 장치의 정보 출력
              
        $ mount -t xfs # 현재 시스템에 마운트된 장치 중 xfs 파일 시스템 정보 출력
              
        $ sudo mount -a # /etc/fstab에 정의된 모든 파일 시스템 마운트
              
        $ mount -a -t nomsdos.ext # msdos와 ext 파일 시스템을 제외한 모든 파일 시스템 마운트
              
        # /dev/cdrom 장치를 /mnt 디렉터리에 마운트함.
        # 읽기 전용이며 파일시스템의 유형은 iso9960
        $ mount -t iso9960 -o ro /dev/cdrom /mnt 
              
        # ISO 이미지인 linux.iso를 /mnt/linux에 마운트함.
        # loop 옵션을 추가해야 한다.
        $ mount -o loop linux.iso /mnt/linux
      
  • unmount를 통해 시스템 해제
    • mount 로 마운트했던 파일 시스템을 해제한다.
    • 형식

        unmount [option] device
        unmount [option] directory
      
    • 옵션

      옵션설명
      -a/etc/mtab에 설정된 모든 파일 시스템을 언마운트한다.
      -t지정한 유형의 파일 시스템만 언마운트한다.
    • 예제

        $ sudo unmount -a # /etc/mtab에 지정된 모든 파일 시스템을 언마운트
              
        $ sudo unmount -t ext4 # ext4 파일 시스템만 언마운트
              
        $ sudo unmount /dev/francis/tmp # /dev/francis/tmp에 마운트된 장치를 언마운트
      
  • eject를 통한 미디어 꺼내기
    • 지정한 장치의 미디어를 꺼낸다.
    • 장치 파일의 이름이나 마운트된 위치 또는 장치의 전체 경로를 통해 지정한다.
    • 이름을 지정하지 않고 사용하면 기본적으로 cdrom이 사용된다.
    • 자동으로 언마운트하는 효과가 있다.
    • 형식

        eject [device]
        eject [directory]
      
    • 예제

        $ eject # 기본 장치의 미디어를 꺼냄
              
        # 장치명을 입력하거나 마운트된 경로를 입력하여 미디어를 꺼냄
        $ eject cdrom 
        OR
        $ eject /dev/cdrom 
        OR
        $ eject /mnt/cdrom
      
  • /etc/fstab을 통한 영구 마운트 설정
    • /etc/fstab 파일은 리눅스 파일 시스템의 마운트 위치 및 마운트 옵션에 대한 정보를 담고 있다.
      • 리눅스가 부팅 시 이 파일의 정보에 따라 파일 시스템을 자동으로 마운트한다.
    • mount, unmount, fsck 등의 명령어가 이 파일을 참조하며, 총 6개의 필드로 구성된다.
    • 필드

      필드 위치필드설명
      1블록 디바이스- 마운트할 블록 디바이스 장치를 지정한다.
      - 보통 /dev 디렉터리 이하에 위치한다. - 다른 방법으로는 LABEL 또는 UUID를 사용할 수 있다.
      2마운트 위치- 파일 시스템상 마운트 위치이다.
      - 블록 디바이스에 접근할 수 있다.
      3파일 시스템 유형- 블록 디바이스나 파일 시스템에 대한 유형이다.
      - 운영체제가 지원하는 유형을 사용할 수 있다.
      4마운트 옵션- 마운트할 때 사용할 옵션이다.
      - 파일시스템과 관계없이 사용할 수 있는 공통 옵션과 파일시스템마다 다른 옵션을 사용할 수 있다.
      - 기본값을 사용하려면 defaults를 사용한다.
      - defaults 값은 rw, Set-UID, dev, exec, auto, nouser, async를 뜻한다.
      5덤프 여부- dump 프로그램에 의해 백업되어야 하는지 정한다.
      - 0이면 백업되지 않고 1이면 백업된다.
      6파일 시스템 점검- 부팅시 파일 시스템을 점검할 순서를 지정한다.

파일 시스템 점검

  • fsck(file system consistency check)
    • 파일 시스템을 점검하고 손상된 영역을 복구한다.
    • 파일 시스템이 더티 상태이거나 파일 시스템 없이 여러번 마운트되었다면 fsck 를 실행한다.
    • 형식

        fsck [option] device
      
    • 옵션

      옵션설명
      -a사용자 확인 없이 파일 시스템을 자동 복구한다.
      -r- 파일 시스템을 복구할 때 사용자의 확인을 받는다.
      - 다수의 fsck 명령어를 동시 실행 할 때 해당 옵션은 사용이 불편하다.
      -A/etc/fstab 파일에 정의된 모든 파일 시스템에 대해 점검을 수행한다.
      -P-A 옵션과 함께 사용할 때 루트 파일 시스템과 그 외 파일 시스템을 병렬로 점검한다.
      -R-A 옵션과 함께 사용 시 루트 파일 시스템 점검을 제외한다.
      -N실제 처리없이 어떤 명령을 수행하는지 보여준다.
      -s- fsck의 동작을 직렬화한다.
      - 다수의 파일 시스템을 대화형으로 점검할 때 유용하다.
      -t- 점검할 파일 시스템 유형을 지정한다.
    • 예제

        # fsck는 언마운트된 상태에서 수행해야 한다.
        # 단일 사용자 모드(실행 레벨1)로 변경하고 언마운트한다.
        $ sudo init 1 
              
        $ sudo fsck /dev/sda2 # sda2 파티션을 점검한다.
              
        $ sudo fsck -A # /dev/fstab에 정의된 모든 파일 시스템을 점검한다.
      
  • e2fsck
    • fsck 의 확장형으로 ext2, ext3, ext4 파일 시스템을 점검한다.
    • 형식

        e2fsck [option] device
      
    • 옵션

      옵션설명
      -n사용자의 모든 확인을 no로 응답한다.
      -y사용자의 모든 확인을 yes로 응답한다.
      -c배드블록을 찾아 해당 아이노드에 파일이나 디렉터리를 할당하지 않는다.
      -f파일 시스템 손상이 없더라도 일단 점검을 수행한다.
    • 예제

        # /dev/sdb1에 대해 파일 시스템을 점검할 때 사용자 질의는 자동으로 yes로 답한다.
        $ sudo e2tsck -y /dev/sdb1
      
  • df
    • 파일 시스템 전체 크기, 가용용량 등 파일 시스템에 대한 자세한 정보를 출력한다.
    • 형식

        df [option]
      
    • 옵션

      옵션설명
      -h, —human-readable1K, 234M, 2G와 같이 용량의 단위를 표시한다.
      -k, —block-size킬로바이트(KB) 단위로 출력한다.
      -m메가바이트(MB) 단위로 출력한다.
      -T파일 시스템 유형을 출력한다.
      -i블록 사용량 대신 아이노드의 정보를 출력한다.
    • 예제

        $ df -a # 모든 파일 시스템을 확인
              
        $ df -h # 파일 시스템의 정보를 한눈에 들어오게 정리하여 출력
              
        $ df -i # 아이노드의 개수를 표시
      
  • du
    • 디렉터리 또는 파일들이 차지하는 공간 정보를 출력한다.
    • 형식

        du [option] file
      
    • 옵션

      옵션설명
      -h1K, 234M, 2G와 같이 사람이 읽을 수 있는 형식으로 프린트한다.
      -b, —bytes실제 프린터에 추가가 필요하다.
      -k킬로바이트 단위로 출력한다.
      -m메가바이트 단위로 출력한다.
      -a, —all디렉터리에서 존재하는 모든 파일에 대한 각각의 크기를 보여준다.
      -s지정한 옵션의 출력 결과에 대한 합계를 보여준다.
    • 예제

        $ du -s *.txt # 현재 디렉터리의 각 파일의 크기 출력
              
        $ du -h # 현재 디렉터리 내 모든 파일과 디렉터리의 크기를 KB, MB 단위로 출력
              
        $ du -sh # 현재 디렉터리의 총 사용량만 단위를 붙여서 출력
              
        $ du -shm ~francis # francis 사용자의 총 사용량을 메가바이트 단위로 출력
      

© 2021. All rights reserved.

yaejinkong의 블로그