紹介
Linuxでストレージを管理するための多くのツールが利用可能です。しかし、日常のメンテナンスと管理にはごくわずかしか使用されません。このガイドでは、マウントポイント、ストレージデバイス、およびファイルシステムの管理に最も一般的に使用されるユーティリティのいくつかを確認します。
その他のリソース
このガイドでは、Linuxシステムでストレージデバイスを初めて使用するための準備方法はカバーされません。Linuxシステム上でブロックデバイスをパーティション分割およびフォーマットする方法については、Linuxでのブロックデバイスのパーティショニングとフォーマットのガイドが役立ちます。
ストレージに関する用語の説明についての詳細は、ストレージ用語に関するこの記事を読んでみてください。
dfを使用したストレージ容量と使用状況の検索
よく、システムのストレージに関する最も重要な情報は、接続されたストレージデバイスの容量と現在の利用状況です。
全体のストレージ容量とドライブの現在の利用状況を確認するには、dfユーティリティを使用します。デフォルトでは、これは1Kブロック単位で測定されますが、これは常に役立つわけではありません。人が読める単位で出力するには、-h
フラグを追加してください:
- df -h
OutputFilesystem Size Used Avail Use% Mounted on
udev 238M 0 238M 0% /dev
tmpfs 49M 624K 49M 2% /run
/dev/vda1 20G 1.1G 18G 6% /
tmpfs 245M 0 245M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 245M 0 245M 0% /sys/fs/cgroup
tmpfs 49M 0 49M 0% /run/user/1000
/dev/sda1 99G 60M 94G 1% /mnt/data
/
にマウントされている/dev/vda1
パーティションは、6%使用されており、利用可能なスペースは18Gです。一方、/mnt/data
にマウントされている/dev/sda1
パーティションは空で、利用可能なスペースは94Gです。その他のエントリは、tmpfs
またはdevtmpfs
ファイルシステムを使用しており、これらは永続的なストレージのように使用されるボラタイルメモリです。これらのエントリを除外するには、次のように入力します:
- df -h -x tmpfs -x devtmpfs
OutputFilesystem Size Used Avail Use% Mounted on
/dev/vda1 20G 1.1G 18G 6% /
/dev/sda1 99G 60M 94G 1% /mnt/data
この出力により、疑似デバイスや特殊デバイスを除去することで、現在のディスク使用状況のより焦点を絞った表示が提供されます。
lsblkを使用したブロックデバイスの情報の検索
A block device is a generic term for a storage device that reads or writes in blocks of a specific size. This term applies to almost every type of non-volatile storage, including hard disk drives (HDDs), solid state drives (SSDs), and so on. The block device is the physical device where the filesystem is written. The filesystem, in turn, dictates how data and files are stored.
lsblkユーティリティは、ブロックデバイスに関する情報を表示するために使用できます。ユーティリティの具体的な機能はインストールされているバージョンに依存しますが、一般的にlsblk
コマンドは、ドライブ自体に関する情報、パーティション情報、および書き込まれたファイルシステムについて表示できます。
引数なしでlsblk
を実行すると、デバイス名、デバイスに関連付けられたメジャー番号とマイナー番号(Linuxカーネルがドライバーとデバイスを追跡するために使用)、ドライブが取り外し可能かどうか、サイズ、読み取り専用でマウントされているかどうか、タイプ(ディスクまたはパーティション)、およびマウントポイントが表示されます。一部のシステムでは、これを正しく表示するにはsudo
が必要です。
- sudo lsblk
OutputNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
vda 253:0 0 20G 0 disk
└─vda1 253:1 0 20G 0 part /
表示される出力の中で、通常最も重要な部分は、デバイス名(/dev
以下のデバイス名)、サイズ、タイプ、およびマウントポイントです。ここでは、1つのディスク(/dev/vda
)と1つのパーティション(/dev/vda1
)が/
パーティションとして使用されていること、および他のディスク(/dev/sda
)がパーティションされていないことがわかります。
ディスクおよびパーティション管理に関連する情報を取得するには、一部のバージョンで--fs
フラグを渡すことができます。
- sudo lsblk --fs
OutputNAME FSTYPE LABEL UUID MOUNTPOINT
sda
vda
└─vda1 ext4 DOROOT c154916c-06ea-4268-819d-c0e36750c1cd /
システムで--fs
フラグを使用できない場合は、-o
フラグを使用して特定の出力をリクエストすることで出力を手動で再現できます。 -o NAME、FSTYPE、LABEL、UUID、MOUNTPOINT
を使用して、同じ情報を取得できます。
ディスクトポロジに関する情報を取得するには、次のように入力してください:
- sudo lsblk -t
OutputNAME ALIGNMENT MIN-IO OPT-IO PHY-SEC LOG-SEC ROTA SCHED RQ-SIZE RA WSAME
sda 0 512 0 512 512 1 deadline 128 128 2G
vda 0 512 0 512 512 1 128 128 0B
└─vda1 0 512 0 512 512 1 128 128 0B
ディスクとパーティションに関連する特性を表示するための他のショートカットがたくさんあります。利用可能なすべての列を出力するには、-O
フラグを使用するか、-o
フラグで列名を指定して表示するフィールドをカスタマイズすることができます。利用可能な列をリストアップするには、-h
フラグを使用します。
- lsblk -h
Output. . .
Available columns (for --output):
NAME device name
KNAME internal kernel device name
. . .
SUBSYSTEMS de-duplicated chain of subsystems
REV device revision
VENDOR device vendor
For more details see lsblk(8).
ファイルシステムのマウントに関する作業
新しいディスクを使用する前に、通常はパーティションを作成し、ファイルシステムでフォーマットし、ドライブまたはパーティションをマウントする必要があります。パーティショニングとフォーマットは通常、一度だけ行われます。Linuxでドライブをパーティション分割してフォーマットする方法については、Linuxでストレージデバイスをパーティション分割してフォーマットする方法で詳細情報を見つけることができます。
マウントは、より頻繁に行う作業です。ファイルシステムをマウントすることにより、選択したマウントポイントでサーバーから利用できるようになります。マウントポイントは、新しいファイルシステムにアクセスできるディレクトリです。
マウントを管理するためには、主に2つの補完コマンドが使用されます:mount
とumount
。 mount
コマンドは、ファイルシステムを現在のファイルツリーにアタッチするために使用されます。Linuxシステムでは、物理デバイスの数に関係なく、システム全体で単一の統合されたファイル階層が使用されます。 umount
コマンド(注:これはumount
であり、unmount
ではありません)は、ファイルシステムをアンマウントするために使用されます。さらに、findmnt
コマンドは、マウントされたファイルシステムの現在の状態に関する情報を収集するのに役立ちます。
mountコマンドの使用方法
mount
を使用する最も簡単な方法は、フォーマットされたデバイスまたはパーティションと、それがアタッチされるマウントポイントを渡すことです:
- sudo mount /dev/sda1 /mnt
マウントポイントは、新しいファイルシステムがアタッチされるファイル階層内の場所を指定する最後のパラメータであり、ほとんどの場合は空のディレクトリであるべきです。
通常、マウントする際にはより具体的なオプションを選択する必要があります。 mount
はファイルシステムのタイプを推測することができますが、ほとんどの場合、-t
オプションでファイルシステムのタイプを指定する方が良いアイデアです。 Ext4ファイルシステムの場合、次のようになります:
- sudo mount -t ext4 /dev/sda1 /mnt
多くの他のオプションが、ファイルシステムのマウント方法に影響を与える可能性があります。ジェネリックなマウントオプションは、FILESYSTEM INDEPENDENT MOUNT OPTIONSセクションで見つけることができます。the mount manual内。
他のオプションは-o
フラグを使用して渡します。たとえば、デフォルトのオプション(rw、suid、dev、exec、auto、nouser、async
)でパーティションをマウントするには、-o defaults
を渡します。読み取り書き込み権限を上書きして読み取り専用としてマウントする場合は、後続のオプションとしてro
を追加できます。これにより、defaults
オプションからrw
が上書きされます。
- sudo mount -t ext4 -o defaults,ro /dev/sda1 /mnt
/etc/fstab
ファイルで概説されているすべてのファイルシステムをマウントするには、-a
オプションを渡します。
- sudo mount -a
ファイルシステムのマウントオプションのリスト
特定のマウントに使用されているマウントオプションを表示するには、findmnt
コマンドを使用します。たとえば、上記の読み取り専用マウントをfindmnt
で表示すると、次のようになります。
- findmnt /mnt
OutputTARGET SOURCE FSTYPE OPTIONS
/mnt /dev/sda1 ext4 ro,relatime,data=ordered
これは、複数のオプションで実験して最終的に気に入った設定を見つけた場合に役立ちます。将来のマウントのために/etc/fstab
ファイルに追加する適切なものを知るために、findmnt
で使用されているオプションを見つけることができます。
ファイルシステムのアンマウント
umount
コマンドは、指定されたファイルシステムをアンマウントするために使用されます。再度強調しますが、これはumount
であり、unmount
ではありません。
コマンドの一般的な形式は、現在マウントされているファイルシステムのマウントポイントまたはデバイスを指定することです。マウントポイント上のファイルを使用していないこと、およびマウントポイント内でアプリケーション(現在のシェルを含む)が動作していないことを確認してください。
- cd ~
- sudo umount /mnt
通常、デフォルトのアンマウント動作に追加するオプションはありません。
結論
このリストは決して網羅的ではありませんが、これらのユーティリティは、日常のシステム管理タスクのほとんどをカバーするはずです。いくつかのツールを学ぶことで、サーバー上のストレージデバイスを処理できます。