/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

関連情報