#この記事について
対象
対象:IT初心者しょぼん君:(´・ω・`)
▶︎ 初心者向け、イメージを掴むキッカケになることが目的の記事
▶︎ 砕いた理解で、一部正確ではない場合があります。
しょぼん君のぼやき
しょぼん君:(´・ω・`)『Linuxでのディスク追加するよ』
#はじめに
今回Linuxでディスクを追加を実施するための前提知識を整理して実施します。
- [Linuxでディスク追加をする]
#ファイルシステムについて
ファイルシステムは、HDDなどの記憶媒体を効率的に管理して、ファイルとして利用するための手段を提供する基本的なOSのサービスの1つです。大抵の場合、ディスク追加をするとはファイルシステムとして利用できるようにすることを指します。
しょぼん君:(´・ω・`)『データをファイルとしてい扱えるのは、ファイルシステムのおかげなんだね』
普段、ファイルシステムの種類について触れる機会はありませんが、Linuxだけでも「ext2,ext3,ext4,xfs...」などがあります。現在、Linuxでのデファクトスタンダードは、ext3の拡張である ext4 です。
ext4
最大ファイルサイズは16TiB, 最大ボリュームサイズは1EiB
日付範囲は、1901年12月14日から2514年4月25日まで
ファイルシステムでは、ベースとなるVFS(Virtual File System:仮想ファイルシステム)という仕組みで、記憶媒体のパーテーションをどのファイルシステムで管理しているのか判断してコントロールしたり、バックグラウンドでのアクセス権確認や書き込み待ち判断などのファイル処理も行っています。
パーテーションは、物理的な記憶媒体の領域を論理的な領域に分割した中の1つの領域のことです。
しょぼん君:(´・ω・`)『パーテーションごとにファイルシステムで管理しているのかぁ』
ディスクの追加などで新たな記憶媒体をファイルシステムとして利用するには、パーテーションを割り当てて、フォーマットをする必要があります。
#パーテーションの割り当て
パーテーションを割り振るために、追加した記憶媒体が認識されてデバイス名が割り振られていることを確認してみましょう。
Linuxでは、ハードディスクのデバイス名は、/dev/sd* のように認識されます。
$ sudo fdisk -l
Disk /dev/xvdb: 2 GiB, 2147483648 bytes, 4194304 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00025cdb
Device Boot Start End Sectors Size Id Type
/dev/xvdb1 63 4192964 4192902 2G 82 Linux swap / Solaris
Disk /dev/xvda: 25 GiB, 26843701248 bytes, 52429104 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xe8275ee7
Device Boot Start End Sectors Size Id Type
/dev/xvda1 * 2048 526335 524288 256M 83 Linux
/dev/xvda2 526336 52428799 51902464 24.8G 83 Linux
Disk /dev/xvdc: 100 GiB, 107374182400 bytes, 209715200 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
ファイルシステムとして利用されているディスクには、パーテーション情報が存在します。
/dev/xvda を例にすると、以下です。
これら情報がないディスクが今回追加したディスクになるため、上記の例では一番下の Disk /dev/xvdc が新たに認識されたディスクのデバイス名になります。追加したディスクサイズも合わせて参照し、同ディスクであることを確認しましょう。今回は100GBのディスクを追加しました。
現在利用しているディスクのデバイス名は以下コマンドでも確認出来ます。以下に含まれないことも確認したら良いかもしれませんね。
$ df -h
新たに追加したディスクをファイルシステムとして利用するためには、まずパーテーションを設定する必要があります。
しょぼん君:(´・ω・`)『ファイルシステムはパーテーションごとだからだね』
パーテーションの作成は以下コマンドから対話型で設定します。
$ sudo fdisk /dev/xvdc
### 以下が表示されたタイミングでキーを入力。どんなキーがあるかは m でhelpが見られる
Command (m for help):m
Help:
DOS (MBR)
a toggle a bootable flag
b edit nested BSD disklabel
c toggle the dos compatibility flag
Generic
d delete a partition
l list known partition types
n add a new partition
p print the partition table
t change a partition type
v verify the partition table
Misc
m print this menu
u change display/entry units
x extra functionality (experts only)
Save & Exit
w write table to disk and exit
q quit without saving changes
Create a new label
g create a new empty GPT partition table
G create a new empty SGI (IRIX) partition table
o create a new empty DOS partition table
s create a new empty Sun partition table
### 設定前のパーテーション情報を表示
Command (m for help): p
Disk /dev/xvdc: 100 GiB, 107374182400 bytes, 209715200 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x144852f7
### パーテーションの作成( n add a new partition )
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
### パーテーションのタイプを選択(今回はデフォルトのpromary)
Select (default p): p
###パーテーションの数を選択(デフォルトのままEnter)
Partition number (1-4, default 1):
###サイズの設定(デフォルトのままEnter)
First sector (2048-209715199, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-209715199, default 209715199):
### パーテーション情報を確認
Command (m for help): p
Disk /dev/xvdc: 100 GiB, 107374182400 bytes, 209715200 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x144852f7
Device Boot Start End Sectors Size Id Type
/dev/xvdc1 209715199 209715199 1 512B 83 Linux
### 終了
Command (m for help): q
これで追加ディスクを、1つの領域で利用するパーテーションを作成出来ました。
#フォーマット(論理)
続いて、フォーマットを行ってパーティション上にファイルシステムを適用します。これを論理フォーマットと言います。記憶媒体を記憶媒体として利用するためのフォーマットを物理フォーマットと言いますが、これとは異なります。
論理フォーマットではデータを消すのではなくファイルシステムの管理情報を書き直します。
$ mkfs -t ext4 /dev/xvdc1
しょぼん君:(´・ω・`)『追加したディスクをファイルシステムとして利用する準備が出来た訳だね。』
#マウント
実際にファイルシステムとして利用するためには、作成したパーテーションをマウントする必要があります。
Linux は、/ (ルート) ディレクトリを頂点としたツリー構造のディレクトリ構成をしていますが、マウントとは、基本的にはファイルシステムとして利用可能なパーテーションを / ディレクトリの一部となるようにすることを言います。
イメージが湧きづらいかと思うので図にしてみました。
例えば、/mntに今回追加したディスクをマウントするイメージは以下です。
マウントのコマンドは以下です。
一時マウントでマウント可能か確認し、永続マウントの設定をしてみました。
$ sudo mount /dev/xvdc1 /mnt --types=ext4 --option=rw
$ df -hT
<font color="DeepSkyBlue">**しょぼん君:(´・ω・`)**</font color>『ファイルシステムとして追加ディスクが使えるようになった!』
再起動されてもマウントされるように /etc/fstab に追記をします。
```永続マウント.
$ sudo vi /etc/fstab
### 以下を追記
/dev/xvdc1 /mnt ext4 defaults 0 0
しょぼん君:(´・ω・`)『今まで意識していなかったけど、今後は今どこのパーテーションを使ってるのか意識出来そうな気がする』
今回のディスク追加では、1つの物理デバイスの中でパーテーションを区切り、フォーマットしてマウントしました。この他にも、複数のデバイスを1つのボリュームとして考え、区切り、マウントする方法もあったりします。それはまた機会があれば...
END