| HOME / 정보공유 / AIX 명령어 모음

mkfs
mkfs mkfs 명령 목적 파일시스템을 만듭니다. 구문
mkfs [ -b Boot ] [ -l Label ] [ -i i-Nodes ] [ -o Options ] [ -p Prototype ] [ -s Size ] [ -v VolumeLabel ] [ -V VfsName ] Device
설명
mkfs 명령은 지정된 장치에서 새로운 파일시스템을 만듭니다. mkfs 명령은 볼륨 레이블, 파일 시스템 레이블, 시동 블록 등을 초기화합니다.
Device 매개변수는 블록 장치 이름, 원시 장치 이름, 파일시스템 이름 등을 지정합니다. 매개변수가 파일시스템 이름을 지정하는 경우, mkfs 명령은 이 이름을 사용하여 다음 매개변수를 mkfs 명령으로 입력한 경우를 제외하고는 매개변수를 /etc/filesystems 파일의 해당 스탠자에서 얻습니다.
dev 장치 이름
vol 볼륨 ID
size 파일시스템 크기
boot 시작 블록에 설치할 프로그램
vfs 가상 파일시스템의 정의
options Keyword, Keyword =Value 양식의 파일시스템 구현에 따라 고유한 옵션
주:
파일시스템은 setgid(세트 그룹 ID) 비트가 사용 가능해야 작성할 수 있습니다. setgid 비트가 디폴트 그룹 사용권한을 결정합니다. 새 파일시스템으로 작성한 모든 디렉토리는 동일한 디폴트 그룹 사용권한을 가집니다.
mkfs 명령은 파일시스템 레이블을 포함하여, 마운트된 파일시스템의 어떤 것도 변경하지 않습니다. 파일시스템 레이블은 파일시스템이 마운트된 경우를 제외하고는 마운트 위치를 변경할 때 변경됩니다.
사용 방법
JFS는 POWER 기반 플랫폼 전용이고 JFS2는 두 플랫폼 모두에 공통입니다.
원형 파일
mkfs 명령은 저널 파일시스템(JFS)을 작성하기 위한 확장된 원형 파일을 필요로 합니다. prototype file은 파일시스템의 내용과 구조의 형식화된 리스트입니다. 원형 파일은 공백과 개행으로 구분되는 일련의 토큰에 의해 파일시스템을 설명합니다. 원형 파일의 메인 본문은 파일시스템의 오브젝트를 정의합니다.
JFS 원형 파일은 proto 명령으로 작성될 수 있는 주요 본문으로 이루어지는데, 이 본문 앞에는 다섯 개의 특수 토큰이 선행합니다. 이 다섯 개의 토큰은 다음과 같이 정의합니다.
첫 번째 토큰 블록 0에 부트스트랩 프로그램으로 복사할 파일의 이름 또는 특수 토큰 .
두 번째 토큰 파일시스템의 크기.JFS의 경우, 크기는 512 바이트 블록 단위로 표시합니다. 두 번째 토큰이 0인 경우, mkfs 명령은 전체 논리적 볼륨을 작성할 파일시스템을 작성합니다.
세 번째 토큰 파일시스템상의 i-노드 수. 이 토큰은 JFS가 사용하지 않지만 위치를 보존하기 위해서 제공되어야 합니다.
네 번째 토큰 바이트로 표시한 파일시스템의 프래그먼트 크기. 네 번째 토큰이 0이면, mkfs 명령은 디폴트 프래그먼트 크기를 사용합니다. JFS의 경우, 이 토큰은 0(디폴트 값으로 사용), 512, 1024, 2048 또는 4096 중 하나여야 합니다. JFS에서 디폴트 프래그먼트의 크기는 4096입니다. 유효하지 않은 프래그먼트 크기를 사용하면, mkfs 명령은 실패합니다.
다섯 번째 토큰 i-노드당 바이트 수(nbpi). 이 토큰이 0일 경우, mkfs 명령은 디폴트 nbpi를 사용합니다. JFS의 경우, 이 토큰은 0(디폴트 값으로 사용), 512, 1024, 2048, 4096, 8192 또는 16384 중 하나여야 합니다. JFS에서 i-노드당 디폴트 바이트 수는 4096입니다. 유효하지 않은 nbpi를 사용하면, mkfs 명령이 실패합니다.
나머지 토큰은 파일시스템의 내용과 구조를 정의합니다. 이 토큰은 세트로 그룹화되며, 각 세트는 하나의 파일시스템 오브젝트를 정의합니다. 각 세트의 구문은 다음과 같습니다.
{ [ Name ] { - | d | b | c | l | L | p } { - | u } { - | g } { - | t } Mode Owner
Group { Major Minor | SourceFile | DirectoryListing } } | { $ }
설명:
Name 새로운 파일시스템에 표시된 대로 오브젝트 이름을 지정합니다. Name 토큰은 루트 디렉토리 정의를 제외하고는 모든 오브젝트에 필요합니다.
{ - | d | b | c | l | L | p } { - | u } { - | g } { - | t }
4 위치 문자의 문자열을 다음 위치에 표시합니다.
{ - | d | b | c | l | L | p }
오브젝트 유형을 정의합니다. 유효한 유형은 다음과 같습니다.
-
정규 파일
d
디렉토리
b
블록 특수 파일
c
문자 특수 파일
l
심볼 링크
L
하드 링크
p
이름 붙여진 파이프
{ - | u }
오브젝트의 설정 UID 비트를 다음과 같이 토글합니다.
u
실행시 UID 설정
-
실행시 UID 설정 안함
{ - | g }
오브젝트의 setgroups ID(GID) 비트를 다음과 같이 토글합니다.
g
실행시 GID 설정
-
실행시 GID 설정 안함
{ - | t }
오브젝트의 스티키(sticky) 비트를 다음과 같이 토글합니다.
t
스티키(sticky) 비트 켜기
-
스티키(sticky) 비트 끄기
4문자로 된 이 토큰이 모든 오브젝트에 필요합니다.
Mode 오브젝트의 읽기, 쓰기 및 실행 사용권한을 정의하는 세 개의 8진수 문자의 문자열을 표시합니다. Mode 토큰은 모든 오브젝트에 필수입니다. 사용권한에 대한 추가 정보는 chmod 명령을 참조하십시오.
Owner 오브젝트 소유자의 UID를 지정합니다. 소유자 토큰은 모든 오브젝트에 필요합니다.
Group 오브젝트 소유자의 GID를 지정합니다. 그룹 토큰은 모든 오브젝트에 필요합니다.
Major Minor 오브젝트 유형이 블록이거나 문자 특수 파일일 경우, 오브젝트의 주 장치 번호와 부 장치 번호를 지정합니다. 오브젝트가 블록 또는 문자 특수 파일이 아닌 경우, 이들 토큰은 생략됩니다.
SourceFile 정규 파일 오브젝트, 하드 링크 오브젝트 및 심볼 링크 오브젝트에만 적용됩니다. 정규 파일의 경우, 이 토큰은 오브젝트 파일이 초기화되는 파일의 경로 이름입니다. 심볼 링크와 하드 링크의 경우, 이 토큰은 해당 링크의 소스입니다. 링크의 소스는 하드 링크의 새 파일시스템에 관한 것입니다.
DirectoryListing 오브젝트 유형이 디렉토리일 경우, 오브젝트의 내용을 정의합니다. 디렉토리의 내용은 여기에 설명된 토큰 구문을 사용하여 정의합니다. 예를 들어, 디렉토리 리스트는 하나 이상의 정규 파일, 둘 이상의 블록 파일, 그리고 둘 이상의 디렉토리 리스트를 포함할 수 있습니다. mkfs 명령은 디렉토리 항목 .와 ..를 작성합니다. 각각의 디렉토리 리스트는 특수 $ 토큰과 함께 종료합니다.
$ 현재 디렉토리 리스트를 종료하거나 원형 파일의 끝을 나타냅니다.
예제: 원형 스펙
다음의 원형 스펙은 블록 0에 부트 프로그램이 없고, 전체 장치를 차지하는 JFS를 설명합니다. 세 번째 토큰은 무시합니다. 네 번째와 다섯 번째 토큰은 프래그먼트 크기를 1024 바이트로, i- 노드당 바이트 수는 2048로 정의합니다. 이 원형의 메인 본문은 파일시스템 내용을 정의합니다.
0 0 1024 2048
d--- 755 0 0
dir1 d--- 755 0 2
block_dev b--- 644 0 0 880 881
char_dev c--- 644 0 0 990 991
named_pipe p--- 644 0 0
regfile3 ---- 644 0 0 /tmp/proto.examp/dir1/regfile3
regfile4 ---- 644 0 0 /tmp/proto.examp/dir1/regfile4
$
dir2 d--- 755 205 300
regfile6 ---- 644 0 0 /tmp/proto.examp/dir2/regfile6
symlnOutofFS l--- 644 0 0 /tmp/proto.examp/dir2/regfile6
symlnNoExist l--- 644 0 0 /home/foobar
symlnInFs l--- 644 0 0 /dir2/regfile6
regfile5 ---- 644 0 0 /tmp/proto.examp/dir2/regfile5
hardlink L--- 644 0 0 /dir2/regfile5
$
dir3 d--- 755 0 0
setgid --g- 755 0 0 /tmp/proto.examp/dir3/setgid
setuid -u-- 755 0 0 /tmp/proto.examp/dir3/setuid
sticky ---t 755 0 0 /tmp/proto.examp/dir3/sticky
$
dir4 d--- 755 0 0
dir5 d--- 755 0 0
dir6 d--- 755 0 0
$
dir7 d--- 755 0 0
$
$
regfile7 ---- 644 0 0 /tmp/proto.examp/dir4/regfile7
$
regfile1 ---- 555 205 1 /tmp/proto.examp/regfile1
regfile2 ---- 744 0 0 /tmp/proto.examp/regfile2
$
$
dir2 오브젝트에 대한 세 개 항목은 더 조사를 해야 합니다.
symlnOutofFS l--- 644 0 0 /tmp/proto.examp/dir2/regfile6
이 항목은 작성될 파일시스템 외부의 파일에 대한 심볼 링크를 정의합니다. ls -l 명령은 symlnOutofFS -> /tmp/proto.examp/dir2/regfile6과 유사한 것을 나열합니다.
symlnNoExist l--- 644 0 0 /home/foobar
이 항목은 존재하지 않는 파일에 작성될 파일시스템 외부의 파일에 대한 심볼 링크를 정의합니다. ls -l 명령은 symlnNoExist -> /home/foobar과 유사한 것을 나열합니다.
symlnInFs l--- 644 0 0 /dir2/regfile6
이 항목은 작성될 파일시스템 내부의 파일에 대한 심볼 링크를 정의합니다. ls -l 명령은 symlnInFS -> /dir/regfile6과 유사한 것을 나열합니다.
플래그
-b Boot 새 파일시스템의 블록 0에 설치할 프로그램을 명명합니다.
-i i-Nodes 파일시스템의 초기 i-노드 수를 지정합니다. 이 플래그는 저널 파일시스템을 작성할 때 무시됩니다.
-l Label 새 파일시스템에 대한 파일시스템 레이블을 지정합니다.
-o Options 가상 파일시스템의 실행에서만 사용하는 옵션을 쉼표로 구분한 리스트를 지정합니다.
다음 옵션은 저널 파일시스템(JFS)에 고유합니다.
-o ag={ 8 | 16 | 32 | 64 } 할당 그룹 크기를 메가 바이트 단위로 지정합니다. 할당 그룹은 BSD 실린더 그룹에 유사한 i-노드 및 디스크 블록의 분류입니다. 디폴트 ag 값은 8입니다. 이 옵션은 AIX 4.2 이상에만 적용됩니다.
-o bf={ true | false } 대형 파일 사용가능 파일시스템을 지정합니다. 자세한 내용은 "대형 파일 사용가능 파일시스템의 이해"를 참조하십시오. 대형 파일이 사용가능 파일시스템 필요없는 경우에는 이 옵션을 false로 설정하십시오. 이것이 디폴트입니다. bf=true를 지정하려면 4096의 프래그먼트 크기와 compress=no가 필요합니다. 이 옵션은 AIX 4.2 이상에만 적용됩니다.
-o frag={ 512 | 1024 | 2048 | 4096 } JFS 프래그먼트 크기를 바이트 단위로 지정합니다. 파일 시스템 프래그먼트는 디스크 저장 단위로서 파일에 할당할 수 있는 가장 작은 단위입니다. 디폴트 프래그먼트 크기는 4096 바이트입니다.
-o compress={ no | LZ } 데이터 압축을 지정합니다. 데이터를 압축하지 않으려면, 이 옵션을 no로 설정하십시오.
-o nbpi={ 512 | 1024 | 2048 | 4096 |8192 | 16384 | 32768 | 65536 | 131072 } i-노드 당 바이트 수(nbpi)를 지정합니다. nbpi는 바이트로 표시한 시스템 크기의 총 i-노드 수에 대한 비율입니다디폴트 nbpi 값은 4096 바이트입니다값 32768, 65536 및 131072는 AIX 4.2 이상에만 적용됩니다.
주:
ag 값이 8보다 큰 파일시스템은 AIX 4.1 시스템에서 인식되지 않습니다.
ag, bf, compress, frag 및 nbpi 속성은 파일시스템 작성시 설정되며 파일시스템이 성공적으로 작성된 후 변경할 수 없습니다. size 속성은 최소 한도의 파일시스템 크기를 정의하며 파일 시스템을 작성한 다음에는 축소할 수 없습니다.
루트 파일시스템( / )은 압축할 수 없습니다.
몇몇 nbpi 값과 할당 그룹 크기는 서로 배타적입니다자세한 내용은 "JFS 크기 한계의 이해"를 참조하십시오.
다음 옵션은 향상된 저널 파일시스템(JFS2)에 고유합니다.
-o agblksize={ 512 | 1024 | 2048 | 4096 } JFS2 블록 크기를 바이트 단위로 지정합니다. 파일시스템 블록은 파일에 할당할 수 있는 가장 작은 디스크 저장 단위입니다. 디폴트 블록 크기는 4096바이트입니다.
-o dense 공백이 있는 파일을 작성할 때 JFS2가 해당 공백에 대해 디스크 블록을 할당하고 공백을 0으로 채우도록 지정합니다.
-o name=mountpoint 파일시스템에 대한 마운트 위치를 지정합니다.
로그에 논리적 볼륨 이름을 지정합니다. 지정된 논리적 볼륨이 새로운 JFS2의 로그 장치입니다.
-o log=INLINE 로그를 JFS2 파일시스템이 있는 논리적 볼륨에 저장하도록 지정합니다. 로그 크기를 지정하지 않은 경우, INLINE 로그의 디폴트 논리적 볼륨 크기는 .4%입니다.
-o logsize=Value INLINE 로그에 대한 크기를 MB 단위로 지정합니다. INLINE 로그가 사용 중이 아닐 경우 무시됩니다. 파일시스템의 크기가 10%를 초과할 수 없습니다.
주: agblksize 및 dense 속성은 파일시스템 작성시 설정되며, 파일시스템이 성공적으로 작성된 후 변경할 수 없습니다. 크기 속성은 최소 파일시스템 크기를 정의하며, 파일시스템이 작성된 후 축소할 수 없습니다.
-p Prototype 원형 파일의 이름을 지정합니다. 명령 행에서 지정된 옵션은 원형 파일의 속성을 대체합니다.
-s Size 파일시스템 크기를 512 바이트의 블록으로 지정합니다. 자세한 내용은 "JFS 크기 제한의 이해"를 참조하십시오.
주:
파일시스템이 상주하는 볼륨 그룹의 최대 논리적 볼륨 크기를 정의하고 또한 파일시스템 크기를 제한합니다.
-s Size 플래그는 최소 파일 크기를 지정하며, 파일시스템이 성공적으로 작성된 후 축소할 수 없습니다.
-v VolumeLabel 새 파일시스템에 대한 볼륨 레이블을 지정합니다.
-V VfsName 가상 파일시스템(VFS) 유형을 지정합니다. VFS는 /etc/vfs 파일에 항목이 있어야 합니다.
예제
새 파일시스템에 대한 볼륨 및 파일시스템 이름을 지정하려면 다음과 같이 입력하십시오.
mkfs -lworks -vvol001 /dev/hd3
이 명령은 /dev/hd3 장치에 비어 있는 파일시스템을 작성하며, 볼륨 일련 번호 vol001과 파일시스템 이름 works를 부여합니다. 새 파일시스템은 전체 장치를 차지합니다. 파일시스템은 디폴트 프래그먼트 크기(4096 바이트) 및 디폴트 nbpi 비율(4096)을 가집니다.
디폴트가 아닌 속성을 가진 파일 시스템을 작성하려면 다음과 같이 입력하십시오.
mkfs -s 8192 -o nbpi=2048,frag=512 /dev/lv01
이 명령은 /dev/lv01 장치에 512바이트의 프래그먼트와 각 2048바이트에 대해 한 개의 i-노드가 비어 있는 4MB의 파일시스템을 작성합니다.
대형 파일이 사용 가능한 파일시스템을 작성하려면 다음을 입력하십시오.
mkfs -V jfs -o nbpi=131072,bf=true,ag=64 /dev/lv01
이렇게 하면 할당 그룹 크기가 64메가바이트(MB)이고 디스크의 131,072바이트당 한 개의 i-노드를 가진, 대형 파일 사용 가능 파일시스템을 작성할 수 있습니다. 파일시스템의 크기는 논리적 볼륨 1v01의 크기입니다.
파일
/etc/vfs 가상 파일시스템 유형의 설명이 들어 있습니다.
/etc/filesystems 알려진 파일시스템을 나열하고 해당 특성을 정의합니다.
관련 정보
fsck 명령, mkproto 명령 및 proto 명령
ioctl 서브루틴
dir 파일, filesystems 파일, filsys.h 파일