[리눅스마스터 1급] 이기적 이론서 5회차 정리 - 파일 시스템 관리2
🏁 이기적 이론서 학습 범위
- PART 01 리눅스 시스템 관리
- CHAPTER 01 일반 운영 관리 (SECTION 02 파일 시스템 관리)
파일 시스템 관리
☑️ 파일 시스템 관리 및 복구
파일 시스템 생성
- 파일 시스템 생성?
- 하드디스크를 새로 추가하거나 기존 하드디스크에 사용하지 않는 영역 존재 시 파일 시스템을 설정하여 정보를 저장하는데 사용할 수 있다.
- fdisk를 통한 파티션 관리
- 디스크상에서 파티션을 생성, 삭제, 수정할 수 있다.
형식
fdisk [option] device
옵션
옵션 설명 -l - 지정한 디스크의 파티션 정보를 출력한다.
- 만약 디스크를 미설정시/proc/partitions
의 장치의 파티션 정보를 출력한다.-b - 섹터당 크기를 설정한다.
- 512, 1024, 2048, 4096 중 하나를 선택한다.-s 파티션 크기를 출력하며 단위는 block이다. 예제
$ sudo fdisk -l /dev/sda # /dev/sda/ 장치의 파티션 정보 출력 $ sudo fdisk -s /dev/sda1 # /dev/sda1의 크기 출력 $ sudo fdisk /dev/sda # 파티션을 생성하고자 하는 장치를 지정하여 fdisk 실행
- mkfs를 통한 파일 시스템 생성
- 하드디스크를 사용할 수 있도록 파일 시스템을 생성한다.
형식
mkfs [option] device
옵션
옵션 설명 -t, —type 파일 시스템 유형을 지정한다. 지정하지 않으면 기본값인 ext2가 사용된다. -c 파일 시스템을 생성하기 전 배드블록을 체크한다. 예제
$ sudo mkfs -f ext4 /dev/sda2 # /dev/sda2를 ext4 파일 시스템으로 생성
- mke2fs를 통한 파일 시스템 생성
- 파일시스템을 실제로 생성한다.
mkfs
는 내부적으로mke2fs
를 호출한다.형식
mke2fs [option] device
옵션
옵션 설명 -i - 저널링 파일 시스템인 ext3로 생성한다.
- 커널이 ext3을 지원해야 한다.-t - 생성할 파일 시스템 유형을 지정한다.
- 옵션을 사용하지 않으면/etc/mke2fs.conf
에 지정된 기본값을 사용한다.-b - 블록 사이즈를 지정한다.
- 블록당 1024, 2048, 4096 중 하나이다.-E - 파일 시스템에 대한 확장 옵션을 설정한다. -T - 블록크기, 아이노드 크기, 파일 시스템 기능 등 파일 시스템의 파라미터를 지정한다.
-/etc/mke2f.conf
를 통해 설정된 파일시스템 파라미터를 옵션으로 입력할 수 있다.
- 보통 small, floppy, news, largefile, largefile4 등이 미리 설정되어 있고, 임의로 추가,제거 할 수 있다.예제
$ sudo mke2fs -j /dev/sda2 # /dev/sda2 장치를 저널링 파일 시스템인 ext3로 생성 # /dev/sda2 장치를 저널링 파일 시스템인 ext3로 생성하고, 블록 사이즈는 2048로, 스트라이프당 블록 사이즈는 32로 지정 $ sudo mke2fs -j -b 2048 -E stride=32 /dev/sda1 # /dev/sda2 장치를 ext3로 생성하고, 파일 시스템 유형을 largefile로 설정 $ sudo mke2fs -j -T largefile /dev/sda2
- mkfs.xfs
- xfs 파일을 생성한다.
mkfs -t xfs
도 사용 가능하다.
$ mkfs.xfs /dev/sda2 # /dev/sda2 장치를 xfs 파일 시스템으로 생성 # /dev/sda2 장치를 xfs 파일 시스템으로 생성하고 저널 관련 로그는 /dev/sdb에 생성 $ mkfs.xfs - l logdev=/dev/sdb. size=1000b /dev/sda2
- mount를 통해 시스템에 장착
- 하드디스크 전체나 특정 파티션을 현재 존재하는 파일 시스템의 디렉터리 구조에 붙여서 접근 가능하게 한다.
형식
mount [option] [device] [directory]
옵션
옵션 설명 -a, —all /dev/fstab
에 명시된 모든 파일 시스템을 마운트한다.-t, —types - 파일 시스템 유형을 지정한다.
- msdos, vfat, ntfs, ext2, ext3, ext4, xfs, iso9660, smbfs, cifs, nfs, udf와 같은 파일 시스템 유형할 수 있다.
--t
옵션을 사용하지 않거나 auto로 설정하면 커널이/etc/filesystems
등을 참고하여 파일 시스템 유형을 추정한다.
- 파일 시스템 유형에“no”
라고 붙이면 해당 파일 시스템은 제외한다.-o, —options - 파일시스템 마운트 시 옵션을 추가한다.
- 옵션은 여러 개 입력 가능하며 콤마로 구분한다.예제
$ mount # 현재 시스템에 마운트된 모든 장치의 정보 출력 $ mount -t xfs # 현재 시스템에 마운트된 장치 중 xfs 파일 시스템 정보 출력 $ sudo mount -a # /etc/fstab에 정의된 모든 파일 시스템 마운트 $ mount -a -t nomsdos.ext # msdos와 ext 파일 시스템을 제외한 모든 파일 시스템 마운트 # /dev/cdrom 장치를 /mnt 디렉터리에 마운트함. # 읽기 전용이며 파일시스템의 유형은 iso9960 $ mount -t iso9960 -o ro /dev/cdrom /mnt # ISO 이미지인 linux.iso를 /mnt/linux에 마운트함. # loop 옵션을 추가해야 한다. $ mount -o loop linux.iso /mnt/linux
- unmount를 통해 시스템 해제
mount
로 마운트했던 파일 시스템을 해제한다.형식
unmount [option] device unmount [option] directory
옵션
옵션 설명 -a /etc/mtab
에 설정된 모든 파일 시스템을 언마운트한다.-t 지정한 유형의 파일 시스템만 언마운트한다. 예제
$ sudo unmount -a # /etc/mtab에 지정된 모든 파일 시스템을 언마운트 $ sudo unmount -t ext4 # ext4 파일 시스템만 언마운트 $ sudo unmount /dev/francis/tmp # /dev/francis/tmp에 마운트된 장치를 언마운트
- eject를 통한 미디어 꺼내기
- 지정한 장치의 미디어를 꺼낸다.
- 장치 파일의 이름이나 마운트된 위치 또는 장치의 전체 경로를 통해 지정한다.
- 이름을 지정하지 않고 사용하면 기본적으로
cdrom
이 사용된다. - 자동으로 언마운트하는 효과가 있다.
형식
eject [device] eject [directory]
예제
$ eject # 기본 장치의 미디어를 꺼냄 # 장치명을 입력하거나 마운트된 경로를 입력하여 미디어를 꺼냄 $ eject cdrom OR $ eject /dev/cdrom OR $ eject /mnt/cdrom
- /etc/fstab을 통한 영구 마운트 설정
/etc/fstab
파일은 리눅스 파일 시스템의 마운트 위치 및 마운트 옵션에 대한 정보를 담고 있다.- 리눅스가 부팅 시 이 파일의 정보에 따라 파일 시스템을 자동으로 마운트한다.
mount
,unmount
,fsck
등의 명령어가 이 파일을 참조하며, 총 6개의 필드로 구성된다.필드
필드 위치 필드 설명 1 블록 디바이스 - 마운트할 블록 디바이스 장치를 지정한다.
- 보통/dev
디렉터리 이하에 위치한다. - 다른 방법으로는 LABEL 또는 UUID를 사용할 수 있다.2 마운트 위치 - 파일 시스템상 마운트 위치이다.
- 블록 디바이스에 접근할 수 있다.3 파일 시스템 유형 - 블록 디바이스나 파일 시스템에 대한 유형이다.
- 운영체제가 지원하는 유형을 사용할 수 있다.4 마운트 옵션 - 마운트할 때 사용할 옵션이다.
- 파일시스템과 관계없이 사용할 수 있는 공통 옵션과 파일시스템마다 다른 옵션을 사용할 수 있다.
- 기본값을 사용하려면 defaults를 사용한다.
- defaults 값은 rw, Set-UID, dev, exec, auto, nouser, async를 뜻한다.5 덤프 여부 - dump 프로그램에 의해 백업되어야 하는지 정한다.
- 0이면 백업되지 않고 1이면 백업된다.6 파일 시스템 점검 - 부팅시 파일 시스템을 점검할 순서를 지정한다.
파일 시스템 점검
- fsck(file system consistency check)
- 파일 시스템을 점검하고 손상된 영역을 복구한다.
- 파일 시스템이 더티 상태이거나 파일 시스템 없이 여러번 마운트되었다면
fsck
를 실행한다. 형식
fsck [option] device
옵션
옵션 설명 -a 사용자 확인 없이 파일 시스템을 자동 복구한다. -r - 파일 시스템을 복구할 때 사용자의 확인을 받는다.
- 다수의 fsck 명령어를 동시 실행 할 때 해당 옵션은 사용이 불편하다.-A /etc/fstab
파일에 정의된 모든 파일 시스템에 대해 점검을 수행한다.-P -A 옵션과 함께 사용할 때 루트 파일 시스템과 그 외 파일 시스템을 병렬로 점검한다. -R -A 옵션과 함께 사용 시 루트 파일 시스템 점검을 제외한다. -N 실제 처리없이 어떤 명령을 수행하는지 보여준다. -s - fsck의 동작을 직렬화한다.
- 다수의 파일 시스템을 대화형으로 점검할 때 유용하다.-t - 점검할 파일 시스템 유형을 지정한다. 예제
# fsck는 언마운트된 상태에서 수행해야 한다. # 단일 사용자 모드(실행 레벨1)로 변경하고 언마운트한다. $ sudo init 1 $ sudo fsck /dev/sda2 # sda2 파티션을 점검한다. $ sudo fsck -A # /dev/fstab에 정의된 모든 파일 시스템을 점검한다.
- e2fsck
fsck
의 확장형으로 ext2, ext3, ext4 파일 시스템을 점검한다.형식
e2fsck [option] device
옵션
옵션 설명 -n 사용자의 모든 확인을 no로 응답한다. -y 사용자의 모든 확인을 yes로 응답한다. -c 배드블록을 찾아 해당 아이노드에 파일이나 디렉터리를 할당하지 않는다. -f 파일 시스템 손상이 없더라도 일단 점검을 수행한다. 예제
# /dev/sdb1에 대해 파일 시스템을 점검할 때 사용자 질의는 자동으로 yes로 답한다. $ sudo e2tsck -y /dev/sdb1
- df
- 파일 시스템 전체 크기, 가용용량 등 파일 시스템에 대한 자세한 정보를 출력한다.
형식
df [option]
옵션
옵션 설명 -h, —human-readable 1K, 234M, 2G와 같이 용량의 단위를 표시한다. -k, —block-size 킬로바이트(KB) 단위로 출력한다. -m 메가바이트(MB) 단위로 출력한다. -T 파일 시스템 유형을 출력한다. -i 블록 사용량 대신 아이노드의 정보를 출력한다. 예제
$ df -a # 모든 파일 시스템을 확인 $ df -h # 파일 시스템의 정보를 한눈에 들어오게 정리하여 출력 $ df -i # 아이노드의 개수를 표시
- du
- 디렉터리 또는 파일들이 차지하는 공간 정보를 출력한다.
형식
du [option] file
옵션
옵션 설명 -h 1K, 234M, 2G와 같이 사람이 읽을 수 있는 형식으로 프린트한다. -b, —bytes 실제 프린터에 추가가 필요하다. -k 킬로바이트 단위로 출력한다. -m 메가바이트 단위로 출력한다. -a, —all 디렉터리에서 존재하는 모든 파일에 대한 각각의 크기를 보여준다. -s 지정한 옵션의 출력 결과에 대한 합계를 보여준다. 예제
$ du -s *.txt # 현재 디렉터리의 각 파일의 크기 출력 $ du -h # 현재 디렉터리 내 모든 파일과 디렉터리의 크기를 KB, MB 단위로 출력 $ du -sh # 현재 디렉터리의 총 사용량만 단위를 붙여서 출력 $ du -shm ~francis # francis 사용자의 총 사용량을 메가바이트 단위로 출력