「仮想マシンに新しいディスクを追加したけど、どうやって使えるようにするの?」
「マウントって聞くけど、実際には何をすればいいの?」
そんな疑問を持つ人は多いです。
仮想マシン(VM)を運用すると、ストレージを後から追加したり、別のボリュームをアタッチして使いたい場面がよくあります。
そのとき必ず必要になるのが「ディスクのマウント」です。
この記事では:
- 仮想マシンでのディスクマウントの基本概念
- Linux仮想マシンでの詳細なマウント手順
- Windows仮想マシンでのディスク管理方法
- 仮想化プラットフォーム別の注意点と最適化
をわかりやすく解説します。これを読めば、仮想マシンでのストレージ管理が格段に楽になります。
ディスクマウントの基本概念

「マウント」とは何か?
マウントの定義
マウントとは、OSがディスク(パーティション、ボリューム、ディスクイメージ等)をファイルシステムとして認識し、既存のディレクトリ構造に統合して利用可能にする処理のことです。
物理マシンと仮想マシンの違い
- 物理マシン:物理的なハードディスクを接続
- 仮想マシン:仮想ディスクファイル(.vmdk、.vhd、.qcow2等)をアタッチ
仮想マシンでのディスク管理の流れ
一般的な手順
- 仮想ディスクの追加:ハイパーバイザー側での設定
- ディスクの認識:OS側でのデバイス確認
- パーティション作成:ディスクの分割(必要に応じて)
- フォーマット:ファイルシステムの作成
- マウント:ディレクトリへの割り当て
- 永続化設定:再起動後も自動マウント
OSごとのマウント方法
OS | マウント先の表現 | 例 |
---|---|---|
Linux | ディレクトリパス | /mnt/data , /var/storage |
Windows | ドライブレター | D: , E: , F: |
macOS | /Volumes/ 配下 | /Volumes/ExtraStorage |
Linux仮想マシンでのディスクマウント

前提環境と準備
対応するLinuxディストリビューション
- Red Hat系:CentOS、RHEL、Fedora、AlmaLinux
- Debian系:Ubuntu、Debian、Linux Mint
- SUSE系:openSUSE、SLES
- その他:Arch Linux、Alpine Linux
必要な権限
# rootユーザーまたはsudo権限が必要
sudo whoami
ステップ1:ディスクの認識確認
接続されているディスクの確認
lsblkコマンドによる確認
lsblk
出力例
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part /
sdb 8:16 0 10G 0 disk # 新しく追加されたディスク
sr0 11:0 1 1024M 0 rom
fdiskコマンドによる詳細確認
sudo fdisk -l
出力例
Disk /dev/sdb: 10 GiB, 10737418240 bytes, 20971520 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
新しいディスクが認識されない場合
SCSIバスの再スキャン
echo "- - -" | sudo tee /sys/class/scsi_host/host*/scan
udevルールの再読み込み
sudo udevadm trigger
sudo udevadm settle
ステップ2:パーティション作成
fdiskを使用した基本的なパーティション作成
対話式パーティション作成
sudo fdisk /dev/sdb
fdisk内でのコマンド操作
# 新しいパーティション作成
Command (m for help): n
# プライマリパーティション選択
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
# パーティション番号(デフォルト1)
Partition number (1-4, default 1): 1
# 開始セクタ(デフォルト使用)
First sector (2048-20971519, default 2048): [Enter]
# 終了セクタ(全体使用)
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): [Enter]
# 変更を保存
Command (m for help): w
partedを使用した自動化
非対話式でのパーティション作成
sudo parted /dev/sdb mklabel gpt
sudo parted /dev/sdb mkpart primary ext4 0% 100%
複数パーティションの作成例
# GPTパーティションテーブル作成
sudo parted /dev/sdb mklabel gpt
# 50%ずつ2つのパーティション作成
sudo parted /dev/sdb mkpart primary ext4 0% 50%
sudo parted /dev/sdb mkpart primary ext4 50% 100%
ステップ3:ファイルシステムの作成
主要なファイルシステムとその特徴
ファイルシステム | 特徴 | 用途 |
---|---|---|
ext4 | Linuxの標準、安定性重視 | 一般的な用途 |
xfs | 高性能、大容量対応 | データベース、ビッグデータ |
btrfs | スナップショット、圧縮 | 先進的な機能が必要 |
ntfs | Windows互換性 | Windows VMとの共有 |
ファイルシステム作成コマンド
ext4ファイルシステムの作成
sudo mkfs.ext4 /dev/sdb1
詳細オプション付きの作成
sudo mkfs.ext4 -L "DataStorage" -b 4096 /dev/sdb1
XFSファイルシステムの作成
sudo mkfs.xfs -L "DataStorage" /dev/sdb1
進捗表示付きの作成
sudo mkfs.ext4 -v /dev/sdb1
ステップ4:マウント実行
一時的なマウント
マウントポイントの作成
sudo mkdir -p /mnt/data
マウント実行
sudo mount /dev/sdb1 /mnt/data
マウント状況の確認
df -h
mount | grep sdb1
マウントオプションの活用
パフォーマンス重視のマウント
sudo mount -o noatime,nodiratime /dev/sdb1 /mnt/data
セキュリティ重視のマウント
sudo mount -o noexec,nosuid,nodev /dev/sdb1 /mnt/data
読み取り専用マウント
sudo mount -o ro /dev/sdb1 /mnt/data
ステップ5:永続化設定(/etc/fstab)
fstabエントリの基本構文
デバイス マウントポイント ファイルシステム オプション dump pass
UUIDを使用した安全な設定
UUIDの確認
sudo blkid /dev/sdb1
出力例
/dev/sdb1: UUID="12345678-1234-1234-1234-123456789abc" TYPE="ext4" PARTUUID="abcdef12-3456-7890-abcd-ef1234567890"
fstabへの追加
echo 'UUID=12345678-1234-1234-1234-123456789abc /mnt/data ext4 defaults 0 2' | sudo tee -a /etc/fstab
fstabの検証
設定の妥当性チェック
sudo mount -a
マウント状況の確認
df -h | grep /mnt/data
高度なLinuxマウント操作
LVM(論理ボリュームマネージャー)の活用
物理ボリューム作成
sudo pvcreate /dev/sdb1
ボリュームグループ作成
sudo vgcreate data_vg /dev/sdb1
論理ボリューム作成
sudo lvcreate -n data_lv -l 100%FREE data_vg
ファイルシステム作成とマウント
sudo mkfs.ext4 /dev/data_vg/data_lv
sudo mkdir /mnt/lvm_data
sudo mount /dev/data_vg/data_lv /mnt/lvm_data
暗号化ディスクのマウント
LUKS暗号化の設定
sudo cryptsetup luksFormat /dev/sdb1
sudo cryptsetup luksOpen /dev/sdb1 encrypted_disk
sudo mkfs.ext4 /dev/mapper/encrypted_disk
sudo mount /dev/mapper/encrypted_disk /mnt/encrypted
Windows仮想マシンでのディスクマウント

Windows Server・Clientでの基本手順
GUIでのディスク管理
ディスクの管理ツールの起動
- Windows + R →
diskmgmt.msc
→ Enter - または、コンピュータの管理 → ストレージ → ディスクの管理
新しいディスクの初期化
- 「ディスクの初期化」ダイアログが表示
- GPT(推奨)またはMBRを選択
- 「OK」をクリック
パーティション作成
- 未割り当て領域を右クリック
- 「新しいシンプルボリューム」を選択
- ウィザードに従って設定:
- ボリュームサイズ指定
- ドライブ文字の割り当て(D:、E:等)
- ファイルシステム選択(NTFS推奨)
- ボリュームラベル設定
PowerShellでのディスク管理
ディスク一覧の確認
Get-Disk
新しいディスクの初期化
# ディスク番号1をGPTで初期化
Initialize-Disk -Number 1 -PartitionStyle GPT
パーティション作成とフォーマット
# 全容量を使用してパーティション作成
New-Partition -DiskNumber 1 -UseMaximumSize -DriveLetter D
# NTFSでフォーマット
Format-Volume -DriveLetter D -FileSystem NTFS -NewFileSystemLabel "DataDisk"
一括処理スクリプト例
$DiskNumber = 1
$DriveLetter = "D"
$VolumeLabel = "DataStorage"
# ディスク初期化
Initialize-Disk -Number $DiskNumber -PartitionStyle GPT -Confirm:$false
# パーティション作成
$Partition = New-Partition -DiskNumber $DiskNumber -UseMaximumSize -DriveLetter $DriveLetter
# フォーマット
Format-Volume -DriveLetter $DriveLetter -FileSystem NTFS -NewFileSystemLabel $VolumeLabel -Confirm:$false
Write-Host "ディスク $DiskNumber がドライブ ${DriveLetter}: として正常にマウントされました"
Windows特有のディスク管理機能
記憶域スペース(Storage Spaces)
仮想ディスクプールの作成
# 複数ディスクでプール作成
$PhysicalDisks = Get-PhysicalDisk -CanPool $true
New-StoragePool -FriendlyName "DataPool" -StorageSubSystemFriendlyName "Storage Spaces*" -PhysicalDisks $PhysicalDisks
仮想ディスクの作成
New-VirtualDisk -StoragePoolFriendlyName "DataPool" -FriendlyName "DataVirtualDisk" -ResiliencySettingName Simple -UseMaximumSize
ダイナミックディスク
ベーシックからダイナミックへの変換
# 注意:データ損失のリスクがあります
Convert-Disk -Number 1 -Dynamic
仮想化プラットフォーム別の注意点

VMware vSphere/Workstation
仮想ディスクの追加手順
vSphere Clientでの操作
- 仮想マシンの電源をオフ
- 仮想マシン設定の編集
- 「ハードウェアの追加」→「ハードディスク」
- 新しい仮想ディスクの作成または既存の割り当て
- ディスクサイズとタイプ(Thin/Thick)の設定
Hot Add機能
# 仮想マシン稼働中のディスク追加
# VM設定で「Hot plug」が有効である必要があります
echo "- - -" | sudo tee /sys/class/scsi_host/host*/scan
VMware特有の最適化
VMware Toolsの活用
# LinuxでVMware Toolsのディスク管理機能を使用
vmware-toolbox-cmd disk list
vmware-toolbox-cmd disk shrink /
Microsoft Hyper-V
仮想ディスクの種類と特徴
ディスクタイプ | 特徴 | 用途 |
---|---|---|
固定サイズ | 性能重視、領域事前確保 | 本番環境 |
動的拡張 | 容量効率、必要時拡張 | 開発・テスト |
差分 | スナップショット機能 | バックアップ |
PowerShellでの仮想ディスク管理
新しいVHDXの作成とアタッチ
# VHDXファイル作成
New-VHD -Path "C:\VMs\DataDisk.vhdx" -SizeBytes 10GB -Dynamic
# 仮想マシンにアタッチ
Add-VMHardDiskDrive -VMName "TestVM" -Path "C:\VMs\DataDisk.vhdx"
KVM/QEMU
libvirtでの仮想ディスク管理
qemu-imgでのディスクイメージ作成
# qcow2形式での作成
qemu-img create -f qcow2 /var/lib/libvirt/images/data.qcow2 10G
virshでのディスクアタッチ
# 稼働中の仮想マシンにディスクアタッチ
virsh attach-disk vm-name /var/lib/libvirt/images/data.qcow2 vdb --cache none
VirtualBox
VirtualBox特有の設定
VBoxManageでのディスク管理
# 新しいVDIディスク作成
VBoxManage createhd --filename /path/to/data.vdi --size 10240
# 仮想マシンにアタッチ
VBoxManage storageattach "VM Name" --storagectl "SATA" --port 1 --device 0 --type hdd --medium /path/to/data.vdi
トラブルシューティング

よくある問題と解決法
問題1:新しいディスクが認識されない
Linux環境での対処
# SCSIバスの再スキャン
echo "- - -" | sudo tee /sys/class/scsi_host/host*/scan
# udev関連の再読み込み
sudo udevadm trigger
sudo udevadm settle
# システムログの確認
sudo dmesg | tail -20
journalctl -u systemd-udevd
Windows環境での対処
# ディスクの再スキャン
Update-HostStorageCache
# ディスク管理の更新
Get-Disk | Update-Disk
問題2:マウント時の権限エラー
マウント後の権限設定
# 所有者とグループの変更
sudo chown user:group /mnt/data
# 権限の設定
sudo chmod 755 /mnt/data
# ACLでの詳細権限設定
sudo setfacl -m u:user:rwx /mnt/data
問題3:パフォーマンスの問題
I/O調整とチューニング
# I/Oスケジューラの確認・変更
cat /sys/block/sdb/queue/scheduler
echo deadline | sudo tee /sys/block/sdb/queue/scheduler
# ファイルシステム最適化
sudo tune2fs -o journal_data_writeback /dev/sdb1
ログ分析とデバッグ
Linux システムログの確認
カーネルメッセージ
dmesg | grep -i "sd[b-z]"
systemdログ
journalctl -f -u systemd-udevd
Windows イベントログの確認
PowerShellでのイベント確認
Get-WinEvent -LogName System | Where-Object {$_.Id -eq 51} # ディスクエラー
Get-WinEvent -LogName System | Where-Object {$_.Id -eq 153} # ディスク警告
セキュリティと最適化

セキュリティ考慮事項
暗号化ディスクの実装
Linux(LUKS)
# 暗号化の設定
sudo cryptsetup luksFormat /dev/sdb1
sudo cryptsetup luksOpen /dev/sdb1 secure_data
# 自動マウント設定
echo "secure_data UUID=xxx /path/to/keyfile luks" | sudo tee -a /etc/crypttab
echo "/dev/mapper/secure_data /mnt/secure ext4 defaults 0 2" | sudo tee -a /etc/fstab
Windows(BitLocker)
Enable-BitLocker -MountPoint "D:" -EncryptionMethod Aes256 -UsedSpaceOnly
パフォーマンス最適化
SSD向けの最適化
Linux設定
# TRIMの有効化
sudo systemctl enable fstrim.timer
# SSD最適化マウントオプション
echo 'UUID=xxx /mnt/ssd ext4 defaults,noatime,discard 0 2' | sudo tee -a /etc/fstab
Windows設定
# TRIMの確認と有効化
fsutil behavior query DisableDeleteNotify
fsutil behavior set DisableDeleteNotify 0
まとめ
仮想マシンでのディスクマウントは、適切な手順を踏むことで安全かつ効率的に実行できます。重要なポイントを整理すると:
基本的な流れ
- 仮想ディスクの追加:ハイパーバイザー側での設定
- ディスク認識確認:OS側でのデバイス確認
- パーティション作成:必要に応じて分割
- フォーマット:適切なファイルシステムの選択
- マウント実行:一時的な利用開始
- 永続化設定:再起動後の自動マウント
OS別の特徴
Linux環境
- コマンドライン操作が中心
- 柔軟な設定とオプション
- UUID使用による安定性
- LVMや暗号化などの高度な機能
Windows環境
- GUI操作が直感的
- PowerShellでの自動化も可能
- ドライブレターによる管理
- 記憶域スペースなどの統合機能
ベストプラクティス
- 事前確認:必ずディスク認識状況を確認
- 適切なファイルシステム選択:用途に応じた最適化
- 永続化設定:再起動後も確実に利用可能
- セキュリティ考慮:必要に応じて暗号化を実装
- 定期的なメンテナンス:ログ確認と性能監視
コメント