본문 바로가기

Tools and Utilities/Linux

[Linux 실습] Ch10. 디스크 유틸리티들(Disk Utilities)

오픈 소스 비영리 기관 'Open Source Initiative'의 로고.   https://opensource.org/

본 글은 학교 '오픈소스 소프트웨어 입문' 과목을 수강하며 실습(또는 공부)한 내용을 정리한 글입니다.

개인 기록 용도로 작성한 글이라, 직접 이 글을 보고 실습을 따라하기엔 어려움이 많을 것으로 예상됩니다.
혹시 본 글을 보며 Linux를 공부하실 목적이라면, 일단 키워드 위주로 AI에게 물어봐가면서, 본인의 Linux 터미널에서 직접 타이핑해가며 공부하시기를 추천드립니다.

질문이나 의견이 있다면 자유롭게 댓글 달아주세요!

디스크 유틸리티들은 우리가 쓸 일은 거의 없음.

우리가 쓸 일은 디스크가 고장나서 fsck -A -N을 써서 파일 시스템을 체크하고 수리해 주거나,

디스크를 하나 더 달아서 lvcreate로 논리적 디스크를 만들어 두 개 디스크를 합치거나 해줌.
참고로, 리눅스 시스템에선 디스크 하나 더 달았다고 그게 잘 스무스하게 되지 않음. 
lvcreate로 논리적 디스크 만들어줘야 함.

mount amount 같은 건 슈퍼유저 명렁.

cd /tmp
ls
ls -ld .
drwxrwxrwt 23 root root 12288 Apr  8 01:47 .
-> 어? 다 열려있네? -> touch foss110 하는 등 내가 (거의) 암거나 다 할 수 있음.

이건 상당히 취약함... 그래서 나 혼자 쓸 수 있는 디렉토리가 필요할 수 있음.
-> 이거 우리 이미 봤었음. file descripter. fd.

foss110@ajousw:/tmp$ls -al /dev/stdin
lrwxrwxrwx 1 root root 15 Feb 25 18:57 /dev/stdin -> /proc/self/fd/0

/dev/stdin 은 표준 입력.
근데 실제로는 /proc/self/fd/0 으로 소프트 링크가 연결되어 있음.

즉, 교수님이랑 나 둘다 같은 경로가 보이지만,
proc에 들어가는 순간, 내가 보는 self와, 교수님이 보는 self는 다름.
이런 걸 만들기 위해 만들어 놓은 temp system이 df할 때 나오는 것.

그게 tmpfs인데, 임시 파일 시스템을 의미함.

foss110@ajousw:/tmp$ df | grep tmpfs
tmpfs                                    1582232      74180    1508052   5% /run
tmpfs                                    7911160         84    7911076   1% /dev/shm
tmpfs                                       5120          0       5120   0% /run/lock
tmpfs                                    7911160          0    7911160   0% /sys/fs/cgroup
tmpfs                                    1582232         36    1582196   1% /run/user/118
tmpfs                                    1582232          0    1582232   0% /run/user/3035
tmpfs                                    1582232          0    1582232   0% /run/user/3105
tmpfs                                    1582232          4    1582228   1% /run/user/3141
tmpfs                                    1582232          4    1582228   1% /run/user/3110

-> 하면 나오는 /dev/shm, /run 이런 얘들은,
임시로 쓰는 메모리 기반 파일 시스템이라 디스크가 아닌 메모리에 잡히는데,
그래서 빠르고, 휘발성(재부팅하면 날아감)이고, /proc 같은 것처럼 프로세스마다 다르게 보일 수 있음.
df 는 실제 물리 디스크만 보여주는 게 아니라,
파일 시스템으로 마운트된 모든 걸 보여주는 거라서, 
이런 tmpfs 들도 같이 나오는 거.


foss110@ajousw:/tmp$ df | head (앞부분 보여주는 그 head 명령어 쓴 거)
Filesystem                             1K-blocks       Used  Available Use% Mounted on
udev                                     7862608          0    7862608   0% /dev
tmpfs                                    1582232      74160    1508072   5% /run
/dev/sda2                              458755216  184432184  250946088  43% /
tmpfs                                    7911160         84    7911076   1% /dev/shm
tmpfs                                       5120          0       5120   0% /run/lock
tmpfs                                    7911160          0    7911160   0% /sys/fs/cgroup
/dev/sda1                                1098632       6240    1092392   1% /boot/efi
/dev/loop0                                 65280      65280          0 100% /snap/core20/2434
/dev/loop1                                 65280      65280          0 100% /snap/core20/2496

저기에 저 root file system이 /dev/sda2에 있다고 함.
저게 고장나면 큰일남. 리눅스 파일 시스템은 트리 구조니까.

df의 첫 열은 디스크나 파티션 이름임. 즉, 장치 파일 또는 파일 시스템 이름.
리눅스에서는 /dev/sda2같은 식으로 표시됨.
마지막 열은 이 파일 시스템이 현재 마운트된(연결된) 디렉토리 위치를 의미함.
즉, 연결된 디렉토리에 대한 파일 시스템 내역을 출력하는 느낌.


---
솔직히 윗부분 df 잘 이해안가긴 하는데... 일단 넘어가.
df: 파일 시스템(ex. 디스크, 메모리, ...)의 사용량과 남은 공간을 보여주는 명령어
---

df | head -20 -> 앞의 20줄만 보여줘라.
df -h 옵션 -> 사람이 읽기 쉬운 형태로 출력. 단위 등.

여담) 백업 하는 그 명령어 시험 낼 수 있으니 기억. 
tar -cvf backup250401.tar 대상 파일/디렉토리들

--- 실습 출첵용

cd ~/lab0401
ps -l > ps.result