LFCS 자격 준비 (4) Storage 생성·수정 실전 문제 + 연습 터미널

LFCS 시리즈 네 번째 편으로 Storage (20%) 도메인의 생성·수정 작업을 다룬다.
1편이 lsblk·df·pvs 같은 조회 위주였다면, 이번 편은 포맷·마운트·LVM 변경 같은 실제 작업이 중심이다.
정리 후 인터랙티브 연습 터미널에서 명령을 직접 입력해 본다.
0. 실습 환경 준비 (loop device)
/dev/vdb 같은 여분 디스크가 있다고 가정한다.
하지만 일반 리눅스에는 이런 디스크가 없으므로, 이미지 파일을 블록 장치처럼 연결하는 loop device로 실습 환경을 만든다.
fallocate로 빈 이미지를 만들고 losetup으로 /dev/loopN에 붙인다.
fallocate -l 1G: 실제 1GB를 즉시 할당해 이미지 파일을 만든다.losetup -f: 비어 있는 첫 loop 장치를 자동 선택한다.-P는 파티션 인식,--show는 할당된 장치명을 출력한다.
이렇게 만든 /dev/loop0는 아래 문제들의 /dev/vdb 자리에 그대로 대입하면 된다.
실습을 끝낸 뒤에는 마운트 해제 → loop 연결 해제 → 이미지 삭제 순으로 정리한다.
1. 디스크 포맷·마운트
새 디스크는 mkfs로 파일시스템을 만든 뒤 mount로 붙인다.
디스크 목록은 fdisk -l·lsblk -f, 사용량은 df -h로 확인한다.
- 포맷:
mkfs -t ext4 /dev/vdb - 마운트:
mount /dev/vdb /mnt/backup-black - 파일 생성:
touch /mnt/backup-black/completed
2. 언마운트와 사용 중 프로세스
언마운트 시 target is busy가 나오면 해당 경로를 잡고 있는 프로세스가 있다.
lsof로 범인을 찾아 종료한 뒤 umount한다.
- 사용 프로세스 확인:
lsof | grep /mnt/app-4e9d7e1e - 언마운트:
umount /mnt/app-4e9d7e1e
직접 재현해보기
앞에서 만든 loop device(/mnt/backup-black)로 이 상황을 직접 만들 수 있다.
먼저 마운트 지점을 붙잡고 있는 프로세스를 하나 띄운다.
# completed 파일을 계속 열어두는 프로세스를 백그라운드로 실행 → 경로가 busy 상태가 됨
tail -f /mnt/backup-black/completed &이 상태에서 언마운트를 시도하면 target is busy로 실패한다.
sudo umount /mnt/backup-black
# umount: /mnt/backup-black: target is busy.경로를 잡은 프로세스를 찾아 종료한 뒤 다시 언마운트한다.
# 마운트 지점을 사용 중인 프로세스 확인 (PID 출력)
sudo fuser -vm /mnt/backup-black
# 해당 프로세스를 종료하고 언마운트
sudo fuser -km /mnt/backup-black
sudo umount /mnt/backup-blacklsof +f -- /mnt/backup-black로도 범인을 찾을 수 있고, fuser -km은 마운트를 쓰는 프로세스를 한 번에 종료한다.
3. LVM 변경
LVM은 PV(물리 볼륨) → VG(볼륨 그룹) → LV(논리 볼륨) 구조이다.
VG에서 디스크를 빼려면 vgreduce, 새 VG는 vgcreate, LV는 lvcreate로 만든다.
크기 변경은 lvresize(또는 lvextend)를 쓴다.
- VG에서 PV 제거:
vgreduce vol1 /dev/vdh - VG 생성:
vgcreate vol2 /dev/vdh - LV 생성:
lvcreate --size 50M --name p1 vol2 - LV 포맷:
mkfs -t ext4 /dev/vol2/p1
연습 터미널 — Storage
문제를 읽고 알맞은 명령을 입력하면, 정답일 때 정해진 출력과 함께 다음 문제로 넘어간다.
help 사용법, hint 힌트, skip 건너뛰기, clear 화면 지우기를 쓸 수 있다.
정리
Storage 작업은 포맷·마운트·언마운트와 LVM(PV·VG·LV) 관리가 핵심이다. 조회 명령(1편)과 작업 명령(이번 편)을 함께 익히면 시험에서 흔들리지 않는다. 다음 편은 Essential Commands 도메인을 다룬다.