명령의 출력을 고려하십시오 ls
.
$ ls -l /sbin/mkfs.ext4
lrwxrwxrwx 1 root root 6 Aug 4 00:10 /sbin/mkfs.ext4 -> mke2fs
$ type mkfs.ext4
mkfs.ext4 is hashed (/sbin/mkfs.ext4)
mkfs.ext4
mke2fs
명령에 대한 심볼릭 링크 입니다 . 이상할 것도 없고 다 괜찮습니다. 따라서 달리는 것은 mkfs.ext4
달리는 것과 같습니다 mke2fs
. 다음 명령의 출력에 중괄호를 추가했습니다.
$ mke2fs
Usage: {mke2fs} [-c|-l filename] [-b block-size] [-C cluster-size]
--sinp--
$ mkfs.ext4
Usage: {mkfs.ext4} [-c|-l filename] [-b block-size] [-C cluster-size]
--sinp--
분명히 mke2fs
파일 이름을 사용하여 옵션 목록을 생성하고 사용자 정의할 적절한 파일 시스템 유형을 결정하십시오.
$ ln -s /sbin/mke2fs mkmk
$ ls -l mkmk
lrwxrwxrwx 1 direprobs direprobs 12 Aug 8 14:25 mkmk -> /sbin/mke2fs
$ ./mkmk
Usage: mkmk [-c|-l filename] [-b block-size] [-C cluster-size]
--sinp--
mkmk
나는 를 사용하여 만든 심볼릭 링크를 사용하여 ext2 파일 시스템을 만들었습니다 ln
. 그것은 무엇을 mkmk
의미 mke2fs
합니까?
mke2fs
생성할 파일 시스템 유형을 결정하기 위해 실행하는 파일 이름을 어떻게 사용할 수 있습니까 ?
답변1
parse_fs_type
의 기능을 참조하세요mke2fs.c
:
- 파일 시스템 유형이 명시적으로 지정된 경우( 를 사용하여
-t
) 해당 유형이 사용됩니다. - 도구가 Hurd에서 실행 중인 경우 "ext2"를 사용하십시오.
- 프로그램 이름이 이면
mke3fs
"ext3"을 사용하십시오. - 프로그램 이름이 이면
mke4fs
"ext4"를 사용하십시오. - 프로그램 이름이
mkfs.
; 로 시작하는 경우 접미사를 사용하십시오. /etc/mke2fs.conf
그렇지 않으면 ( 있는 경우) 에 정의된 기본값을 사용합니다 .- 그렇지 않으면 "ext2"가 사용됩니다. 단, 기본적으로 로깅이 활성화되어 있지 않은 경우에는 "ext3"이 사용됩니다.
결과 텍스트 문자열은 파일 시스템 정의를 조회하는 데 사용됩니다 /etc/mke2fs.conf
(내부적으로 처리되는 "ext2" 제외).
따라서 mkmk
결국 ext2 파일 시스템 유형을 사용하게 됩니다.
답변2
- 이
-t
옵션은 무조건 파일 시스템 유형을 설정하며, 이 옵션을 사용하면 얻을 수 있는 유일한 효과는 다음과 같습니다.어느프로그램 이름은 프로그램이 실행될 때 진단 메시지에 인쇄되는 프로그램 이름입니다. - Hurd에서는 프로그램이 어떤 이름으로 호출되든 ext2가 파일 시스템 유형으로 사용되며 이는 다시 진단 메시지에만 영향을 미칩니다.
- 그렇지 않으면 프로세스의 0번째 매개변수의 기본 이름이 확인됩니다.
mke3fs
기본 이름으로 호출되면 마치 지정된ext3
것처럼 로그를 포함하는 파일 시스템이 생성됩니다 .-j
- 기본 이름으로 호출하면 파일 시스템이
mke4fs
생성됩니다ext4
. - 기본 이름이 5자로 시작하면
mkfs.
무조건 나머지 문자를 파일 시스템 유형으로 사용합니다. 기본 이름도 이면 지정된 것처럼mkfs.ext3
로그를 생성합니다 .-j
- 그렇지 않으면 다른 이름의 경우 일반 old처럼 작동하고
mke2fs
구성 파일에서 파일 시스템 유형을 가져온 다음 ext2에서 ext3(-j
해당 옵션이 제공되는 경우)로 변경됩니다.
mke2fs
이에 대한 대부분은 및 설명서 에서 찾을 수 있습니다 mke2fs.conf
. 설명 보기파일 시스템 유형후자와설명하다전자의 일부. 매뉴얼에서 유일하게 누락된 부분은 인식할 수 없는 이름이 실제로 mke2fs
.