저장 장치 구성하기

LinuxBeginner
지금 연습하기

소개

Linux 에서 저장 장치를 구성하는 실습에 오신 것을 환영합니다. 저장소 관리는 모든 Linux 시스템 관리자에게 필수적인 기술입니다. 시스템에 새 하드 드라이브나 SSD(Solid-State Drive) 를 추가하면 즉시 사용할 수 있는 상태가 아닙니다. 먼저 파일 시스템을 생성하여 준비한 다음, 디렉터리 트리에 연결하여 접근 가능하게 만들어야 합니다.

본 실습에서는 새로운 저장 장치를 추가하는 전체 수명 주기를 단계별로 진행합니다. 다음 사항들을 배우게 됩니다.

  • 새로 연결된 디스크 식별하기.
  • 디스크에 표준 Linux 파일 시스템 (ext4) 생성하기.
  • 디스크를 디렉터리에 마운트하여 접근 가능하게 만들기.
  • 사용량 확인 및 데이터 쓰기.
  • 디스크 안전하게 언마운트 및 분리하기.

lsblk, mkfs.ext4, mount, df, umount와 같은 명령어를 사용할 것입니다. 이 실습을 마치면 Linux 환경에서 기본 저장 장치를 관리하는 방법에 대한 탄탄한 이해를 갖게 될 것입니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 중급 레벨의 실험이며 완료율은 80%입니다.학습자들로부터 82%의 긍정적인 리뷰율을 받았습니다.

가상 디스크 연결

이 랩 환경에서는 자동화된 설정 프로세스를 통해 가상 디스크가 생성되었습니다. 이는 시스템에 새로운 저장 장치를 추가하는 것을 시뮬레이션합니다. 설정 스크립트는 100MB 가상 디스크 파일을 생성하고 이를 루프 장치(loop device)에 연결한 다음, 일관성을 위해 /dev/sdb에 대한 심볼릭 링크(symbolic link)를 생성합니다.

첫 번째 작업은 운영 체제가 이 새 디스크를 인식하는지 확인하는 것입니다. lsblk (블록 장치 목록, list block devices) 명령어가 이 작업에 완벽합니다. 이 명령어는 사용 가능한 모든 블록 장치 정보를 트리 형식으로 표시합니다.

블록 장치 목록을 보려면 터미널에서 다음 명령어를 실행하십시오:

lsblk

다음과 유사한 출력을 보게 될 것입니다. 마운트되지 않았고 마운트 지점이 표시되지 않은 100MB 크기의 루프 장치(이름은 loop4, loop14 또는 사용 가능한 다른 루프 장치 번호일 수 있음)를 찾으십시오.

NAME  MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0    7:0    0     4K  1 loop /snap/bare/5
loop1    7:1    0  91.4M  1 loop /snap/lxd/35819
...
loop4    7:4    0   100M  0 loop
...
vda    252:0    0    40G  0 disk
├─vda1 252:1    0     1M  0 part
├─vda2 252:2    0   200M  0 part /boot/efi
└─vda3 252:3    0  39.8G  0 part /

이는 디스크가 시스템에 의해 인식되었으며 다음 단계인 포맷(formatting)을 위해 준비되었음을 확인시켜 줍니다.

만약 루프 장치가 보이지 않는다면, 다음 명령어를 실행하여 생성할 수 있습니다:

## 가상 디스크 역할을 할 100MB 파일 생성
dd if=/dev/zero of=/tmp/disk.img bs=1M count=100 &> /dev/null
## 사용 가능한 다음 루프 장치 찾기
LOOP_DEVICE=$(losetup -f)
## 파일을 루프 장치에 연결하여 물리적 디스크 시뮬레이션
sudo losetup $LOOP_DEVICE /tmp/disk.img
## 랩 환경의 일관성을 위해 심볼릭 링크 생성
sudo ln -sf $LOOP_DEVICE /dev/sdb

그런 다음 lsblk 명령어를 다시 실행하여 루프 장치가 생성되었는지 확인하십시오.

mkfs.ext4 /dev/sdb 명령어로 디스크 포맷하기

이 단계에서는 새로 추가한 디스크를 포맷합니다. 포맷되지 않은 디스크는 빈 슬레이트와 같아서 운영 체제가 그 위에 파일을 저장하는 방법을 모릅니다. 파일 시스템 생성이라고도 하는 포맷 작업은 디스크에 파일 구성 및 저장을 가능하게 하는 데이터 구조를 기록합니다.

우리는 Linux 시스템에서 안정적이고 널리 사용되는 표준인 ext4 파일 시스템을 사용할 것입니다. ext4 파일 시스템을 생성하는 명령어는 mkfs.ext4입니다.

경고: 이 명령어는 파괴적입니다. 지정된 장치의 모든 데이터를 지웁니다. 실행하기 전에 항상 장치 이름을 다시 확인하십시오.

이제 /dev/sdb 디스크를 포맷합니다. 이는 장치를 수정하는 권한이 필요한 작업이므로 sudo를 사용해야 합니다.

sudo mkfs.ext4 /dev/sdb

이 명령어는 생성 중인 파일 시스템에 대한 정보 (inode 및 블록 수 포함) 를 출력합니다. 출력은 다음과 유사할 것입니다.

mke2fs 1.46.5 (30-Dec-2021)
Creating filesystem with 25600 4k blocks and 25600 inodes

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

이제 /dev/sdb 디스크는 ext4 파일 시스템으로 포맷되었으며 마운트할 준비가 되었습니다.

/mnt/data 디렉토리에 디스크 마운트하기

이 단계에서는 포맷된 디스크를 파일 시스템에서 접근할 수 있도록 만듭니다. 이 과정을 "마운트 (mounting)"라고 합니다. 마운트는 장치에 있는 파일 시스템을 "마운트 지점 (mount point)"이라고 불리는 특정 디렉토리에 연결합니다. 마운트되면 마운트 지점 디렉토리에 접근하여 해당 장치에서 읽고 쓸 수 있습니다.

먼저, 마운트 지점 역할을 할 디렉토리를 생성해야 합니다. 임시 마운트의 경우 /mnt 아래에 하위 디렉토리를 사용하는 것이 일반적인 관례입니다. /mnt/data라는 디렉토리를 생성해 보겠습니다.

sudo mkdir /mnt/data

이제 mount 명령어를 사용하여 /dev/sdb 장치를 /mnt/data 디렉토리에 연결합니다. 구문은 sudo mount [장치] [마운트_지점]입니다.

sudo mount /dev/sdb /mnt/data

성공하면 명령어는 출력 없이 실행되어야 합니다. 디스크가 마운트되었는지 확인하려면 lsblk 명령어를 다시 사용할 수 있습니다.

lsblk

아래 출력에서 루프 장치 (즉, /dev/sdb가 가리키는 장치) 가 이제 MOUNTPOINTS/mnt/data를 표시하는 것을 확인할 수 있습니다.

NAME  MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0    7:0    0     4K  1 loop /snap/bare/5
loop1    7:1    0  91.4M  1 loop /snap/lxd/35819
...
loop4    7:4    0   100M  0 loop /mnt/data
...
vda    252:0    0    40G  0 disk
├─vda1 252:1    0     1M  0 part
├─vda2 252:2    0   200M  0 part /boot/efi
└─vda3 252:3    0  39.8G  0 part /

이제 디스크를 사용할 준비가 되었습니다.

df -h 명령어로 디스크 사용량 확인하기

이 단계에서는 마운트된 디스크를 사용할 수 있는지 확인하고 사용 가능한 공간을 확인합니다. df (disk free) 명령어는 파일 시스템 디스크 공간 사용량을 보고하는 데 사용됩니다. -h (--human-readable) 플래그를 사용하면 크기를 1024 의 거듭제곱 (예: K, M, G) 으로 출력하여 출력을 더 쉽게 읽을 수 있습니다.

새로 추가된 디스크를 포함하여 마운트된 모든 파일 시스템을 보려면 df -h 명령어를 실행합니다.

df -h

출력에서 /dev/sdb에 해당하는 줄을 찾으십시오. 이 줄에는 총 크기, 사용된 공간, 사용 가능한 공간 및 마운트 지점이 표시됩니다.

Filesystem      Size  Used Avail Use% Mounted on
...
/dev/sdb         98M  2.5M   89M   3% /mnt/data
...

디스크가 마운트되었으므로 /mnt/data 디렉토리가 새 디스크의 루트 역할을 합니다. 작동하는지 확인하기 위해 여기에 파일을 써보겠습니다. 마운트 지점은 root 소유이므로 sudo와 함께 tee를 사용합니다.

echo "Hello LabEx" | sudo tee /mnt/data/test.txt

디렉토리 내용을 나열하여 파일이 생성되었는지 확인할 수 있습니다.

ls /mnt/data

출력에 새로 생성된 파일이 표시되어야 합니다.

test.txt

이제 새 저장 장치를 성공적으로 포맷하고, 마운트하고, 데이터를 기록했습니다.

디스크 마운트 해제 및 분리

이 마지막 단계에서는 저장 장치를 안전하게 마운트 해제하고 분리하는 방법을 배웁니다. 기본 장치(underlying device)가 시스템에서 제거되기 전에 파일 시스템을 마운트 해제하는 것이 매우 중요합니다. 이는 보류 중인 모든 데이터가 디스크에 기록되도록 보장하여 데이터 손실이나 손상을 방지합니다.

파일 시스템을 마운트 해제하는 명령어는 umount입니다. 장치 이름이나 마운트 지점(mount point)을 지정할 수 있습니다. 여기서는 마운트 지점을 사용하겠습니다.

sudo umount /mnt/data

디스크가 마운트 해제되었는지 확인하려면 lsblk를 다시 실행합니다. 루프 장치(loop device)에 더 이상 연결된 마운트 지점이 없는 것을 확인할 수 있습니다.

lsblk
NAME  MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0    7:0    0     4K  1 loop /snap/bare/5
loop1    7:1    0  91.4M  1 loop /snap/lxd/35819
...
loop4    7:4    0   100M  0 loop
...
vda    252:0    0    40G  0 disk
├─vda1 252:1    0     1M  0 part
├─vda2 252:2    0   200M  0 part /boot/efi
└─vda3 252:3    0  39.8G  0 part /

파일 시스템이 마운트 해제되었으므로 가상 디스크를 "분리(detach)"할 수 있습니다. 저희의 시뮬레이션 환경에서는 이것이 루프 장치를 분리하는 것을 의미합니다. /dev/sdb가 실제 루프 장치에 대한 심볼릭 링크(symbolic link)이므로, 올바르게 분리하려면 실제 장치 경로로 확인(resolve)해야 합니다.

## 심볼릭 링크를 확인하여 루프 장치 분리
sudo losetup -d $(readlink -f /dev/sdb)
## 심볼릭 링크 제거
sudo rm /dev/sdb

마지막으로, 생성했던 마운트 지점 디렉터리를 제거하여 정리하겠습니다.

sudo rmdir /mnt/data

이제 저장 장치를 추가하고, 사용하고, 제거하는 전체 과정을 성공적으로 완료했습니다.

요약

실습을 완료하신 것을 축하드립니다! Linux 환경에서 새로운 저장 장치를 구성하는 필수적인 작업 흐름을 성공적으로 익히셨습니다.

본 실습에서 다음의 핵심 기술들을 연습했습니다.

  • lsblk 명령어를 사용하여 새로운 블록 장치 식별하기.
  • mkfs.ext4로 원시 디스크에 파일 시스템 생성하기.
  • mkdir마운트 지점 생성하기.
  • mount 명령어를 사용하여 파일 시스템을 마운트하여 접근 가능하게 만들기.
  • df -h디스크 사용량 확인하기.
  • umount 명령어로 파일 시스템 안전하게 언마운트하기.
  • losetup -d로 루프 장치를 분리하여 디스크 제거 시뮬레이션하기.

이러한 작업들은 모든 Linux 서버나 워크스테이션에서 스토리지를 관리하기 위한 기본적인 운영 사항입니다. 이제 이 지식을 활용하여 실제 하드 드라이브, SSD 또는 USB 드라이브를 관리할 수 있습니다. 논리 볼륨 관리 (LVM), RAID 및 다양한 파일 시스템 유형과 같은 보다 고급 스토리지 주제를 계속 탐색해 보시기를 권장합니다.