GNU/Linux >> Linux の 問題 >  >> Linux

Linuxでmkfsコマンドを使用して、ディスクまたはパーティション上のファイルシステムをフォーマットする

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のクイックガイドを見つけていただければ幸いです。 便利なコマンド。このチュートリアルが気に入ったら、ソーシャルメディアで共有してください。

コメントや質問がある場合は、以下に残してください。取り上げてほしいトピックについての提案があれば、それらもお気軽に残してください。


Linux
  1. Linuxでprocファイルシステムを使用してトラブルシューティングする

  2. Linuxコマンドラインで力を使用する

  3. コマンドラインを使用してLinuxでtar.gzファイルを抽出する方法

  1. Linuxでのファイルコマンドの基本的な例

  2. Linuxのコマンドラインを使用してファイルを作成する

  3. Linux でコマンドラインを使用して任意のファイルをダウンロードするための 4 つのツール

  1. Linux での mkfs.ext4 コマンドの例

  2. inode 番号を使用して Linux でファイルを削除する

  3. fdiskで作成したファイルシステムとmkfsで作成したファイルシステムの違い - linux