tanke25616429のアウトプット

IT技術の基本を勉強したことをアウトプットします。Linux、Kubernetes、クラウド中心です。百番煎じくらいだけど誰かの役に立てばそれはそれでうれしい。

ストレージをLinuxから利用する方法

本記事では、Linuxがコンピュータに接続されたHDD/SSD等のストレージ(記憶領域)に読み書きできるようになるまでの流れを整理する。iSCSI等のストレージプロトコルや、NFSなどのリモートストレージなどの内容には触れない。

ストレージをLinuxから利用するまでのステップ

HDDやSSD等のストレージをLinux上から利用するためには、ストレージを物理的にシステムに接続してからいくつか以下のステップを踏む必要がある*1

  1. パーティションを切る
  2. パーティションをフォーマットし、ファイルシステムを作る
  3. 作ったファイルシステムをマウントする

パーティションとは

パーティションとはストレージを論理的に分割した際のここの領域のことである*2。ディスク全体をひとつの領域とする場合にも、全容量を割り当てたひとつのパーティションを作る必要がある(下部の「補足:ストレージ全体を一つの領域とした場合」も参照のこと)。

lsblkコマンドでパーティションの種類を確認することができる。デバイスsdaはディスク装置で、sda1やsda2はパーティションであることが確認できる。

[root@nuc-centos8 ~]# lsblk
NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda               8:0    0   1.8T  0 disk
|-sda1            8:1    0   200M  0 part /boot/efi
|-sda2            8:2    0     1G  0 part
(省略)

パーティションに関する操作(作成、変更等)には fdisk というコマンドが利用できる。

フォーマットとは

フォーマットとは、ファイルシステムの種類に合わせて記憶領域を構造化することである*3

パーティションはただの領域であり、それだけではデータの読み書きに利用することができない。 パーティションファイルシステムで「フォーマット」することで、ファイルを単位としたデータの管理が行えるようになる。 この操作にはファイルシステムを作成するコマンドが用意されているので(mkfs等)、それを利用する。

マウントとは

抽象的な定義としては、コンピュータに接続したストレージをOS等のソフトウェアに認識させ、読み書き可能な状態にすることを指す。より具体的には、ストレージ上のファイルの読み書きをルートファイルシステム上のアクセス可能な位置に配置し統合することである。

下図のようにフォーマット済みのファイルシステムをルートファイルシステム(=システムのファイルシステム)に統合する。この図ではすでにストレージ上にデータがある場合を書いているが、まっさらなストレージをマウントするケースも同じである。また、種類の違うファイルシステムでもマウント可能である。

f:id:tanke25616429:20210212013300p:plain
ファイルシステムのマウント

マウント操作には mount コマンドを使う。マウントを解除する場合はアンマウント(umountコマンド)を利用する。

まとめ

ストレージをLinuxから利用するにはパーティションを切り(fdisk)、何らかのファイルシステムでフォーマットし(mkfs)、マウントする(mount)というステップが必要である。 コマンドの流れだけ書くと、fdisk → mkfs → mountとなる。

補足:ストレージ全体を一つの領域とした場合

あえて、ストレージ全体を一つの領域とする(/bootやswap領域も分けない)ようにインストールを行っても、自動でパーティションが構成されていることがわかる。ルートファイルシステム/は1つのパーティションになっているが、対応するデバイスsda1はパーティションである(分割前のsdaではない)。

f:id:tanke25616429:20210212004338p:plain
パーティション分割をしないでインストールしたシステム

関連記事

tanke25616429.hatenablog.com tanke25616429.hatenablog.com tanke25616429.hatenablog.com

参考にしたもの

パーティション - Wikipedia hnavi.co.jp eng-entrance.com e-words.jp qiita.com

kapibara-sos.net

Linux - ファイルシステムのマウントとアンマウント Linux - パーティションとファイルシステムの作成 Ping-t LPIC/LinuC Lv2-201(Ver4.5) Linuxファイルシステムの操作と保守

*1:厳密には、1.の前にハードウェアをシステムから認識できる状態にするステップが入る。Linuxではデバイスもファイルとして扱うことができるが、デバイスファイルはudevによって生成される。関連記事:udev - Knのアウトプットを参照のこと。

*2:パーティションを作成する形式としては、MBRとGPTの2つの形式がある。

*3:ブートブロック、スーパーブロック、inodeブロック、データブロックに区切られる。