[RHEL6] 파일 시스템 명령어 3탄(fsck, mke2fs, mknod, mkswap, mktemp)
본문 바로가기
IT 이야기/Linux 명령어

[RHEL6] 파일 시스템 명령어 3탄(fsck, mke2fs, mknod, mkswap, mktemp)

by 찬찬이 아빠 2020. 4. 8.
반응형
  11. fsck(파일 시스템 점검)

 1) 경로 : /sbin/fsck

 2) 요약 : 파일 시스템을 점검하고 복구

 3) 사용 방법 : fsck [옵션]

 4) 옵션

 -s : fsck를 연속으로 실행. 이는 두 개 이상의 파일 시스템을 상호 대화형으로 실행할 때 유용. e2fsck 명령어는 기본값이 상호 대화형 모드. -p나 -a 옵션은 비 상호 대화형 모드로 실행하여 에러를 자동으로 수정. 만일 자동으로 수정하길 원치 않으면, -n 옵션 사용

 -t 파일시스템 : 체크할 파일 시스템의 타입을 지정. -A 옵션과 함께 지정한 파일 시스템과 매칭되는 것만 체크. 파일 시스템 파라미터는 콤마(,)로 구분. 콤마로 구분된 모든 파일 시스템 목록 앞에 "no"나 "!"를 추가하면 검사 목록에서 제외

 -A : /etc/fstab에 등록된 내용을 참고하여 시스템에서 사용하는 모든 파일 시스템에 대해 검사를 수행

 -N : 실제로 실행하지는 않고 작업 내용을 출력

 -P : -A 옵션과 함께 루트 파일 시스템을 동시에 검사. 이 옵션은 루트 파티션의 손상이 의심될 경우에는 안전한 방법이 아니며, 손상된 경우는 루트 파일 시스템을 작고 검팩트하게 재 파티셔닝해야 함

 -R : -A 옵션과 함께 모든 파일 시스템을 대상으로 체크할 경우 루트 파일 시스템은 제외(이미 읽기/쓰기로 마운트 되어 있는 경우)

 -T : 시작할 때 제목을 출력하지 않음

 -V : 자세한 정보 출력

 -f : fsck는 파일 시스템에 이상이 없다고 판단하면 검사하지 않음. 이 옵션을 사용하면 무조건 검사

 -a : fsck를 수행하는 중 발생한 에러를 자동으로 처리하는 옵션. 검사 도중 만나는 질문에 일일이 대답하기가 귀찮거나 모두 y로 처리해도 무방한 경우에 사용

 -b : 슈퍼 블록이 손상되었을 경우 사용하는 옵션. 슈퍼 블록은 블록의 첫 번째에 위치하는데, 만일 슈퍼 블록이 손상되었다면 매 8192 블록마다 백업된 슈퍼 블록의 복사본을 가지고 슈퍼 블록을 복구해야 함

 -n : 어떤 문제가 있을 때 이를 수정하지 않고, 문제점을 출력

 -r : 파일 시스템의 문제를 하나씩 수정할 경우 확인 절차를 거침

 -y : 파일 시스템의 문제를 발견하였을 때 자동적으로 수정

 

 5) 추가 설명

대부분 리눅스 시스템은 부팅 시 자동으로 파일 시스템을 검사합니다. 이는 / 부팅 스크립트(레드햇 기준으로 /etc/rc/sysinit)에 fsck 명령을 실행하는 설정이 있기 때문입니다. 그러므로 수동으로 fsck로 검사하는 경우는 그렇게 많지 않고, 시스템을 시작할 때마다 파일 시스템을 검사하고 자동으로 복구합니다.

 

만일 복구 중에 디렉터리가 참조하지 않는 아이노드나 손상된 파일은 /lost+found 디렉터리에 옮겨서 보관합니다.

 

fsck -f 명령을 사용하여 /dev/hdc1 파일 시스템의 검사를 강제로 수행해 봅니다. -V 옵션은 자세한 검사 과정과 결과를 출력합니다.

# fsck -f -V /dev/hdc1
Parallelizing fsck version 1.23(15-Aug-2001)
e2fsck 1.23, 15-Aug-2001 for EXT2 FS 0.5b, 95/08/09
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
5766 inodes used (0%)
107 non-contiguous inodes (1.9%)
# of inodes with ind/dind/tind blocks: 1696/155/0
1293868 blocks used (81%)
0 bas blocks
0 large files
4917 regular files
828 directories
0 character device files
0 block device files
0 fifos
0 links
12 symbolic links (12 fast symbolic links)
0 sockets
----------
5757 files

 

 

 

  12. mke2fs(ext2 파일 시스템 생성)

 1) 경로 : /sbin/mke2fs

 2) 요약 : ext2 파일 시스템을 생성

 3) 사용 방법 : mke2fs [옵션] 장치명

 4) 옵션

 -b bytes : 블록 크기 지정

 -c : 파일 시스템 생성 시 배드 블록을 체크

 -f bytes : 플래그먼트 크기 지정

 -i bytes : 아이노드 당 바이트 수 지 지정. 기본값은 40,096 바이트이며 최소값은 1,024 바이트

 -l(엘) 파일명 : 파일에서 배드 블록을 검사

 -m 퍼센트 : 슈퍼 유저에게 예약해 둘 블록의 퍼센트를 지정. 기본값은 5%

 -q : 출력 없이 실행. 스크립트 안에서 사용하여 출력을 내보내지 않음

 -v : 파일 시스템을 생성하는 과정을 자세히 보여줌

 -F : 파일 시스템을 생성하기 위해 mke2fs 명령어를 강제로 실행

 -S : 슈퍼 블록과 그룹 기술장(descriptor)만을 사용

 

 5) 추가 설명

mke2fs 명령어는 디스크에 새로운 ext2 파일 시스템을 만듧니다. mke2fs 명령어는 mkfs -t ext2 명령과 같습니다.

# mke2fs /dev/hda4
mke2fs 1.23, 15-Aug-2001 for EXT@FS 0.5b, 95/08/09
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
... 중간 생략 ...
Writing inode tables : done
Writing Superblocks and filesystem accounting information : done
This filesystem will be automatically checked every 31 mounts or 180 days, whichever comes first. use tune2fs -c or -i to override.

 

새롭게 생성한 파일 시스템은 마운트하여 사용할 수 있습니다. /etc/fstab 파일에 등록하면 시스템을 다시 시작할 때마다 자동으로 마운트 할 수 있습니다.

 

 

<참고 정보>

1. 저널링 파일 시스템

이전에 대부분의 리눅스 시스템에서는 파일 시스템으로 ext2를 사용하였습니다. 시스템이 비정상적으로 종료하면 재부팅할 때 자동으로 파일 시스템을 체크하는데, 이는 파일이 디스크에는 기록이 되었지만 디스크의 인덱스 정보를 갱신하기 전에 시스템이 종료되어 파일의 정보를 찾을 수 없기 때문입니다. 그러나 오늘날 디스크의 용량이 대규모화되면서 파일 시스템 체크 작업에 상당한 시간이 걸리게 되었습니다.

 

저널링 파일 시스템은 파일을 작성하고 디스크 인덱스 정보가 갱신되ㅣ 않더라도 자체적인 로그와 디스크 인덱스를 비교하여 오류를 수정하여 안전하면서도 대용량의 디스크를 사용할 때 특히 편리합니다. 현재 리눅스에서 사용할 수 있는 저널링 파일 시스셑ㅁ은 Reiserfs, JFS(IBM), XFS(SGI), ext3, ext4 등이 있습니다.

 

2. fstab 파일

/etc/fstab 파일은 시스템 부팅 시 자동으로 마운트하는 파일 시스템 설정을 가지고 있습니다. 만일 새롭게 추가한 하드 디스크를 자동으로 마운트하려면 다음과 같이 설정해야 합니다. 먼저 /etc/fatab 파일을 열어 아래와 같이 새로운 파일 시스템의 정보를 추가합니다. 이때 마운트할 /home/Backup 디렉터리는 재부팅 전에 만들어야 합니다.

LABEL=/	/	ext3	defaults	1 1
none	/dev/pts	dev	pts	gid=5, mode=62000
none	/proc	proc	defaults	0 0
/dev/hda3/home	ext2	defaults	1 2
/dev/hda2/swap	swap	defaults	0 0
/dev/hda4/home/Backup	ext2	defaults	0 0

 

저장한 fstab의 정보는 시스템이 부팅할 때마다 자동으로 마운트합니다.. 만일 변경된 내용을 시스템 종료 없이 곧바로 적용하려면 mount -a 명령어를 사용합니다. df -T 명령으로 현재 마운트되어 있는 파일 시스템 정보를 확인할 수 있습니다.

# mount -a
# df -T

 

 

 

  13. mknod(특수 파일 만들기)

 1) 경로 : /bin/mknod

 2) 요약 : 특수 파일 생성

 3) 사용 방법 : mknod [옵션] 파일명{bcu} 메이저번호 마이너번호

                    mknod [옵션] 파일명

 4) 옵션

 -m, --mode 모드 : 모드는 사용자 권한을 말함.

 --help : 사용법 출력

 --version : 버전 정보 출력

 

 5) 추가 설명

/dev/sda 파일을 살펴봅니다.

# ls -al /dev/sda*
brw-rw---- 1 root disk 8, 0 Mar 21 03:33 /dev/sda
brw-rw---- 1 root disk 8, 1 Mar 21 03:33 /dev/sda1
brw-rw---- 1 root disk 8, 2 Mar 21 03:33 /dev/sda2
brw-rw---- 1 root disk 8, 3 Mar 21 03:33 /dev/sda3
brw-rw---- 1 root disk 8, 4 Mar 21 03:33 /dev/sda4
brw-rw---- 1 root disk 8, 5 Mar 21 03:33 /dev/sda5

 

brw-rw----에서 b는 블록 장치, c는 문자 장치를 나타냅니다. 여기서 블록 디바이스는 디스크, CD-ROM과 같이 매체를 이용한 블록 단위 검색을 하며, 캐릭터 디바이스는 통신 포트, 프린터 포트 등의 한 바이트씩 순차적 접근을 합니다. 9, 0은 메이저 번호와 마이너 번호를 나타냅니다. SCSI 디스크는 메이저 번호가 8로 시작하며 만인 IDE 디스크라면 3으로 시작합니다. sda1, sda2는 메이저 번호가 같은 8이고, 마이너 번호가 1, 2 이렇게 한 단계씩 증가합니다.

 

이 /dev/ 밑에 존재하는 하드웨어 장치 파일은 mknod 명령이나 /dev/MAKEDEV 스크립트를 이용하여 파일을 생성합니다.

 

 

 

  14. mkswap(스왑 지정)

 1) 경로 : /sbin/mkswap

 2) 요약 : 스왑 영역 설정

 3) 사용 방법 : mkswap [옵션] 장치이름 [블록크기]

 4) 옵션

 -c : 스왑 영역을 생성하기 전에 배드 블록을 검사

 -f : 강제적으로 명령어를 실행

 -p PSZ : 사용할 페이지 크기(PSZ)를 지정

 -L label : 스왑을 활성화할 때 사용할 라벨(label)을 지정

 -U uuid : 사용할 uuid를 지정. 기본값은 시스템 환경의 UUID를 사용

 

 5) 추가 설명

mkswap 명령어는 지정한 특정 장치나 파일을 스왑 영역으로 지정합니다. 아래는 512MB 크긱의 스왑 파일을 만드는 예입니다. 스왑 파티션을 만들고 swapon 명령으로 스왑 파티션을 활성화 시킵니다.

 

<512MB 스왑 파일 만들기>

# dd if=/dev/zero of=/swap bs=1024 count=524288
# mkswap /swap 524288
# sync
# swapon /swap

 

스왑을 해제 하려면 swapoff 명령을 사용하면 됩니다.

# swapoff /swap
# free

 

 

 

  15. mktemp(임시 파일이나 디렉터리 생성)

 1) 경로 : /usr/bin/mktemp

 2) 요약 : 임시로 사용할 파일이나 디렉터리 생성

 3) 사용 방법 : mktemp [옵션] ... [TEMPLATE]

 4) 옵션

 -d, --directory : 파일이 아니고, 디렉터리를 생성

 -q, --quiet : 파일이나 디렉터리 생성이 실패할 경우 이를 무시

 -u, --dry-run : 아무것도 생성하지 않고 이름만 출력

 -tmpdir[=DiR] : 디렉터리를 지정

 -p DIR : 접두사를 지정

 --help : 사용법 출력

 --version : 버전 정보 출력

 

 5) 추가 설명

mktemp 명령어는 쉽고 간단하게 임시 파일이나 디렉터리를 생성할 경우 유용합니다. 아래와 같이 mktemp 명령어만 실행하면 /tmp 디렉터리에 임시의 파일이 생성됩니다.

# mktemp
/tmp/tmp.pxUNqvrf4

# ls -al /tmp/tmp.pxUNqvrf4
-rw-------	1	user	user	0	2020-04-08 18:02	/tmp/tmp.pxUNqvrf4

 

-d 옵션은 임시 디렉터리를 생성할 때 사용합니다.

# mktemp -d
/tmp/tmp.4rieE4rew

# ls -al /tmp/tmp.4rieE4rew
합계 8
drwx------	2	user	user	4096	2020-04-08 16:05 .
drwxrwxrwt	12	root	root	4096	2020-04-08 16:05 ..
반응형

댓글