mkfs
の文字 「ファイルシステムの作成」の略です。このコマンドは通常、Linuxでストレージデバイスを管理するために使用されます。 mkfsは、ディスクを特定のファイルシステムにフォーマットするためのコマンドラインツールと考えることができます。
mkfs -t [fs type] [target device]
次の方法でmkfsコマンドを使用することもできます。
mkfs.[fs type] [target device]
このチュートリアルでは、ファイルシステムとは何かについて一般的に説明します。 mkfsコマンドを効果的に使用するための例も提供します。
mkfsコマンドはディスクとパーティションを処理するため、adminコマンドを実行するためのアクセス権を持つrootまたはsudoユーザーである必要があります。
mkfsは強力なツールです。ファイルシステムを変更した場合の潜在的な結果を理解することが重要です。間違ったデバイスノードを選択すると、そのデバイス上のすべてのデータが消去されます。このコマンドは自己責任で使用してください。警告されました
ファイルシステムとは何ですか?
ファイルシステム(fs)は、デバイス上のデータを管理する構造とロジックを指します。ファイルシステムは、データの保存方法と取得方法を制御します。
ファイルシステムには多くの種類があり、それぞれに長所と短所があります。最も一般的なタイプのファイルシステムは次のとおりです。
- FAT *
- NTFS
- ext *
- APFS
- HFS *
おそらく、これらのファイルシステムタイプの1つ以上に以前に遭遇したことがあります。タイプをそれぞれのオペレーティングシステムに関連付けることもできます。
一般的に、FAT / NTFSはWindows用に設計されており、ExtはLinuxシステムで使用され、APFS/HFSはmacOSファイルシステムです。これらはそれぞれ、ファイル構造のロジックに異なる方法で対処するため、問題が発生する可能性があります。
これが、ファイルシステムタイプを宣言する前、またはデバイスを「フォーマット」する前に、これについて考えることが重要である理由です。ユースケースはそれぞれ異なり、ニーズに最適なファイルシステムを決定するのはあなた次第です。
mkfsコマンドの例
mkfsコマンドの最も一般的な使用法のいくつかを紹介します。
実際のシステムでこれらのコマンドを盲目的に試さないでください。ターゲットデバイス/ディスクパーティションをフォーマットして、すべてのデータを消去します。
オプションのないmkfsは、ext2ファイルシステムを作成します
ターゲットデバイスのファイルシステムタイプを指定しない場合、デフォルトのext2ファイルシステムが使用されます。
sudo mkfs /dev/sdb1
mkfsでファイルタイプを指定
ext2を使用することは、あまり便利ではなく、お勧めできません。最近のほとんどのLinuxシステムは、ext4の使用を推奨しています。次の方法でファイルシステムを指定できます。
sudo mkfs -t ext4 /dev/sdb1
次のように使用することもできます:
sudo mkfs.ext4 /dev/sdb1
デバイスの不良ブロックをチェックすることもできますが、チェックには時間がかかることが多いことに注意してください。
sudo mkfs -c /dev/sdb1
ボーナスのヒント:デバイスのファイルシステムタイプを確認してください
mkfsコマンドを使用してフォーマットしたばかりのデバイスのファイルシステムのタイプを確認することをお勧めします。この目的でfileコマンドを使用できます。
sudo file -sL /device
表示できる出力の種類を示す例を次に示します。
[email protected]:~$ sudo file -s /dev/nvme0n1p2
/dev/nvme0n1p2: Linux rev 1.0 ext4 filesystem data, UUID=34daa4b7-a2c4-4983-b5cc-df9baa6a6543 (extents) (64bit) (large files) (huge files)
実際の使用例:mkfsコマンドを使用してファイルを作成するUSBデバイス上のシステム
いくつかの背景情報が得られたので、mkfsの使用を開始できます。
私が考えることができる最も実用的なデモンストレーションは、USBフラッシュストレージドライブのフォーマットです。これらの同じ原則は、選択したすべてのタイプのストレージに適用されます。
まず、デバイスを見つける必要があります。使用できる方法の1つは、sudo fdisk -l
です。 。これにより、現在マウントされているすべてのディスクノードが一覧表示されます。
[email protected]:~$ sudo fdisk -l
Disk /dev/sda: 25 GiB, 26843545600 bytes, 52428800 sectors
Disk model: VBOX HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x3c62c49c
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 4096 1023998 1019903 498M 83 Linux
/dev/sda2 1024000 44036094 43012095 20.5G 83 Linux
/dev/sda3 44036096 52424702 8388607 4G 82 Linux swap / Solaris
Disk /dev/sdb: 28.93 GiB, 31040995328 bytes, 60626944 sectors
Disk model: Patriot Memory
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 91A34D6F-E67B-E54D-B19C-5CC828DAAB9A
Device Start End Sectors Size Type
/dev/sdb1 2048 60626910 60624863 28.9G Linux filesystem
出力は明らかに異なります。 目的のドライブを特定するときは十分に注意してください 。よくわからない場合は、ディスクを取り外してfdisk -l
を実行してください。 もう一度コマンドします。正しいデバイスをお持ちの場合、切断されている間はリストに表示されません。
私が使用しているデバイスはPatriotMemoryUSBで、/dev/sdb
にあります。 。正しいディスクを特定することに加えて、目的のパーティションのfsを変更していることを確認する必要があります。
fdiskツールを使用して、既存のデータを削除し、新しいパーティションテーブルを作成しました。その間、書き込み用の新しいパーティションを作成しました。そのパーティションがターゲットになります:/dev/sdb1
。
ファイルシステムを変更する前に、umount
を使用してファイルシステムをアンマウントする必要があります。 コマンド。
[email protected]:~$ sudo umount /dev/sdb1
ターゲットを確認し、ドライブをアンマウントしたので、ファイルシステムの作成に進むことができます。
-v
を追加しました 実行時に詳細情報を表示するには、ここで詳細オプションを選択してください。
[email protected]:~$ sudo mkfs.ext4 /dev/sdb1 -v
mke2fs 1.45.5 (07-Jan-2020)
fs_types for mke2fs.conf resolution: 'ext4'
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1896832 inodes, 7578107 blocks
378905 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2155872256
232 block groups
32768 blocks per group, 32768 fragments per group
8176 inodes per group
Filesystem UUID: 73882769-7599-4c79-a00b-ef317ccd921d
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
このプロセスには時間がかかる場合がありますが、ターゲットが2 TBを超えない限り、20分以内に完了する必要があります。
プログラムが最後の項目にぶら下がっているという問題がいくつかありました。残念ながら、進行状況インジケーターはなく、エラーもスローされませんでした。
まず、使用したデバイスのファイルシステムを確認します。それはあなたが欲しかったものですか?
sudo file -sL /dev/sdb1
デバイスを使用するシステムでデバイスが認識されていることを確認することが重要です。 testというフォルダとその中にtest.txtというファイルを作成しました。
時間を節約するために、ここにコマンドをコピーして貼り付けることができます。
mkdir test && cd test
touch test.txt
echo "THIS IS ONLY A TEST" > test.txt
cat test.txt
すべてが機能した場合は、ドライブを目的のシステムにマウントしてファイルにアクセスできるはずです。システム上のファイルにアクセスできない場合は、互換性の問題がある可能性があります。
このmkfs
のクイックガイドを見つけていただければ幸いです。 便利なコマンド。このチュートリアルが気に入ったら、ソーシャルメディアで共有してください。
コメントや質問がある場合は、以下に残してください。取り上げてほしいトピックについての提案があれば、それらもお気軽に残してください。