본문 바로가기
  • ▒ 네모의 쉽게 배우는 네트워크 | 개발 ▒
리눅스(Redhat)/시스템 관리

디스크 관리 - df, fdisk, mkfs, mount 한 방에 정리!

by 너l모 2023. 3. 30.
반응형

※ 업무하면서 습득한 내용들을 정리해 놓은 포스팅입니다 :P 추가로 궁금하신 점은 댓글로 남겨주시고 필요한 자료 있으면 요청주세요! 잘못된 내용이 있으면 고쳐주시면 감사하겠습니다. 자료 퍼가실 때는 출처 남겨주세요!


 ο 목차

     


    ※ 코드 보는 방법 참고

    ㅇ 달러 기호($)가 있는 경우 -> 리눅스 터미널에서 CLI 명령어 입력

    ㅇ "=#" 기호가 있는 경우 -> psql 쉘에서 명령어 입력

    ㅇ 꺽쇠가 하나 있는 경우(>) -> 윈도우 명령 프롬프트(cmd)에서 명령어 입력

    ㅇ 꺽쇠가 세개 있는 경우(>>>) -> python 쉘에서 명령어 입력


    안녕하세요, 네모입니다~~

     

    주먹구구식으로 작업했던 디스크 관리 내용을 한방에 정리해보고자 이렇게 글 쓰게 되었습니다 :P

    디스크 관리 개념부터 실제 실무 작업까지 한 방에 싹 잡고 가세요!

     

    1. 디스크 관리 개념

    1) 디스크 관리 개념도


    2) 디스크 관리 프로세스

    (1) 디스크 장치 생성

    디스크 장치는 실제 물리 디스크 장비를 파일화한 것으로 디스크 파일 자체로는 마운트하여 사용할 수 없음. 

    (2) 파티션 분할

    디스크 장치를 사용하기 위해서는 파티션 분할이 꼭 필요하며 디스크 용량을 통으로 쓰는 경우에도 반드시 파티션 분할(1개)을 해야 사용할 수 있음. 

     

    ※ 디스크명, 파티션 명과 관련된 기본 개념은 ↓ 아래 더보기 클릭하면 확인 가능

    * 디스크명 : 디스크 종류에 따라 /dev/sd-, /dev/xvd- 등 디스크명이 정해지고 디스크를 여러개 사용하는 경우 a,b,c 등의 알파벳으로 구분

    (ex) 하드 디스크를 두개 사용하는 경우 앞에서부터 /dev/sda, /dev/sdb로 구분

    * 파티션명 : 파티션 용도 및 구분에 따라 번호를 구분하여 사용

    (ex) - 주파티션 : 파티션 번호1~4 사용 (/dev/sda1, /dev/sda2...)
    - 확장 파티션 : 주 파티션 중 하나를 확장 파티션으로 설정할 수 있음, 파티션 번호 1~4 사용
    - 논리 파티션 : 확장 파티션으로 설정된 파티션을 여러개의 논리 파티션으로 나누어 사용함. 파티션 번호 5부터 사용
    (논리 파티션 갯수의 제한은 없다고 하지만 너무 자잘하게 나누면 성능 저하가 있을 수 있기 때문에 12개 이상 생성하지 않는 것을 권장함)

    (3) 파일시스템 생성

    마운트를 하고, 실제 디스크에 데이터를 쓰기 위해서는 디스크 파티션에 파일 시스템을 생성해줘야 함.

    (4) 마운트

    파일 시스템이 생성된 디스크 파티션은 다른 디렉토리에 마운트하여 데이터를 쓸 수 있음. 

    반응형

    2. 디스크 관리방법

    1) 디스크 용량 확인

    $ df

    : disk free의 약자로 파일 시스템, 디스크 크기, 사용량, 여유공간, 사용률, 마운트된 위치를 출력하는 명령어

    예제) 

    $ df -h
    Filesystem      Size  Used Avail Use% Mounted on
    udev            1.9G     0  1.9G   0% /dev
    tmpfs           393M  1.5M  391M   1% /run
    /dev/sda1        20G  9.6G  8.6G  53% /
    tmpfs           2.0G     0  2.0G   0% /dev/shm
    tmpfs           5.0M     0  5.0M   0% /run/lock
    tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
    /dev/sdb1        50G  3.0G   45G   7% /mnt/data
    
    $ df -T
    Filesystem     Type     1K-blocks     Used Available Use% Mounted on
    udev           devtmpfs   1953164        0   1953164   0% /dev
    tmpfs          tmpfs       396712     1480    395232   1% /run
    /dev/sda1      ext4      20420908  9866328   9547568  51% /
    tmpfs          tmpfs      1983568        0   1983568   0% /dev/shm
    tmpfs          tmpfs         5120        0      5120   0% /run/lock
    tmpfs          tmpfs      1983568        0   1983568   0% /sys/fs/cgroup
    /dev/sdb1      ext4      52403200  3008224  46773392   7% /mnt/data

    옵션)

    -h : Size를 KB, MB, GB 단위로 출력

    -T : 파일 시스템의 타입도 함께 출력


    2) 디스크 파티션 관리(목록, 생성, 수정, 삭제)

    $ fdisk

    : 파티션 테이블을 관리하는 명령어로 파티션의 생성, 수정, 삭제를 수행

    (1) 파티션 테이블 내용 출력하기

    $ fdisk -l

    예제) 

    $ fdisk -l
    Disk /dev/sda: 1000.2 GB, 1000204886016 bytes, 1953525168 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 4096 bytes
    I/O size (minimum/optimal): 4096 bytes / 4096 bytes
    Disk label type: dos
    Disk identifier: 0x12345678
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *        2048   102402047    51200000   83  Linux
    /dev/sda2       102402048  1953523711   925560832    5  Extended
    /dev/sda5       102404096   204802047    51298976   83  Linux
    /dev/sda6       204804096   307202047    51298976   83  Linux

    (2) 파티션 생성하기 

    $ fdisk 디스크장치명

    예제) 

    $ fdisk /dev/sdb
    Command (m for help):

    - n : 새로운 파티션 생성

    - d : 파티션 삭제

    - l : 파티션 목록 출력

    Command (m for help): n
    
    Partition type
       p   primary (0 primary, 0 extended, 4 free)
       e   extended (container for logical partitions)
    Select (default p):

    - p : 새로운 파티션을 주파티션으로 사용함을 의미

    - e : 새로운 파티션을 확장 파티션으로 사용함을 의미

    Select (default p): p
    
    Partition number (1-4, default 1):

    - Partition number : 파티션 번호 선택, 아무것도 입력하지 않고 Enter를 치는 경우 default 번호로 설정됨

    Partition number (1-4, default 1): 1
    First sector (2048-10485759, default 2048): 
    
    Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-10485759, default 10485759): 
    
    Created a new partition 1 of type 'Linux' and of size 5 GiB.

    - First sector : 파티션 시작 지점 설정, 아무것도 입력하지 않고 Enter를 치는 경우 default 섹터로 설정됨

    - Last sector : 파티션 끝 지점 설정, 아무것도 입력하지 않고 Enter를 치는 경우 default 섹터로 설정됨

    Command (m for help): w

    - w : 설정을 저장하고 fdisk 종료

    - q : 설정을 저장하지 않고 fdisk 종료


    3) 파일시스템 생성

    (1) 파일 시스템 생성하기

    $ mkfs -t 파일시스템종류 파티션명

    예제) /dev/sdb1 디스크에 ext4 파일 시스템 생성하기

    $ mkfs -t ext4 /dev/sdb1

    혹은

    $ mkfs.ext4 /dev/sdb1

    * 둘 다 가능

     

    (2) 파일 시스템 설정값 확인하기

    $ fsck -N /dev/sdb1

    4) 마운트하기

    (1) 마운트 명령어

    $ mount 파티션명 마운트포인트

    예제) /dev/sdb1 디스크를 /data에 마운트하기

    $ mount /dev/sdb1 /data

    (2) 부팅시에 자동으로 마운트하도록 설정

    ** 서버를 재부팅하게 되면 마운트가 풀리기 때문에 해당 설정 필요

    $ vi /etc/fstab

    (아래와 같이 fstab 파일에 마운트 설정 추가)

    # 장치명	마운트포인트	파일시스템유형		마운트옵션	레벨덤프주기	부팅파일시스템점검순서
    /dev/sdb1	/data		ext4			defaults	0		0

    - 마운트옵션 : defaults, uquota, gquota, ad

    - 레벨덤프주기 : 0 - dump 사용 X, 1 - 매일 수행, 2 - 이틀에 한번 꼴로 수행

    - 부팅파일시스템점검순서 : 1 - 가장 먼저 점검 (보통 root 파일), 2 - 두번째로 점검, 0 - 점검 X


    이렇게 마운트까지 완료하면 이제 디스크에 데이터를 쓸 수 있게 됩니다~

    마운트 관련해서는 좀 더 다양한 내용이 있지만 다 쓰면 너무 길어질 것 같아서 다음에 기회되면 다루도록 하겠습니다

     

    모쪼록 디스크 관리에 대해 총체적인 개념은 이 포스팅으로 어느 정도 알아가셨으면 좋겠네용 :P 

     

    혹시 더 궁금하거나 틀린 내용 있으면 댓글 남겨주세요!


    ※ 좋아요와 구독은 큰 힘이 됩니다. 감사합니다. 

    반응형

    댓글