ディクスを管理するコマンド
ディクスを管理するコマンド
ハードディスクを管理するコマンドとして、ファイルシステムをチェックして修復する fsck コマンドや、ファイルやディレクトリが使っているディスク容量を調べる du コマンドがある。
ファイルシステムのチェックと修復
コンピュータが異常終了するなど正常にシャットダウンが行われないと、ファイルシステムのファイル管理情報とハードディスクに書き込まれたデータとの間で辻褄が合わなくなることがある。ファイルシステムが不整合に陥った場合、 fsck コマンドを使って整合性をチェックし、修復を行う必要がある、 fsck コマンドは異常終了した後のシステム起動時に自動的に実行される。
$ fsck デバイス名 ファイルシステムのチェックと修正を行う。
fsck とジャーナリング機能
ジャーナリング機能を持つext3 ファイルシステムはジャーナル情報があるので、修復が素早く行える。一方で ext2 ファイルシステムはジャーナル情報がないので、全ての管理情報が正しいかチェックする必要があるので修復にとても時間がかかる。
マウントされているハードディスクをチェックして、修復できるが、修復中にファイルシステムが書き換えられると、更に問題が増える可能性がある。修復をする時は、チェックするパーティションがアンマウントされている状態での fsck コマンドの実行を勧める。
ディレクトリ使用量の確認
df コマンドでハードディスクなどの全体の使用量を確認できた。細かいディレクトリの使用量を調べるには du コマンドを実行する。
$ du [ ディレクトリ ] ディレクトリの使用量を調べる。 $ du [ ファイル ] ファイルのサイズを調べる。
オプション
-s 指定ファイルや指定ディレクトリの総計を表示する。
ハードリンクとシンボリックリンク
ハードリンクとシンボリックリンク
リンク機能は、ファイルをコピーしたり、移動できたりせずに別のディレクトリにあるように扱うことができる機能である。例えば、コマンドの引数として、ファイルやディレクトリを指定する場合、パス指定が長くて、複雑になると入力を間違えることがよくある。リンク機能を使えば、よく使うファイルを自分のホームディレクトリに置いてあるように扱うことができる。
リンクには、ハードリンクとシンボリックリンクの2種類がある。
ハードリンク
ハードリンクはファイルの実体を直接指し示して共有する。ハードリンを削除しても、元ファイルは削除されない。ハードリンクはi ノード番号を共有することで実現しているので、別ファイルシステム ( 別パーティション ) に作成することができない。
シンボリックリンク
シンボリックリンクは、元ファイルが保管されている位置 ( パス ) を示す擬似的なファイルを作る。シンボリックリンクを消しても元ファイルに影響はない。元ファイルを消すとシンボリックリンクからのアクセスはエラーとなる。シンボリックリンクは別ファイルシステムの間で作成することができる。Windowsではショートカット と呼ばれるファイルと考え方が同じである。
$ ln 元ファイル名 リンク名
オプション
-s シンボリックリンクを作成する -s オプションを付けない場合はハードリンクを作成する。
ファイルは必ず i ノード情報にリンクしており、ファイルを作るとハードリンクが1つできることと同じである。ファイルのハードリンクを作ると i ノードの領域にあるリンク数が1つ増え、ハードリンクを削除すると、リンク数が1つ減る。
ファイルを消して、リンク数が0になると、ファイルのデータがファイルシステムから完全に削除される。
iノード
i ノード
ext3 ( ext2 ) ファイルシステムは、ファイルやディレクトリに対し、i ノード番号というユニークな番号を割り振って管理している。ファイルシステムを作成したときに、 i ノード領域という場所が確保される。 i ノード領域には、ファイルがディスク上にある位置やアクセス権限などの情報が保持されている。
ファイルシステムに作られるファイル数は、 i ノード領域の大きさに左右されることになる。もし、ファイルが多く作られて i ノード領域が足りなくなると、そのファイルシステムにデータを書き込める領域があっても、新規のファイルが作成できなくなる。
i ノード情報の確認
ext3 ファイルシステムの i ノード領域の使用状況を確認するには、 df コマンドに -i オプションを付けて実行する。 i ノード情報として、全体の数、使用している数、残りの数、使用量 (%) が表示される。
$ df -i ファイルシステムの情報を表示する。
オプション
-i i ノード情報を表示する
i ノード番号の確認
ファイルに割り振られている i ノード番号を確認するには、 ls コマンドに -i オプションを付けて実行する。
CD/DVD/USB メモリ ( リムーバブルメディア ) の利用
CD/DVD/USB メモリ ( リムーバブルメディア ) の利用
電源を入れたまま取り外したり、装着してメディアを取り替えられるリムーバブルな外部記憶装置として、 CD、DVD ドライブや USB メモリがある。
リムーバブルメディアを使用する場合、手動でマウントする必要がある。( 一部のディストリビューションでは、自動的にマウントされる場合がある。 ) リムーバブルメディアのマウントポイントとして、/mnt ディレクトリや /medea ディレクトリの下に作られたディレクトリが使われる。
CD/DVD のマウント
CD/DVD を Linux で使用するには、 mount コマンドでマウントを行う。さらに、オプションとして、タイプに CD の企画である iso9660 を、モードに読み込み専用の ro ( Reacd Only ) を指定する。
CD/DVD のアンマウントと取り出し
マウントした CD/DVD を取り出すには umount コマンドでアンマウントを行う。
アンマウントできない場合
マウントポイントが使用中であったり参照中の場合はアンマウントすることはできない。具体的には、マウントポイント以下がカレントディクトリである場合や、リムーバブルメディアに含まれるファイルを参照している場合などである。ディレクトリを使用していないかを確認し、カレントディレクトリを移動したり、処理を終了してからアンマウントする。特に複数の端末ウィンドウを開いている場合は要注意である。
スワップ領域の作成
スワップ領域の作成
Linux のカーネルと呼ばれる根幹のプログラムは、ハードディスクからプログラムやデータをメモリ領域へ読み込んで実行する。プログラムやデータを新たに読み込むための空きメモリ領域がなくなると、Linux のカーネルは今利用していないメモリ上のプログラムやデータをスワップ領域へ一時的に退避する。
スワップパーティションとは、Linux のカーネルシステムがメモリの代わりとして一時的に使うハードディスクのパーティション領域である。
ハードディスクのパーティションをスワップ領域として使うのであれば、メモリサイズに対応したパーティションを確保し、スワップファイルシステムをパーティションに作成する必要がある。
スワップファイルシステムの作成
スワップするためのパーティション確保と、ファイスシステムの作成は、インストールするときや新しくハードディスクを増設する時に実行する。スワップ領域 ( スワップのパーティション ) を作るには mkswap コマンドを使う。
$ mkswap デバイスファイル スワップファイルシステムを作る
オプション
-c 不良な部分を探して、利用しない デバイスファイル ファイルシステムをアクセスするためのデバイスファイル
スワップ領域作成と利用
スワップ領域は作成した後に swapon コマンドを実行すると有効化できるようになる。
$ swapon [ デバイスファイル ]
オプション
-s 現在利用しているスワップ領域を表示
利用中のスワップ領域は swapoff コマンドで無効化できる。
$ swapoff [ デバイスファイル ]
オプション
-v 指定したスワップを無効化 -a 全てのスワップを無効化
マウント
マウント
ハードディスクはパーティション分割してファイルシステムを作ってからマウントすると読み書きできる。CD-ROM や DVD-ROM などリムーバブルメディアもマウントすると読めるようになる。
マウントポイント
ハードディスクや CD-ROM などを利用する場合は、存在しているディレクトリにマウントする必要があり、マウントするために利用するディレクトリをマウントポイントと呼ぶ。 / として利用するファイルシステムは / にマウントされており、後から利用するファイルシステムも。必ずどこかのディレクトリのマウントして初めて利用できる。
マウント ( mount コマンド )
ハードディスクやリムーバブルメディアなどをマウントポイントにマウントするために mount コマンドを使う。
$ mount -t タイプ -o オプション デバイスファイル マウントポイント ハードディスクやリムーバブルメディアをマウントする。
オプション
-t タイプ ファイルシステムの ext3 や Windows のmsmod、 CD と DVD のiso9660など -o オプション 読み書きの rw や読み取り専用の ro など デバイスファイル ファイルシステムをアクセスするためのデバイスファイル マウントポイント マウントするディレクトリ
アンマウント
マウントされたハードディスクやリムーバブルメディアを利用しなくなると、アンマウントする。アンマウントするために umount コマンドを利用する。
umount マウントポイント ハードディスクやリムーバブルメディアをアンマウントする。
ファイルシステム
ファイルシステム
ファイルシステムとは、ディレクトリやファイルの情報うあデータをディスクのどこに保存してあるのか管理するためのシステム ( 仕組み ) である。ファイルシステムディレクトリやファイルのファイル名やファイルの作成時間、ファイルの所有権限などの情報を管理している。また、ディスクのデータが書いてある場所と書いていない場所なども管理している。
ファイルシステムはオペレーションシステムによって、利用されるファイルシステムが異なる。Linuxの場合はそれぞれのディストリビューションにより採用するファイルシステムは異なるが、多くの場合はext3 もしくは ex4 が利用されている。windowsの場合はバージョンが異なるものの、多くを管理できるNTFSが利用されていることがほとんどである。CD や DVD、BD では ISO 9660 という規格のファイルシステムが使われる。
Linux で利用できるファイルシステムの一例
FS名 | 内容 | 最大サイズ | 最大ファイルサイズ |
---|---|---|---|
ext2 | Berkeley Fast File System を参考にした 16 ビット構造 | 16TB | 2TB |
ext3 | exr2 にジャーナル機能付加と機能拡張 | 2~32TB | 16GB~2TB |
ext4 | ジャーナリングファイルシステム。ファイルの断片化防止など、様々な機能拡張によりパフォーマンスが向上 | 1EB | 16TB |
ReiserFB | 小さなファイルの扱いに向いたジャーナリングファイルシステム | 8TB | 16TB |
XFS | SGI社が提供したジャーナリングファイルシステム | 8EB | 8EB |
JFS | IBM社が提供したジャーナリングファイルシステム | 512TB | 4PB~8EB |
Windowsが利用できるファイルシステムの一例
FS名 | 内容 | 最大サイズ | 最大ファイルサイズ |
---|---|---|---|
FAT16 | 2GB( NT:4GB ) | 2GB( NT:4GB ) | |
FTA32 | 2TB( 2KGセクタ:8GB ) | 4GB | |
NTFS | 256TB | 16TB ( 16EB ) | |
exFAT | 8ZB ( 512Bセクタ時 ) | 16TB ( 16EB ) |
CD DVD のファイルシステム
FS名 | 内容 |
---|---|
ISO9660 | ISO ( 国際標準化機構 ) で標準化されたファイルシステム、joliet や RockRidge や Apple の規格拡張が存在、CD や DVD に利用される |
ジャーナリング
ジャーナリングとは、ファイルシステムに対する書き換え処理のコマンドをファイルシステムに逐一記録する機能である。ジャーナリング機能はコンピュータが急停止するなどの障害時に有効となる。コンピュータが急停止し、ファイルのデータがファイルシステムに書き込み途中である場合、処理されていないコマンドを対処する。
ファイルの書き込み途中の場合、書き込み終わっていないデータが無くて書き込みが終われないので、途中までディスクに保存されているファイルの管理情報を消し、書き込み途中のファイルが作られなかった状態にする。
ext3 ファイルシステム以降のファイルシステムの多くはこのジャーナリング機能を取り入れている。 ext3 ファイルシステムは、ext2ファイルシステムにジャーナリング機能に +α が追加されたファイルシステムである。 ext3 の他に ReiserFS、XFS、JFS もジャーナリング機能をもったファイルシステムである。
マウント状態の表示
df コマンドで現在マウントされているファイルシステムのリスト表示できる。
ファイルシステムの作成
ハードディスクを利用するためには、パーティションに分割したあとファイルシステムを作成する。ファイルシステムの作成にはmkfs コマンドを使用する。
$ mkfs オプション ファイルシステムを作成する
オプション
-t 作成するファイルシステムの種類を指定する -c ハードディスクの壊れている箇所を検出して、利用しない
ラベル
ラベルとは、ハードディスクなどのパーティションを認識するための名前である。基本パーティションや論理パーティションにファイルシステムを作るときにラベルを指定するか、または e2label コマンドでラベルを付けられる。
$ e2label デバイス [ ラベル ] パーティションのラベルを表示する パーティションのラベルを付ける