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 /*

#容量の多いトップ５のディレクトリを表示する
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
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/365885/f4e9d42b-63af-b70b-d264-a577812ebcbd.png)




#参考にした、参考になるサイト
- [Ubuntuのディスク容量を見る](https://qiita.com/miyamotok0105/items/d629622204bf36b29dad)
- [Linuxのディスク管理](https://kazmax.zpp.jp/linux_beginner/disk_manage.html)
- [Linux豆知識 173-FHS（Filesystem Hierarchy Standard）](https://linuc.org/study/knowledge/503/)
- [Filesystem Hierarchy Standard](https://refspecs.linuxfoundation.org/fhs.shtml)
- [hier - 約束事その他の説明 - Linux コマンド集 一覧表](https://kazmax.zpp.jp/cmd/h/hier.7.html)
- [ディスク空き容量が不足してきた件](https://www.souichi.club/aws/out-of-disk-space/)
- [【 lsblk 】コマンド――ブロックデバイスを一覧表示する](https://www.atmarkit.co.jp/ait/articles/1802/02/news021.html)
- [【 tree 】コマンド――ディレクトリをツリー状に表示する](https://www.atmarkit.co.jp/ait/articles/1802/01/news025.html)