Ubuntuでよく使うディスク関係のコマンド(備忘録)


はじめに

ubuntuを使っていて、バックアップの為、外付けSSDを接続してデータをコピーしたり、データベースの保存場所をセカンダリディスクにしたりなどよくディスク関係のコマンドを使う思います。

なので今回、自分用の備忘録としてよく使うコマンドをまとめました。
皆さんの役にも立てると幸いです。

ディスクの管理関係のよく使うコマンド

Linuxでディスクを利用するために、主に以下のコマンドを使っています。

  • fdiskコマンド
  • blkidコマンド
  • dmesgコマンド
  • treeコマンド
  • df コマンド
  • du コマンド
  • mkfsコマンド
  • mount/umountコマンド
  • lshwコマンド
  • lsblkコマンド
よく使うコマンド

#パーティション一覧表示
sudo fdisk -l

#ハードディスク情報取得
sudo blkid

#デバイスが認識されていることを確認
dmesg | grep sd

#ディレクトリのみ、2階層目まで表示
tree -d -L 2

#空き容量を確認する
sudo df -h

#ルートディレクトリがどのディスク上にあるか確認する
df / -h

#どのデバイスがどこにマウントされているのか確認
df -Th

#どこのディレクトリの容量が大きいのかを表示する
sudo du -sh /*

#容量の多いトップ5のディレクトリを表示する
sudo du -sm ./* | sort -rn | head -5

#HDDをExt4フォーマット
sudo mkfs.ext4 "ディスクパス"

#ディスクのマウント
sudo mount "ディスクパス" "マウントするディレクトリパス"

#ディスクのアンマウント
umount /mnt

#ハードウェアの情報を表示する
sudo lshw -short -C disk 

#ブロックデバイスを一覧表示する(ディスク名とプラッタがあるか表示(1の場合HDD、0の場合はSSD)) 
lsblk -o name,rota

#ディスクがHDDかSSDか確認する(返り値が1の場合HDD、0の場合はSSD) 
cat /sys/block/"ディスク名"/queue/rotational

補足1---Linux のディスクの扱い

LinuxではWindowsと異なりドライブレターがないのでCドライブやDドライブといった表現がない。そのため、ディスク内のパーティションをマウントすると、フォルダのような扱いになり、HDDの中身にアクセスできるようになります。

ディスクが認識されている場合、各HDDは/dev/sda、/dev/sdb・・・といった感じで表現される。sdの部分が固定で、その後ろのアルファベットがaから順に続いていく感じ。(CD/DVDドライブの場合はsr)

補足2---Linux のディレクトリ構造

Linuxのディレクトリ構造は、FHS(Filesystem Hierarchy Standard)という規格にしたがってつくられている。
現在のFHS(FHS 3.0)で規定された、ルートディレクトリ直下のディレクトリで必須とされているものは、「/bin」「/boot」「/dev」「/etc」「/lib」「/media」「/mnt」「/opt」「/run」「/sbin」「/srv」「/tmp」「/usr」「/var」の14個です(「/home」「/root」についてはオプションとして規定)。

ディレクトリ 役割
/ ルートディレクトリ。ここが階層の起点。
/bin シングルユーザーモードでシステムの起動や修理を行う際に必要な実行形式ファイルが含まれる。例えば、cat、cp、ls、more、tarなどの実行ファイル。
/boot Linuxのカーネルやブートマネージャーなどが含まれる。 このディレクトリにはブートプロセスの間に必要なファイルだけが置かれる。
/dev 物理デバイスを参照しているコンピューターに接続されたデバイス(マウスやキーボード、ディスク等)のスペシャルファイルやデバイスファイルの置き場所。
/etc ほとんどのシステム設定ファイルが入っているディレクトリ。また、サブディレクトリの/etc/rc.dには初期化スクリプトが入っている。
/lib システムの起動時に必要な共有ライブラリや、 ルートファイルシステムでコマンドを実行するのに必要な共有ライブラリがおかれる場所。
/media CD-ROMやフロッピーディスクなどの外付けメディア用のマウントポイント。
/mnt 一時的にマウントされるファイルシステムのマウントポイント。
/opt アドオンパッケージの静的なファイルが置かれる。
/run 実行中のプロセスに関連するデータが置かれる。
/sbin /bin と同様に、 このディレクトリにはシステムの起動に必要なコマンドが含まれる。 ただしここには、一般ユーザーは通常実行しないコマンドが置かれる。
/srv 定期的なジョブによって、またはシステム起動時に、 無条件に削除して構わない一時的なファイルが置かれる。
/tmp 定期的なジョブによって、またはシステム起動時に、 無条件に削除して構わない一時的なファイルが置かれる。
/usr ユーザが独自にインストールするファイル類がおかれる。ルート直下と同様の構造が作成されている。
/var スプールファイルやログファイルのような、 サイズが変化するファイルが置かれる。

もちろん、FHSに策定されているものはこれだけではなく、さらに下層のディレクトリ(「/usr/share」など)についても言及されています。

実際に以下のコマンドをUbuntuでたたいてみると下のようなディレクトリ構造が表示されました。

tree -d -L 2

参考にした、参考になるサイト