概要
Linux VPSでストレージディスクをマウントしてフォーマットするにはどうすればよいですか?
Linux VPSでストレージディスクをマウントしてフォーマットするには、lsblkでそれを見つけ、1つのGPTパーティションを作成し、ext4またはXFSでフォーマットし(任意でLUKS内に)、/etc/fstabからnofail付きのUUIDでマウントして、ディスクが欠けてもブートがブロックされないようにします。この手順は、12か月契約で1 TBあたり月額$1.66(2 November 2026)からのCoffervaleプランを含む、あらゆるKVMストレージVPSに適用されます。
手順は何ですか?
空のディスクを特定する
lsblkで全てのディスクが表示されます。ストレージディスクにはパーティションもマウントポイントもありません。1つのGPTパーティションを作成する
partedはGPTラベルとディスク全体にわたる1つのパーティションを書き込みます。暗号化する(任意)
cryptsetup luksFormatとcryptsetup openを実行し、その後LUKSヘッダーをサーバー外にバックアップします。ファイルシステムを作成する
mkfs.ext4 -m 1またはmkfs.xfsに、見分けやすいラベルを付けます。UUIDとnofailを使ってマウントする
/etc/fstabに1行追加し、mountとfindmntで確認します。
どのディスクがストレージディスクですか?
lsblkを実行してください。ストレージディスクは、パーティションもファイルシステムもマウントポイントもない大きなディスクです。 ストレージVPSには、小さなシステムディスクと大きなデータディスクという構成と、単一の大きなディスクという2つのレイアウトがあります。2 November 2026についてのCoffervaleの調査によると、ID書類なしで暗号資産を受け付ける18社のストレージVPS販売者のうち6社が、自社ページでストレージは別のディスクまたはブロックデバイスとして提供されると明記しています。残りの12社は1つのディスクと説明しているか、明記していません。破壊的な操作を入力する前に、ご自身の環境を確認してください。
KVMでは、virtioディスクはvda、vdbなどの名前になり、virtio-SCSIディスクはsda、sdbになります。サイズは2進単位で表示されるため、1 TBのディスクは約931Gと表示されます。lsblkにディスクが1つしか表示されず、/がすでにその全容量に及んでいる場合は、フォーマットするものはありません。/srv/dataのようなフォルダを作成し、末尾の暗号化の選択肢に関するセクションまでスキップしてください。
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS
# Use the empty disk from the list above; this example assumes /dev/vdb
DISK=/dev/vdb
PART=/dev/vdb1ストレージディスクはパーティションに分けるべきですか、それとも全体をフォーマットすべきですか?
ディスク全体に1つのGPTパーティションを作成してください。 ベアデバイスに直接ファイルシステムを書き込む方法も機能しますが、パーティションテーブルがあれば、後から確認するすべてのツールと管理者にそのディスクが使用中であることが伝わり、partedがパーティションを自動的にアライメントします。DebianとUbuntuのクラウドイメージにはpartedが含まれていないことがあるため、先にインストールしてください(AlmaLinuxまたはRocky Linuxではdnf install parted、以下同様にcryptsetupも)。
apt install parted
parted -s -a optimal "$DISK" mklabel gpt mkpart data 0% 100%
partprobe "$DISK"
lsblk "$DISK"ストレージディスクをLUKSで暗号化すべきですか?
VPS上に平文ファイルを保持するものがある場合は暗号化してください。パーティションにcryptsetup luksFormatを実行し、名前を付けて開き、開いたデバイス上にファイルシステムを構築します。 LUKS2がデフォルト形式です。システムディスクは暗号化せず、データディスクをLUKSで保護してください。再起動後はSSHでログインし、パスフレーズでデータディスクのロックを解除します。ハイパーバイザーを運用する者は、技術的には暗号化されていない仮想ディスクを読み取れます。これはどのVPSホストでも同じです。当社はお客様のファイルを開かず、お客様のマシンから出る前に暗号化されたデータについては、その懸念自体が生じません。
LUKSヘッダーをバックアップし、そのコピーをサーバー外に移動してください。ヘッダーが破損すると、その背後のデータは失われます。cryptsetupのマニュアルには、二度読む価値のある警告が追加されています。ヘッダーのバックアップと、取得時に有効だったパスフレーズがあれば、そのパスフレーズが後で変更または削除されてもディスクを復号できます。バックアップファイルはパスフレーズそのものと同様に扱ってください。
apt install cryptsetup
cryptsetup luksFormat "$PART"
cryptsetup open "$PART" coffer
cryptsetup luksHeaderBackup "$PART" --header-backup-file /root/coffer-luks-header.img
# copy /root/coffer-luks-header.img to your own machine, then delete it hereストレージディスクはext4とXFSのどちらを使うべきですか?
特別な理由がない限りext4を使用してください。2つのうち縮小できるのはext4だけです。 どちらもマルチテラバイトのバックアップリポジトリとファイル同期を問題なく処理でき、ディスクが大きくなるとマウントしたまま拡張できます。ストレージVPSで重要な違いは次のとおりです:
| プロパティ | ext4 | XFS |
|---|---|---|
| マウント中に拡張可能 | はい、resize2fs | はい、xfs_growfs(マウント必須) |
| 縮小 | はい、アンマウント時、resize2fsを使用 | ほぼ不可:最後のアロケーショングループのみ縮小でき、削除もできません |
| root用に確保される領域 | デフォルトで5%、-m 1では1%を維持 | そのような予約領域はありません |
| ラベルの長さ | 最大16バイト | 最大12文字 |
1 TBのデータディスクでは、ext4のデフォルト予約により50 GBがroot専用に確保されます。バックアップや同期データを保存するディスクの場合、OSがその中に存在しないため1%で十分です。パーティション、または暗号化した場合は開いたLUKSデバイスをフォーマットします:
# The device to format: the partition, or the opened LUKS device
DEV="$PART" # with LUKS: DEV=/dev/mapper/coffer
mkfs.ext4 -m 1 -L coffer "$DEV"
# or: mkfs.xfs -L coffer "$DEV"fstab、UUID、nofailを使って起動時にディスクをマウントするには?
UUIDでファイルシステムを指定し、nofailを含む/etc/fstab行を1つ追加します。 fstabのマニュアルはUUIDまたはラベルを推奨しています。デバイス名はディスクの検出順に従い、ディスクの追加や削除で変わる可能性があるためです。nofailを付けると、systemdのドキュメントによれば、マウントを待たずに、また成功・失敗にかかわらず起動が続行されるため、ディスクが外れていたりロックされていても、リモートサーバーが到達不能な緊急プロンプトで止まったままになることはありません。
暗号化ディスクにはnoautoも付けます:SSH経由でロック解除する前にマウントすることはできないため、起動時に試みるべきではありません。以下の小さなスクリプトは、LUKSのUUIDでデバイスを開き、1ステップでマウントします。
mkdir -p /srv/data
UUID=$(blkid -s UUID -o value "$PART")
echo "UUID=$UUID /srv/data ext4 defaults,nofail 0 2" >> /etc/fstab
systemctl daemon-reload
mount /srv/data
findmnt /srv/datamkdir -p /srv/data
FSUUID=$(blkid -s UUID -o value /dev/mapper/coffer)
LUKSUUID=$(blkid -s UUID -o value "$PART")
echo "UUID=$FSUUID /srv/data ext4 noauto,nofail 0 0" >> /etc/fstab
systemctl daemon-reload
cat > /usr/local/sbin/unlock-data <<EOF
#!/bin/sh
cryptsetup open /dev/disk/by-uuid/$LUKSUUID coffer && mount /srv/data
EOF
chmod 700 /usr/local/sbin/unlock-data
# after each reboot, over SSH:
/usr/local/sbin/unlock-dataサーバー上でディスクを暗号化したくない場合は?
代わりにクライアント側で暗号化します。これはシングルディスクを含むどのレイアウトでも機能します。 Borg、restic、Syncthingの非信頼デバイスモードはすべて、データがVPSに到達する前に暗号化するため、LUKSの有無にかかわらずサーバーは暗号文を保存します。KVMではサーバーが独自のカーネルを持つため、データディスクにLUKSを設定したり、ZFSをネイティブ暗号化付きで実行したりでき、鍵がお客様の手を離れることはありません。バックアップは、アップロード前にご自身のマシンで暗号化してください(Borg、restic、Kopiaはいずれも対応しています)。これにより、サーバーには暗号文しか保存されません。ディスク暗号化は、VPSがNextcloudのように平文ファイルを必要とするソフトウェアを実行している場合でも有用です。次のステップ:VPSをオフサイトバックアップに使うには?、VPS上にBorgバックアップサーバーをセットアップするには?、Nextcloud用に1 TB以上のストレージを備えた最適なVPSは?。後でより大きなディスクが必要になった場合は、容量を増やすには、より大きなプランを注文し、rsyncまたはzfs sendでデータをコピーしてください。稼働中のサーバーをその場でリサイズする機能は、ローンチ時には提供していません。プランのサイズは1 TBのストレージを備えたVPSはどこで入手できますか?にあります。
ストレージディスクのマウントに関する質問
1 TBのディスクが931Gと表示されるのはなぜですか?
ディスクのサイズは10進テラバイトで販売されていますが、lsblkとdfは2進単位で表示します。1,000,000,000,000バイトは約931 GiBです:同じバイト数で、単位が異なるだけです。
nofailを忘れて起動時にディスクが見つからない場合はどうなりますか?
systemdはそのマウントをローカルファイルシステムに必須のものとして扱うため、起動が緊急シェルで停止する可能性があります。アクセス可能なコンソールがないVPSでは、サポートへの依頼が必要になります。nofailを付けると、サーバーは起動し、SSH経由でマウントを修正できます。
再起動のたびにLUKSディスクのロックを解除する必要がありますか?
はい、上記の設定では:SSHでログインし、ロック解除スクリプトを実行します。システムディスクは暗号化しないままにしておくことで、サーバーは常に起動し、SSHも常に応答します。
Borgやresticのリポジトリにはext4とXFSのどちらを使うべきですか?
どちらでも機能します。ext4は後で縮小でき、-mでroot予約を調整できます。XFSは限られたケースを除いて縮小できません。迷ったらext4を選んでください。
ディスクが想定どおりの場所にマウントされているか確認するには?
findmnt /srv/dataはそのマウントポイントのデバイス、ファイルシステム、オプションを表示し、df -h /srv/dataはそのサイズと空き容量を表示します。どちらかがrootファイルシステムを表示している場合、ディスクはマウントされておらず、データはシステムディスクに書き込まれています。
出典 (8)
- lsblk(8):ブロックデバイスの一覧表示 — Linux man-pages project (read 2026-11-02)
- fstab(5):UUIDとLABEL、nofail、fsckの順序 — Linux man-pages project (read 2026-11-02)
- systemd.mount(5):fstabのnofailとnoauto — systemd project (read 2026-11-02)
- mke2fs(8):-mで予約ブロック(デフォルト5%)、-Lでラベル — Linux man-pages project (read 2026-11-02)
- resize2fs(8):ext4の拡張と縮小 — Linux man-pages project (read 2026-11-02)
- xfs_growfs(8):XFSの拡張、縮小の制限 — Linux man-pages project (read 2026-11-02)
- cryptsetup-luksFormat(8):LUKS2がデフォルト — cryptsetup project (read 2026-11-02)
- cryptsetup-luksHeaderBackup(8):ヘッダーのバックアップとそのリスク — cryptsetup project (read 2026-11-02)