장치부터 마운트 지점까지 연결해서 봅니다
lsblk -o NAME,TYPE,SIZE,FSTYPE,UUID,MOUNTPOINTS
findmnt -T .
df -h .
df -i .lsblk는 블록 장치의 계층을, findmnt는 현재 경로가 속한 마운트를 보여 줍니다. df의 여유 공간과 inode 여유는 서로 다른 자원입니다. blkid는 파일시스템 등의 서명을 식별하며 비관리자 실행에서는 캐시나 접근 권한의 영향을 받을 수 있습니다.
- 블록 장치와 파티션디스크의 어느 범위를 사용할지 정합니다.
- 파일시스템그 범위에서 파일과 디렉터리를 관리합니다.
- 마운트 지점파일시스템을 현재 경로 트리에 연결합니다.
위에서 아래로 관리 계층을 나타냅니다. 파일시스템 생성과 마운트는 별도 작업입니다.
0으로 쓰는 작업은 저수준 포맷과 다릅니다
dd로 0을 쓰는 것은 지정한 바이트를 덮어쓰는 작업입니다. 파티션을 나누거나 파일시스템 구조를 만드는 작업과 같지 않습니다. SSD의 내부 매핑·예비 블록까지 모두 지웠다는 보장도 아닙니다. 실제 장치의 초기화는 목적과 장치가 제공하는 방법에 맞춰 수행해야 합니다.
dd if=/dev/zero of=sample.img bs=1M count=4 status=progress
stat --format='size=%s blocks=%b unit=%B' sample.img
du -B1 sample.img이 예제는 현재 디렉터리의 일반 파일 sample.img를 새 내용으로 만들거나 덮어씁니다. 실제 /dev 장치는 쓰지 않습니다. bs는 한 번에 처리할 블록 크기이고 count는 그 개수입니다. status=progress는 GNU dd의 진행 표시입니다. 성공 여부는 종료 상태로 확인합니다.
논리 크기와 차지하는 공간은 다를 수 있습니다
stat의 size는 파일의 논리 길이이며, blocks와 그 단위는 할당된 공간을 읽는 데 사용합니다. 희소 파일, 압축, 중복 제거, 파일시스템 메타데이터 때문에 이 값을 단순히 같은 것으로 보면 안 됩니다. du도 단위와 하드링크 계산 옵션에 따라 표시가 달라집니다.
swap 파일 역시 임의의 큰 파일을 만들면 끝나는 작업이 아닙니다. hole, copy-on-write, 파일시스템 지원 조건을 확인해야 합니다. 전체 swap을 끄는 swapoff -a를 일반 실습의 첫 단계로 두지 말고 현재 swapon --show와 메모리 여유부터 확인합니다.