English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Linux ディスク管理

Linuxディスク管理の良さは、システム全体のパフォーマンスに直接影響します。

Linuxディスク管理でよく使われる3つのコマンドはdf、du、fdiskです。

  • df:ファイルシステムの全体のディスク使用量を表示

  • du:ディスク空間使用量を確認

  • fdisk:ディスクパーティション用

df

dfコマンドのパラメータ機能:ファイルシステムのディスク空間使用状況を確認します。このコマンドを使って、ハードディスクがどれだけ使用されているか、どれだけの空きスペースがあるかなどの情報を取得できます。

语法:

df [-ahikHTm] [ディレクトリまたはファイル名]

オプションと引数:

  • -a  :すべてのファイルシステムを表示し、システム固有のものも含めます /procなどのファイルシステム;

  • -k  :各ファイルシステムの容量をKBytesで表示

  • -m  :各ファイルシステムの容量をMBytesで表示

  • -h  :GBytes、MBytes、KBytesなどの読みやすい形式で自分で表示します;

  • -H  :Mに置き換えます=1000KをMに置き換えます=1024Kの進位方法;

  • -T  :ファイルシステムのタイプを表示し、partitionのfilesystem名も表示します(例えばext3)も表示;

  • -i  :ハードディスク容量ではなくinodeの数で表示

例 1

システム内のすべてのファイルシステムを挙げます!

[root@www ~]# df
Filesystem      1K-blocks      Used Available Use% Mounted on
/dev/hdc2         9920624   3823112   5585444  41% /
/dev/hdc3         4956316    141376   4559108   4% /home
/dev/hdc1          101086     11126     84741  12% /boot
tmpfs              371332         0    371332   0% /dev/shm

Linuxでは、dfにオプションが指定されていない場合、デフォルトでシステム内のすべての (特別なメモリ内のファイルシステムおよびswapを含まない)すべて 1 Kbytesの容量で挙げます!

例 2

容量結果を読みやすい容量形式で表示します

[root@www ~]# df -h
Filesystem           Size  Used Avail Use% Mounted on
/dev/hdc2             9.5G  3.7G  5.4G  41% /
/dev/hdc3             4.8G  139M  4.4G   4% /home
/dev/hdc1              99M   11M   83M  12% /boot
tmpfs                 363M     0  363M   0% /dev/shm

例 3

システム内のすべての特別なファイル形式および名前を挙げます

[root@www ~]# df -aT
Filesystem    Type 1K-blocks    Used Available Use% Mounted on
/dev/hdc2     ext3   9920624 3823112   5585444  41% /
proc          proc         0       0         0   -  /proc
sysfs        sysfs         0       0         0   -  /sys
devpts      devpts         0       0         0   -  /dev/pts
/dev/hdc3     ext3   4956316  141376   4559108   4% /home
/dev/hdc1     ext3    101086   11126     84741  12% /boot
tmpfs        tmpfs    371332       0    371332   0% /dev/shm
none   binfmt_misc         0       0         0   -  /proc/sys/fs/binfmt_misc
sunrpc  rpc_pipefs         0       0         0   -  /var/lib/nfs/rpc_pipefs

例 4

以下に、 /etcの下の利用可能なディスク容量を読みやすい容量フォーマットで表示

[root@www ~]# df -h /etc
Filesystem           Size  Used Avail Use% Mounted on
/dev/hdc2             9.5G  3.7G  5.4G  41% /

du

Linuxのduコマンドも使用空間を確認するものでありますが、dfコマンドとは異なり、Linuxのduコマンドはファイルとディレクトリのディスク使用空間を確認するものであり、dfコマンドと少し異なります。ここでLinuxのduコマンドについて説明します。

语法:

du [-ahskm] ファイルまたはディレクトリ名

オプションと引数:

  • -a  :すべてのファイルとディレクトリの容量を表示します。なぜなら、デフォルトでは、ディレクトリの下のファイルの量のみを統計するだけです。

  • -h  :人々が読みやすい容量フォーマット(G/M) 表示;

  • -s  :合計のみを表示し、各ディレクトリの占める容量を表示しません;

  • -S  :サブディレクトリの合計を含まない、および -s  :少し異なります。

  • -k  :容量をKBytesで表示;

  • -m  :容量をMBytesで表示;

例 1

現在のディレクトリのすべてのフォルダー(隠しフォルダーを含む)の容量を表示します:

[root@www ~]# du
8       ./test4     <==各ディレクトリが表示されます
8       ./test2
....中間省略....
12      ./.gconfd   <==隠しファイルが含まれるディレクトリ
220     .           <==このディレクトリ(.)が占める合計量

duコマンドにオプションを付けずに直接入力すると、duは現在のディレクトリのファイルとディレクトリが占めるハードディスクの空間を分析します。

例 2

ファイルの容量も表示してください

[root@www ~]# du -a
12      ./install.log.syslog   <==ファイルリストがあります
8       ./.bash_logout
8       ./test4
8       ./test2
....中間省略....
12      ./.gconfd
220     .

例 3

ルートディレクトリの下にある各ディレクトリの容量を確認します

[root@www ~]# du -sm /*
7       /bin
6       /boot
.....省略.....
0       /proc
.....省略.....
1       /tmp
3859    /usr<==システム初期の最大サイズは彼です!
77      /var

ワイルドカード * 各ディレクトリを表すために使用されます。

dfとは異なり、duコマンドは実際にはファイルシステム内に直接すべてのファイルデータを検索します。

fdisk

fdiskはLinuxのディスクパーティションテーブル操作ツールです。

语法:

fdisk[-l]デバイス名

オプションと引数:

  • -l:次に続くデバイスのすべてのパーティション内容を出力します。fdiskのみであれば、 -l時、      それでは、システム内で検索可能なすべてのデバイスのパーティションが表示されます。

例 1

すべてのパーティション情報を出力します

[root@AY120919111755c246621 tmp]# fdisk -l
ディスク /dev/xvda: 21.5 GB, 21474836480バイト
255 ヘッド, 63 セクタ/トラック, 2610 シリンダー
ユニッツ = セクタの 16065 * 512 = 8225280バイト
セクタサイズ(論理的):/物理的: 512 バイト / 512 バイト
I/Oサイズ(最小)/最適化: 512 バイト / 512 バイト
ディスク識別子:0x00000000
    デバイス ブート スタート エンド ブロック数 ID システム
/dev/xvda1   *           1        2550    20480000   83  Linux
/dev/xvda2            2550        2611      490496   82  Linux swap / Solaris
ディスク /dev/xvdb: 21.5 GB, 21474836480バイト
255 ヘッド, 63 セクタ/トラック, 2610 シリンダー
ユニッツ = セクタの 16065 * 512 = 8225280バイト
セクタサイズ(論理的):/物理的: 512 バイト / 512 バイト
I/Oサイズ(最小)/最適化: 512 バイト / 512 バイト
ディスク識別子:0x56f40944
    デバイス ブート スタート エンド ブロック数 ID システム
/dev/xvdb2               1        2610    20964793+  83  Linux

例 2

システム内のルートディレクトリが所在するディスクを見つけ、そのハードディスク内の関連情報を確認してください

[root@www ~]# df /            <==注意:ポイントはディスクファイル名を見つけることです
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/hdc2              9920624   3823168   5585388  41% /
[root@www ~]# fdisk /dev/hdc<==数字は付けないでください、注意してください!
このディスクのシリンダー数は設定されています: 5005.
それで問題はありませんが、これは大きいです: 1024,
特定の設定では、以下の問題を引き起こす可能性があります:
1) ブート時動作するソフトウェア(例:古いバージョンのLILO)
2) 他のOSからのブートおよびパーティションソフトウェア
   (例:DOS FDISK、OS)/2 FDISK)
コマンド(ヘルプ用にm):<==あなたの入力を待っています!

mを入力すると、以下の命令紹介が表示されます

コマンド(ヘルプ用にm):m<==mを入力すると、以下の命令紹介が表示されます
コマンド アクション
   a ブート可能フラグの切り替え
   b bsdディスクラベルの編集
   c DOS互換フラグの切り替え
   d パーティションの削除 <==partitionを削除
   l 既知のパーティションタイプのリスト
   m このメニューを印刷
   n 新しいパーティションの追加 <==新しいpartitionを追加
   o 新しい空のDOSパーティションテーブルの作成
   p 分割テーブルを印刷 <==画面に分割テーブルを表示
   q 変更を保存せずに終了 <==fdiskプログラムから保存せずに退出
   s 新しい空のSunディスクラベルの作成
   t パーティションのシステムIDの変更
   u ディスプレイの変更/ユニット
   v 分割テーブルの確認
   w 分割テーブルに書き込み、終了 <==新しい操作を分割テーブルに書き込みます
   x 追加機能(エキスパート専用)

fdiskを終了する際はqを押すと、すべての操作は有効化されません。逆に、wを押すと操作が有効化されます。

コマンド(ヘルプはm): p <==ここでは現在のディスクの状態を出力できます
ディスク /dev/hdc: 41.1 GB, 41174138880 バイト <==このディスクのファイル名と容量
255 ヘッド, 63 セクタ/トラック, 5005 セクタ <==ヘッド、セクタとセクタのサイズ
ユニッツ = セクタの 16065 * 512 = 8225280 バイト <==各セクタのサイズ
   デバイス ブート スタート エンド ブロック数 ID システム
/dev/hdc1   *           1          13      104391   83  Linux
/dev/hdc2              14        1288    10241437+  83  Linux
/dev/hdc3            1289        1925     5116702+  83  Linux
/dev/hdc4            1926        5005    24740100    5  拡張
/dev/hdc5            1926        2052     1020096   82  Linux swap / Solaris
# デバイスファイル名 スタートセクタ エンドセクタ  1K容量の大きさ ディスクパーティションスロット内のシステム
コマンド(ヘルプ用m): q

データを保存せずに退出したい場合は、qを押してください!wを無造作に押さないでください!

pを使うと、現在のディスクの分割表情報を一覧表示できます。この情報の上半分は全体のディスクの状態を表示しています。

ディスクフォーマット

ディスク分割が完了したら、次にファイルシステムのフォーマットを行います。フォーマットのコマンドは非常に単純で、mkfs(make filesystem)コマンドを使用します。

语法:

mkfs [-t ファイルシステムフォーマット] デバイスファイル名

オプションと引数:

  • -t  :ファイルシステムフォーマットを接続できます、例えば ext3, ext2, vfatなど(システムがサポートしている場合のみ有効)

例 1

mkfsがサポートするファイルフォーマットを確認

[root@www ~]# mkfs[tab][tab]
mkfs         mkfs.cramfs  mkfs.ext2    mkfs.ext3    mkfs.msdos mkfs.vfat

二つの[tab]を押すと、mkfsがサポートするファイルフォーマットが上のように表示されます。

例 2

パーティション /dev/hdc6(自分で指定できるパーティション) extとしてフォーマットします3 ファイルシステム:

[root@www ~]# mkfs -テキスト3 /dev/hdc6
mke2fs 1.39 (29-5月-2006)
ファイルシステムラベル=                <==ここではパーティションの名前(label)を指しています
OSタイプ: Linux
ブロックサイズ=4096 (log=2)          <==ブロックの大きさは以下のように設定されています 4K 
フラグメントサイズ=4096 (log=2)
251392 inode, 502023 ブロック     <==この設定で決定されるinode/ブロック数
25101 ブロック (5.00%) スーパーユーザーに予約されています
最初のデータブロック=0
最大ファイルシステムブロック=515899392
16 ブロックグループ
32768 グループあたりのブロック, 32768 グループあたりのフラグメント
15712 グループあたりのインodes
スーパーブロックのバックアップはブロックに保存されています:
        32768, 98304, 163840, 229376, 294912
インodesテーブルの書き込み: 完了
ジャーナルの作成 (8192 ブロック): 完了 <==ログ記録あり
スーパーブロックとファイルシステムアカウント情報の書き込み: 完了
このファイルシステムは自動的に確認されます 34 マウントまたは
180日、最初に来るものを使用します。 Use tune2fs -cまたは -iをオーバーライドします。
# これで必要なExt3 ファイルシステムです!シンプルで明確です!

ディスク検査

fsck(file system check)は、不一致なファイルシステムを確認およびメンテナンスするために使用されます。

システムが電源を切ったり、ディスクに問題が発生した場合、fsckコマンドを使用してファイルシステムを確認できます。

语法:

fsck [-t ファイルシステム] [-ACay] デバイス名

オプションと引数:

  • -t : 给定档案系统的型式,若在 /etc/fstabに既に定義されているまたはkernelがサポートしている場合は、このパラメータを追加する必要はありません

  • -s : fsckのコマンドを順次実行してチェックします

  • -A :/etc/fstabにすべての列出的なパーティション(partition)をチェックします

  • -C : 完全なチェック進捗を表示します

  • -d : eをプリントアウトします2fsckのデバッグ結果

  • -p : ともに -A 条件時、複数のfsckのチェックが同時に実行されます

  • -R : ともに -A 条件時、省略 / チェックしない

  • -V : 詳細表示モード

  • -a : 検查にエラーがある場合、自動的に修復します。

  • -r : 検查にエラーがある場合、ユーザーが修復するかどうかを答えます。

  • -y : オプション指定で各ファイルの確認を自動的にyesに設定します。正常でないものが不明な場合、# fsckを実行できます。 -y 全部チェックおよび修復。

例 1

fsckコマンドがどのファイルシステムをサポートしているかを確認する方法を見てください:

[root@www ~]# fsck[タブ][タブ]
fsck fsck.cramfs fsck.ext2    fsck.ext3    fsck.msdos fsck.vfat

例 2

強制チェック /dev/hdc6 パーティション:

[root@www ~]# fsck -C -f -テキスト3 /dev/hdc6 
fsck 1.39 (29-5月-2006)
e2fsck 1.39 (29-5月-2006)
パス 1インodes、ブロック、サイズを確認しています
パス 2ディレクトリ構造を確認しています
パス 3ディレクトリ接続を確認しています
パス 4参照カウントを確認しています
パス 5グループサマリー情報を確認しています
vbird_logical: 11/251968 files (9.1% non-contiguous), 36926/1004046 blocks

もし -f オプションが指定されない場合、このファイルシステムには問題が発生していないため、チェックのプロセスは非常に高速です! -f オプションが指定されると、一つずつプロセスを表示します。

ディスクマウントとアンマウント

Linuxのディスクマウントはmountコマンドを使用し、アンマウントはumountコマンドを使用します。

ディスクマウントの構文:

mount [-t ファイルシステム] [-L ラベル名] [-o 追加オプション] [-n]  デバイスファイル名  マウントポイント

例 1

デフォルトの方法で、先ほど作成した /dev/hdc6 マウント先に /mnt/hdc6 上記!

[root@www ~]# mkdir /mnt/hdc6
[root@www ~]# mount /dev/hdc6 /mnt/hdc6
[root@www ~]# df
Filesystem           1K-blocks      Used Available Use% Mounted on
.....中略.....
/dev/hdc6              1976312     42072   1833836   3% /mnt/hdc6

ディスクアンマウントコマンド umount の構文:

umount [-fn] デバイスファイル名またはマウントポイント

オプションと引数:

  • -f :強制的にアンマウント!ネットワークファイルシステム (NFS) などで読み込めない場合に使用できます;

  • -n :アップグレードしない /etc/mtab 情報でアンマウントします。

アンマウント/dev/hdc6

[root@www ~]# umount /dev/hdc6