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

mkproto
mkproto mkproto 명령 목적 원형 파일시스템을 구성합니다. 구문
mkproto SpecialPrototype
설명
mkproto 명령은 새로운 파일시스템에 대한 원형을 구성하는 데 사용됩니다. 이 명령은 Berkeley Software Distribution(BSD) 호환용으로만 사용합니다.
Special 매개변수는 블록 장치 이름, 원시 장치 이름 또는 파일시스템 이름일 수 있습니다. Prototype 매개변수는 작성할 파일시스템의 구조와 내용을 지정하는 원형 파일의 이름입니다. mkproto 명령은 Prototype 및 Special 매개변수를 사용하여 mkfs 명령을 호출합니다.
원형 파일
mkproto 및 mkfs 명령은 저널 파일시스템(JFS)을 작성하기 위한 확장 원형 파일을 필요로 합니다. 원형 파일은 파일시스템의 내용과 구조의 형식화된 리스트입니다. 원형 파일은 공백과 개행으로 구분되는 일련의 토큰에 의해 파일시스템을 설명합니다. 원형 파일의 메인 본문은 파일시스템의 오브젝트를 정의합니다.
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과 유사한 것을 나열합니다.
예제
"예제 원형 파일 스펙"에 설명된 원형 파일을 사용하여 원형 JFS를 작성하려면, 다음을 수행하십시오.
proto 명령 또는 문서 편집기를 사용하여 원형 파일의 주요 본문을 작성하십시오. 이 예제의 목적에 맞게 /tmp/ProtoFile 파일을 호출하십시오.
JFS가 요청한 대로 처음 5개의 토큰을 추가하십시오원형 파일 예제에서, 이 토큰은 다음과 같습니다.
0 0 1024 2048
다음과 같이 파일시스템을 담을 논리적 볼륨을 작성하십시오.
mklv -y protolv -t jfs SomeVGname 5
이 명령은 논리적 볼륨 protolv를 SomeVGname 볼륨 그룹에 작성합니다. 논리적 볼륨의 크기는 논리적 파티션 5입니다.
적절한 스탠자를 /etc/filesystem 파일에 추가하십시오. 최소한의 예제 스탠자는 다음과 같습니다.
/protofs:
dev = /dev/protolv
vfs = jfs
log = /dev/loglv00
mount = false
다음 mkproto 명령을 수행하십시오.
mkproto /dev/protolv /tmp/ProtoFile
이 명령은 protolv 논리적 볼륨에 JFS를 작성합니다. JFS의 크기는 논리적 파티션 5이고, 프래그먼트 크기는 1024 바이트이며, nbpi 비율은 2048입니다. 파일시스템의 구조와 내용은 /tmp/ProtoFile 원형 파일에 지정된 것과 같습니다.
파일
/usr/sbin/mkproto mkproto 명령이 들어 있습니다.
관련 정보
mkfs 명령, fsck 명령, fsdb 명령, proto 명령.
filsys.h 파일 및 dir 파일