디스크

SunChan Kwon·2024년 5월 26일
0

Linux

목록 보기
4/20
post-thumbnail

디스크 확인

디스크 용량 단위

단위
바이트 (B)1000⁰
킬로바이트 (KB)1000¹
메가바이트 (MB)1000²
기가바이트 (GB)1000³
테라바이트 (TB)1000⁴
페타바이트 (PB)1000⁵
엑사바이트 (EB)1000⁶
제타바이트 (ZB)1000⁷
요타바이트 (YB)1000⁸

시스템의 디스크 사용량

df

디스크 사용량을 파티션별로 출력하며 -h 옵션을 붙여 읽기 쉬운 큰 단위로 묶어 확인 가능

[vagrant@rocky9 ~]$ df
Filesystem                 1K-blocks    Used Available Use% Mounted on
devtmpfs                        4096       0      4096   0% /dev
tmpfs                        1001328       0   1001328   0% /dev/shm
tmpfs                         400532   10480    390052   3% /run
/dev/mapper/rl_rocky9-root  73334784 2777008  70557776   4% /
/dev/sda1                     983040  311648    671392  32% /boot
tmpfs                         200264       0    200264   0% /run/user/1000
파일 시스템1K-블록usedAvailableUse%Mounted on
파일 시스템의 이름 또는 장치 이름파일 시스템의 전체 크기를 1K 블록 단위로 표시파일 시스템에서 사용 중인 용량파일 시스템에서 사용 가능한 용량파일 시스템의 사용률파일 시스템이 마운트된 디렉토리 또는 장치의 위치

du

특정 디렉토리, 파일의 사용량

[vagrant@rocky9 ~]$ du -sh
16K     .

전체 사용량을 K, M, G 단위로 확인

lsblk

디스크 정보 확인

[root@rocky9 ~]# lsblk
NAME               MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda                  8:0    0  128G  0 disk
├─sda1               8:1    0    1G  0 part /boot
└─sda2               8:2    0  127G  0 part
  ├─rl_rocky9-root 253:0    0   70G  0 lvm  /
  └─rl_rocky9-swap 253:1    0    2G  0 lvm  [SWAP]

blkid

블럭 디바이스 id

[root@rocky9 ~]# blkid
/dev/mapper/rl_rocky9-root: UUID="060d7415-98cc-41b0-9aa0-40d3e639cd00" TYPE="xfs"
/dev/sda2: UUID="bbyAlJ-IN9b-j4rc-DjcY-VVqM-Bz72-umwe05" TYPE="LVM2_member" PARTUUID="6f61c25a-02"
/dev/sda1: UUID="f3f9428d-ec07-43e3-a3b5-e2bc2ecb683d" TYPE="xfs" PARTUUID="6f61c25a-01"
/dev/mapper/rl_rocky9-swap: UUID="1c157a77-8aeb-4f3f-ba64-63c4ae86351a" TYPE="swap"

디스크 관리

현재 사용중인 서버에 여분의 디스크 추가 후 작업

vagrant+virtualbox

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "generic/rocky9"

  config.vm.provider "virtualbox" do |vb|
    vb.memory = "2048"
    vb.cpus = "1"
      (0..2).each do |hd|
        if !File.exist?("disk#{hd}.vdi") 
          vb.customize ["createmedium", "disk", "--filename", "disk#{hd}.vdi", "--size", 20480]
        end
        vb.customize ["storageattach", :id, "--storagectl", "SATA Controller", "--port", hd+1, "--device", 0, "--type", "hdd", "--medium", "disk#{hd}.vdi"]
      end
  end
end

파티션 분리

fdisk /dev/sdb(새 디스크)

파티션을 관리하기 위한 명령

파티션 종류

  • Primary
    • 기본 파티션
    • 최대 4개 생성 가능
    • 생성 시 실질적 사용되는 저장공간

  • Extended
    • 확장 파티션
    • 1개만 생성 가능(Primary+Extended=4 까지)
    • 실제로 사용되지 않으며 예약개념 (Logical 파티션을 위한 공간)

  • Logical
    • 실질적으로 사용하는 공간
    • Extended 파티션 범위 안에서만 생성 가능

주요 사용 옵션

p: print the partition table
n: add a new partition
w: write table to disk and exit
q: quit without saving changes
t : 파티션의 속성 변경 - 주요 코드 : 82(Swap), 83(Linux), 8e(Linux LVM), fd(Raid)

1. fdisk /dev/sdb : partition of disks information

2. p : print the partition table

3. n : add a new partition

  • partition number = 1
    first sector = enter (파티션이 시작하는 용량 지정 가능)
    last sector = enter (파티션이 끝나는 용량 지정 가능)
    모든 공간을 사용해 파티션 생성

4. P : 파티션 생성 확인

5. w입력해 저장

[root@rocky9 ~]# lsblk
NAME               MAJ:MIN RM  SIZE RO TYPE 
sdb                  8:16   0   20G  0 disk
└─sdb1               8:17   0   20G  0 part

Logical partition
여유 공간을extend partition 으로 채우고 그 영역을 Logical partition이 사용

  • extend partition 생성
Command (m for help): n
Partition type
   p   primary (3 primary, 0 extended, 1 free)
   e   extended (container for logical partitions)
Select (default e): e

Selected partition 4
First sector (7317504-41943039, default 7317504):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (7317504-41943039, default 41943039):

Created a new partition 4 of type 'Extended' and of size 16.5 GiB.
Command (m for help): n
All primary partitions are in use.
Adding logical partition 5
First sector (7319552-41943039, default 7319552):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (7319552-41943039, default 41943039): +1G

결과

extend partition 공간내에 logical partition이 할당

/dev/sdc4       7317504 41943039 34625536 16.5G  5 Extended
/dev/sdc5       7319552  9416703  2097152    1G 83 Linux

파일 시스템 생성

mkfs

  • 이전에 생성한 /dev/sdb1 파티션을 ext4로 포맷
[root@rocky9 ~]# mkfs -t ext4 /dev/sdb1
mke2fs 1.46.5 (30-Dec-2021)
Creating filesystem with 5242624 4k blocks and 1310720 inodes
Filesystem UUID: 9333416d-ced7-4a61-b8e7-7dc8de3652f6
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done   

# type 확인
[root@rocky9 ~]# blkid /dev/sdb1
/dev/sdb1: UUID="9333416d-ced7-4a61-b8e7-7dc8de3652f6" TYPE="ext4" PARTUUID="30904577-01"
  • xfs로 포맷
[root@rocky9 ~]# mkfs -t xfs /dev/sdb1
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

# type 확인
[root@rocky9 ~]# blkid /dev/sdb1
/dev/sdb1: UUID="42de2b7c-83aa-41d5-879b-36dfd76ae430" TYPE="xfs" PARTUUID="7140622b-01"

mount

Usage:
 mount [-lhV]
 mount -a [options]
 mount [options] [--source] <source> | [--target] <directory>
 mount [options] <source> <directory>
 mount <operation> <mountpoint> [<target>]
# 원하는 디렉토리로 마운트
[root@rocky9 ~]# mount /dev/sdb1 mount/

# mount 마지막줄 확인
[root@rocky9 ~]# mount
.
.
.
/dev/sdb1 on /root/mount type ext4 (rw,relatime,seclabel)

# mounted on 탭 확인
[root@rocky9 ~]# df -h /dev/sdb1
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb1        20G   24K   19G   1% /root/mount

umount

마운트 해제

# 작업중인 디렉토리는 umount 불가능
[root@rocky9 mount]# umount ~/mount
umount: /root/mount: target is busy.

# 디렉토리 이동 후 umount
[root@rocky9 mount]# cd
[root@rocky9 ~]# umount ~/mount

마운트 자동 설정

/etc/fstab에 내용 추가

/dev/sdb1 /mount ext4 default 0 0

# 상단 내용 추가
[root@rocky9 ~]# vi /etc/fstab
[root@rocky9 ~]# mount -a
[root@rocky9 ~]# mount | tail -1
/dev/sdb1 on /root/mount type ext4 (rw,noexec,relatime,seclabel)

재부팅 후에도 자동으로 mount

sdb 8:16 0 20G 0 disk
└─sdb1 8:17 0 20G 0 part /root/mount

swap memory

물리적 메모리를 보완하기 위한 가상의 메모리

mkswap

파티션을 스왑 영역으로 지정

sudo mkswap /dev/sdc2
Setting up swapspace version 1, size = 500 MiB (524283904 bytes)
no label, UUID=7d6938e3-d00f-4edb-8f02-9e25902b7d0d

blkid /dev/sdc2
/dev/sdc2: UUID="7d6938e3-d00f-4edb-8f02-9e25902b7d0d" TYPE="swap" PARTUUID="427d6cb5-02"

swapon/off

# swap 할당
swapon /dev/sdc2

# swap 확인
swapon

NAME      TYPE      SIZE USED PRIO
/dev/dm-1 partition   2G   0B   -2
/dev/sdc2 partition 500M   0B   -3

# swap 해제
swapoff /dev/sdc2

# 해제 확인

swapon

NAME      TYPE      SIZE USED PRIO
/dev/dm-1 partition   2G   0B   -2

/etc/fstab 자동화

/dev/sdc2       swap    swap    defaults        0       0

저장 후 swapon -a 명령이나 재부팅으로 확인

0개의 댓글