/sbin/mkfs.fs는 심볼릭 링크 파일임에도 불구하고 바이너리 파일처럼 동작합니다.

/sbin/mkfs.fs는 심볼릭 링크 파일임에도 불구하고 바이너리 파일처럼 동작합니다.

명령의 출력을 고려하십시오 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.ext4mke2fs명령에 대한 심볼릭 링크 입니다 . 이상할 것도 없고 다 괜찮습니다. 따라서 달리는 것은 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.

관련 정보