Linux コンピュータに接続されたデータ ストレージ デバイスを使用する前に、ファイル システムを作成する必要があります。
mkfs
やその他のユーティリティを使用して、あらゆる種類のファイル システムに対してそれを行う方法を学びます。その方法をご紹介します。
mkfs はファイル システムを作成します
mkfs
コマンドは
ファイル システムを作成します
。他のオペレーティング システムでは、ファイル システムの作成は
フォーマット
と呼ばれます。名前に関係なく、データを保存できるようにパーティションを準備するプロセスです。はい、パーティションにはファイルを保存する方法が必要です。ただし、これらのファイルの名前と場所を、ファイル作成タイムスタンプ、ファイル変更タイムスタンプ、ファイルのサイズなどのメタデータとともに保存するメカニズムも必要です。
mkfs
ファイルのメタデータの処理と保存に必要なフレームワークを構築したら、パーティションへのファイルの追加を開始できます。
構文は非常に簡単です。
mkfs
に、ファイル システムを作成するデバイス パーティションと、必要なファイル システムの種類を指定するだけです。表面上はそうなんです。舞台裏では少し異なります。これまで、ほとんどの Linux ディストリビューションでは、
mkfs
mke2fs
の
ラッパー
でした。
mkfs
コマンドは
mke2fs
コマンドを呼び出し、指定したオプションをそれに渡します。可哀そうな古い
mke2fs
すべての作業を実行します
が、何の栄光も得られません。
mkfs
の構文が更新され、古い形式は非推奨になりました。どちらの形式でも機能しますが、この記事では最新の形式を使用します。
ファイルシステムの選択
mkfs
を使用する最新の方法は、「mkfs」と入力することです。次に、作成するファイルシステムの名前を入力します。
mkfs
作成できるファイル システムを確認するには、「mkfs」と入力し、Tab キーを 2 回押します。 「mkfs」の後にスペースはありません。Tab キーを 2 回押すだけです。
利用可能なファイル システムのリストがターミナル ウィンドウに表示されます。スクリーンショットは Ubuntu 18.04 LTS のものです。他のディストリビューションでは、より多くの、またはより少ないオプションが提供される場合があります。これらを確認して、それぞれについて簡単に説明します。ジャーナリングについて簡単に説明した後。
ジャーナリングはファイル システムにおける重要な概念です。ファイル システムは、保留中のファイルの書き込みをジャーナルに記録します。各ファイルに書き込まれると、ジャーナルが更新され、保留中の書き込みレコードが更新されます。これにより、ファイル システムは、停電などの壊滅的な出来事によって発生した、部分的に書き込まれた壊れたファイルを修復できます。古いファイル システムの中には、ジャーナリングをサポートしていないものもあります。そうでないユーザーは、ジャーナルを更新する必要がないため、ディスクに書き込む頻度が低くなります。パフォーマンスは向上しますが、ファイルの書き込みが中断されるため、損傷を受ける可能性が高くなります。
- Ext2 : Linux の最初のファイル システムは MINIX ファイル システムでした。これは後に、Linux 専用に作成された最初のファイル システムである Ext に置き換えられました。 Ext2 は Ext の後継 です。 Ext2 はジャーナリング ファイル システムではありません。
- Ext3 : これは Ext2 の後継 であり、クラッシュや突然の電源喪失によるデータ破損からファイル システムを保護するジャーナリングを備えた Ext2 と考えることができます。
- Ext4 : Ext4 は、多くの Linux ディストリビューションの標準ファイル システムです。これは、堅牢で実績のある信頼できるファイル システムです。 ファイルの断片化を軽減する 機能があり、Ext3 よりも大きなドライブ、パーティション、ファイルを使用できます。
- BFS : これは ブート ファイル システム であり、ブート パーティション内のファイルを処理する 1 つのジョブのみのために設計されています。ブート ファイル システムを手動で作成することはほとんどありません。 Linux インストール プロセスがこれを行います。
- FAT : ファイル アロケーション テーブル ファイル システムは、コンピュータ業界の有力企業のコンソーシアムによってフロッピー ディスク用に設計されました。これは 1977 年に導入されました。この非ジャーナリング ファイル システムを使用する唯一の理由は、Linux 以外のオペレーティング システムとの互換性のためです。
- NTFS : New Technology File System は、 Windows NT で導入された Microsoft ジャーナリング ファイル システムです。 FATの後継です。このファイル システムを使用する唯一の理由は、Linux 以外のオペレーティング システムとの互換性のためです。
- MINIX : もともと Andrew S. Tanenbaum によって教育支援として作成された MINIX は、「ミニ Unix」オペレーティング システムです。現在では、自己修復機能と耐障害性を備えたオペレーティング システムを提供することを目的としています。 MINIX ファイル システムは 、Unix ファイル システムの簡易バージョン として設計されました。おそらく、Linux コンピュータでクロス開発を行っており、MINIX プラットフォームをターゲットにしている場合は、このファイル システムを使用する可能性があります。あるいは、他の理由で MINIX コンピュータとの互換性が必要になる場合もあります。 Linux コンピューター上でのこのファイル システムの使用例は私には思い浮かびませんが、利用可能です。
- VFAT : 仮想ファイル アロケーション テーブル (Virtual File Allocation Table ) は Windows 95 で導入され、ファイル名の 8 文字制限が削除されました。最大255文字までのファイル名が可能になりました。このファイル システムを使用する唯一の理由は、Linux 以外のオペレーティング システムとの互換性のためです。
- CRAMFS : Compressed ROM File System は、 組み込みシステムおよび Linux コンピュータのブート プロセスなどの特殊な読み取り専用用途向けに設計された読み取り専用ファイル システムです。 「実際の」ブート システムのマウントに備えてブートストラップ プロセスを起動できるように、小さな一時的なファイル システムを最初にロードするのが一般的です。
- MSDOS : Microsoft ディスク オペレーティング システム のファイル システム。 1981 年にリリースされた、これ以上ないほど基本的な基本的なファイル システムです。最初のバージョンにはディレクトリすらありませんでした。これはコンピューティングの歴史において重要な位置を占めていますが、レガシー システムとの互換性を除けば、今日それを使用する理由はほとんどありません。
ファイル システムを安全に試す方法
パーティション上にファイル システムを作成すると、そのパーティション上にすでに存在する可能性のあるデータが破壊されます。予備のハード ドライブ (または予備のコンピュータ) を使用することは、さまざまなファイル システムの作成と使用を実験するのに最適な方法です。しかし、もちろん、多くの人は予備のハードウェアを持っていなくて、実験されるのを待っています。
ただし、イメージ ファイルを作成し、その中にファイル システムを作成することはできます。マウントすると、通常のパーティションのように使用できます。予備のハードウェアを必要とせずに、ファイル システムを探索および実験できます。
dd
コマンドを使用して
イメージ ファイルを作成します
。
イメージ ファイルは、ソース データを取得してイメージに配置することによって作成されます。
dd
にソース データを取得する場所を指示する必要があります。 if (入力ファイル) オプションを使用して、入力データ ソースとして
/dev/zero
を使用するように
dd
に指示します。これはゼロのストリームになります。
of (出力ファイル) オプションを使用すると、画像ファイルの名前を指定できます。これを「.img」と呼びます。
画像ファイルのサイズは、画像ファイルに追加するブロックのサイズと数によって決まります。 bs (ブロック サイズ) オプションを使用して 1 MB のブロック サイズを要求し、count オプションを使用して 250 ブロックを要求しています。これにより、250 MB のファイル システムが得られます。このコマンドを発行するときは、ニーズと Linux コンピューター上の予備容量に合わせてブロック数を調整します。
dd if=/dev/zero of=~/.img bs=1M count=250
ファイルは私たちのために作成され、
dd
要求どおりに 250 個のブロックが作成されたことを報告します。
ls
を使用して画像ファイルを確認できます。
ls -hl
予想通り250MBなので心強いです。
ファイルシステムの作成
使用するファイル システムを選択しましょう。過去に戻って、この
mkfs
実装で作成できる Ext の最も古いバージョンである Ext2 を使用します。これは非ジャーナリング ファイル システムであるため、別の場所にバックアップを作成せずに、貴重なものを保存しないでください。
mkfs
コマンドの
mkfs.ext2
バリアントを使用し、イメージ ファイルをターゲットとして使用するように指示します。
mkfs.ext2 ~/.img
ファイル システムが作成され、ファイル システムの詳細が表示されます。
ハイライトされたテキストからわかるように、
mke2fs
登場します。
これで、このシナリオでハード ドライブの代わりとなるファイル システムのコンテナ (イメージ ファイル) ができました。そのコンテナ内にファイル システムを作成しました。次に、ファイル システムを使用できるようにマウントする必要があります。
これは一時的なセットアップなので、/mnt 内に「geek」という マウント ポイント を作成します。完了したら削除します。
sudo mkdir /mnt/geek
これで、イメージ ファイルをマウントできるようになりました。
sudo マウント ~/.img /mnt/geek
マウント ポイントへの読み取りおよび書き込みアクセスができるように、マウント ポイントの ファイル所有権 を変更する必要があります。
sudo chown dave:users /mnt/geek/
これで、新しいファイル システムを使用できるようになります。ファイル システムに変更して、いくつかのファイルをそこにコピーしましょう。
cd /mnt/オタク
cp ~/Documents/Code/*.? 。
これにより、拡張子が 1 文字のすべてのファイルが「~/Documents/Code」ディレクトリから新しいファイル システムにコピーされます。コピーされたことを確認してみましょう。
ls
ファイルがコピーされたので、ファイル システムが作成され、マウントされ、使用されました。あるいは私たちはそう思います。再確認しましょう。ホーム ディレクトリから、 ファイル システムをアンマウント します。 umount には「n」が 1 つだけあることに注意してください。
sudo umount /mnt/geek
ここで、/mnt/geek に戻ってファイルをチェックすると、ファイルはイメージ ファイル内にあり、アンマウントされているため、ファイルは見つからないはずです。
cd /mnt/オタク
ls
さらなる探求
これでプロセスは完了したので、別のファイル システムを試すのは簡単です。今回はMINIXファイルシステムを使用します。ホーム ディレクトリで、既存のイメージ ファイル内に新しいファイル システムを作成できます。
気をつけて!イメージ ファイル内のファイル システム上に重要なファイルがある場合は、新しいファイル システムを作成する前にイメージ ファイルをマウントし、それらのファイルを取得します。
mkfs.minix ~/.image
「確かに」という質問もなく、新しいファイル システムが古いファイル システムの上に作成されます。以前とまったく同じコマンドでイメージ ファイルをマウントできます。
sudo マウント ~/.img /mnt/geek
/mnt/geek にある新しいファイル システムに変更して、ファイルを作成できるかどうかを確認してみましょう。
タッチオタク.txt
ls -ahl geek.txt
そして、同じくらい簡単かつ迅速に、新しいファイル システムを作成してマウントし、それを使用できるようになりました。
マウントポイントの削除
すべて完了したら、「geek」マウント ポイントを削除できます。これを行うには、 rmdir を使用します。
cd /mnt
sudo rmdir オタク
火のジャグリング
Linux では、ほとんどのものと同様、実践することで学びます。一部のコマンドの問題は、それらが破壊的なものになる可能性があることです。ジレンマは、システムやデータを危険にさらさずにそれらを使用する方法を実践する方法です。
これで、コンピューターに手を加えずに、
mkfs
を使用してファイル システムを作成して試す簡単な方法が得られました。





