新しい物理ディスクの初期フォーマットとファイルシステムへのマウント
新しいディスクの初期フォーマット方法を解説します。物理ディスクを新しく追加した場合は、利用する前に初期フォーマットを行う必要があります。
新しく追加した物理ディスクの確認方法については、以下を参考にしてください。
物理的に接続されているディスクを確認する - fdisk -l
パーティションの作成とフォーマット
まず最初に、パーティションを作成します。パーティションとは、論理的なディスクのことです。
一つの物理ディスクを、複数の論理ディスクに分けて扱うこともできますし、複数の物理ディスクを、大きなサイズのひとつの論理ディスクとして扱うこともできます。
パーティションが、ディスクに対してひとつの場合でも、パーティションは作成する必要があります。
ここでは、新しい物理ディスクに対して、ひとつのパーティションを割り当てる方法を解説します。
まずpartedコマンドを使用して、物理ディスクのパーティション分割とフォーマットを行います。
fdiskを使用する方法もありますが、ここでは、対話実行ではなくコマンド実行できるpartedと呼ばれるコマンドを使って、
以下の解説では、新しく追加された物理ディスクを「/dev/sdc」とします。
ファイルシステムの種類はUbuntuのデフォルトのext4です。(これはパーティションにおける単なるヒントで、次の手順で、実際のファイルシステムを指定します。)
sudo parted /dev/sdc --script mklabel gpt mkpart ext4part ext4 0% 100%
パーティションが作成されたことを確認しましょう。
sudo fdisk -l
「/dev/sdc1」というパーティションが作成されます。
Disk /dev/sdc: 1 TiB, 1099511627776 bytes, 2147483648 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: gpt Disk identifier: D5DDBFFA-278E-417C-9DA7-7FF50891E1FD Device Start End Sectors Size Type /dev/sdc1 2048 2147481599 2147479552 1024G Linux filesystem
Linuxファイルシステムの作成
次は、パーティションに対して、Linuxファイルシステムを作成します。
Linuxファイルシステムを作成するには、mkfsコマンドを使用します。XFSファイル用に「mkfs.ext4」というコマンドがあるので、これを使います。
引数には、パーティションを指定します。
sudo mkfs.ext4 /dev/sdc1
出力結果のサンプルです。
meta-data=/dev/sdc1 isize=512 agcount=4, agsize=67108736 blks = sectsz=4096 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=0, rmapbt=0, reflink=0 data = bsize=4096 blocks=268434944, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=131071, version=2 = sectsz=4096 sunit=1 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0
partprobeを使って、すぐに、ファイルシステムとして認識させましょう。
sudo partprobe /dev/sdc1
パーティションが、Linuxファイルシステムとして認識されているかlsコマンドで「/dev」を見てみましょう。
ls /dev | grep sd
「/dev/sdc1」がファイルシステムとして認識されています。
sda sda1 sda14 sda15 sdb sdb1 sdc sdc1
ファイルシステムへのマウント
最後はファイルシステムへのマウントです。「/dev/sdc1」は、パーティションを指し示すデバイスファイルです。これは特別なファイルで、通常のファイルシステムのディレクトリとして、扱うことができません。
デバイスファイルを、通常のディレクトリに結び付けるという操作を行う必要があります。これを、マウントと呼びます。
ディレクトリ名は、自由に決めることができますがここでは「/datadrive」にします。
まず、空のディレクトリを作成します。
sudo mkdir /datadrive
次に「/dev/sdc2」を「/datadrive」でマウントします。
sudo mount /dev/sdc1 /datadrive
dfコマンドを使って、マウントが成功しているか確認しましょう。
df -h
「/dev/sdc1」が「/datadrive」に結び付けられています。
/dev/sdc1 1.0T 1.1G 1023G 1% /datadrive
これで、完了です。ただし、マウントは、一時的なものなので、Ubuntuの再起動時に自動的にマウントするためには、追加の手順が必要です。
自動マウントの設定
Ubuntuを再起動した場合に、自動的にマウントするにはまず、UUIDと呼ばれる、パーティションを一意に識別できるIDを知る必要があります。
blkidコマンドを使って、UUIDを取得しましょう。
sudo blkid
/dev/sda1: LABEL="cloudimg-rootfs" UUID="bdf328db-9606-49ba-8e44-5e1299ae56f0" TYPE="ext4" PARTUUID="179b1e79-bd71-4241-9557-8be63cbb8857" /dev/sda15: LABEL="UEFI" UUID="54D1-0F3A" TYPE="vfat" PARTUUID="ec4144dd-3a40-4774-bfc2-73488a3f8e39" /dev/sdb1: UUID="61c57ec5-96f9-4c18-8d7e-d7b05dd48b76" TYPE="ext4" PARTUUID="a252cd85-01" /dev/sdc1: UUID="c85b796f-b9ff-4b4d-9091-47327999d8aa" TYPE="ext4" PARTLABEL="ext4part" PARTUUID="d2295ab7-22fb-49a2-a3d0-1a9819207562" /dev/sda14: PARTUUID="bddfd6d3-8ef9-40d2-8fda-0083f3e0df9b"
新しく追加したパーティション「sdc1」のUUIDのダブルクォートの中をコピーして、どこかに保存しておきましょう。
次に、OSの再起動ができないなどの状況に陥ったときのために「/etc/fstab」のバックアップを取っておきましょう。
sudo cp /etc/fstab /etc/fstab.original
「/etc/fstab」を編集します。この設定ファイルに書き込むことで、再起動時に自動的にマウントされるようになります。
sudo vi /etc/fstab
自分の環境でコピーしたUUIDを使用して、以下の行を「/etc/fstab」に追加します。
UUID=c85b796f-b9ff-4b4d-9091-47327999d8aa /datadrive ext4 defaults,nofail 1 2
nofailを指定しておくと、マウントに失敗しても、再起動ができるので、少し安心。5列目の1は、dumpするかどうか、データディスクなので、1に。六列目の2(2以上)は、ファイルシステムがルートなどではない場合で、通常のデータを格納する場合に指定しておく。
fstabの設定は、間違った設定を行うと、以下のようなエラーメッセージでOSの再起動に失敗し、起動できなくなるので、慎重に。
The disk drive for /datadrive is not ready yet or not present. Continue to wait, or Press S to skip mounting or M for manual recovery
VPSや各クラウドサービスでの、fstab エラーが起こった場合の復帰方法を確認してから行うようにしましょう。
VPSや各クラウドサービスでの、コンソールから、マウントをスキップして、OSを再起動して「/etc/fstab」を修正するという手順になるかと思われます。
他のディレクトリのために、新しいデータ領域を使うには?
たとえば「/var/backup」のために、新しい「/datadrive」を使いたい場合はどうするのでしょうか?
シンボリックリンクを使います。
「/datadrive」の中に「/var/backup」というディレクトリを作って「/var/backup」から「/datadrive/var/backup」にシンボリックリンクを作成します。
mkdir -p /datadrive/var/backup ls -s /datadrive/var/backup /var/backup
手順を間違ったしまって元に戻したい場合
手順を間違ったしまって元に戻したい場合の解説です。
マウントを解除する
マウントを解除するにはumountコマンドを使用します。
sudo umount /datadrive
cdなどで、ディレクトリに入っていたり、そのディレクトリを使用している場合は、busyになって、アンマウントできないです。
誰かが利用している場合は、以下のコマンドで確認できます。
fuser -muv /datadrive
だれも入っていない状態にしてから、アンマウントしましょう。
パーティションの再作成
マウントを解除したら、partedコマンドを、再実行することで、パーティションを再作成できます。
ファイルシステムの再作成
mkfsコマンドも、再度ファイルシステムを作成するかを効かれますので、yを押して進めましょう。