仮想マシンでのディスクマウント方法|Linux・Windowsでの基本手順をわかりやすく解説

Linux

「仮想マシンに新しいディスクを追加したけど、どうやって使えるようにするの?」
「マウントって聞くけど、実際には何をすればいいの?」
そんな疑問を持つ人は多いです。

仮想マシン(VM)を運用すると、ストレージを後から追加したり、別のボリュームをアタッチして使いたい場面がよくあります。

そのとき必ず必要になるのが「ディスクのマウント」です。

この記事では:

  • 仮想マシンでのディスクマウントの基本概念
  • Linux仮想マシンでの詳細なマウント手順
  • Windows仮想マシンでのディスク管理方法
  • 仮想化プラットフォーム別の注意点と最適化

をわかりやすく解説します。これを読めば、仮想マシンでのストレージ管理が格段に楽になります。

スポンサーリンク

ディスクマウントの基本概念

「マウント」とは何か?

マウントの定義

マウントとは、OSがディスク(パーティション、ボリューム、ディスクイメージ等)をファイルシステムとして認識し、既存のディレクトリ構造に統合して利用可能にする処理のことです。

物理マシンと仮想マシンの違い

  • 物理マシン:物理的なハードディスクを接続
  • 仮想マシン:仮想ディスクファイル(.vmdk、.vhd、.qcow2等)をアタッチ

仮想マシンでのディスク管理の流れ

一般的な手順

  1. 仮想ディスクの追加:ハイパーバイザー側での設定
  2. ディスクの認識:OS側でのデバイス確認
  3. パーティション作成:ディスクの分割(必要に応じて)
  4. フォーマット:ファイルシステムの作成
  5. マウント:ディレクトリへの割り当て
  6. 永続化設定:再起動後も自動マウント

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:ファイルシステムの作成

主要なファイルシステムとその特徴

ファイルシステム特徴用途
ext4Linuxの標準、安定性重視一般的な用途
xfs高性能、大容量対応データベース、ビッグデータ
btrfsスナップショット、圧縮先進的な機能が必要
ntfsWindows互換性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でのディスク管理

ディスクの管理ツールの起動

  1. Windows + Rdiskmgmt.msc → Enter
  2. または、コンピュータの管理 → ストレージ → ディスクの管理

新しいディスクの初期化

  1. 「ディスクの初期化」ダイアログが表示
  2. GPT(推奨)またはMBRを選択
  3. 「OK」をクリック

パーティション作成

  1. 未割り当て領域を右クリック
  2. 「新しいシンプルボリューム」を選択
  3. ウィザードに従って設定:
    • ボリュームサイズ指定
    • ドライブ文字の割り当て(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での操作

  1. 仮想マシンの電源をオフ
  2. 仮想マシン設定の編集
  3. 「ハードウェアの追加」→「ハードディスク」
  4. 新しい仮想ディスクの作成または既存の割り当て
  5. ディスクサイズとタイプ(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

まとめ

仮想マシンでのディスクマウントは、適切な手順を踏むことで安全かつ効率的に実行できます。重要なポイントを整理すると:

基本的な流れ

  1. 仮想ディスクの追加:ハイパーバイザー側での設定
  2. ディスク認識確認:OS側でのデバイス確認
  3. パーティション作成:必要に応じて分割
  4. フォーマット:適切なファイルシステムの選択
  5. マウント実行:一時的な利用開始
  6. 永続化設定:再起動後の自動マウント

OS別の特徴

Linux環境

  • コマンドライン操作が中心
  • 柔軟な設定とオプション
  • UUID使用による安定性
  • LVMや暗号化などの高度な機能

Windows環境

  • GUI操作が直感的
  • PowerShellでの自動化も可能
  • ドライブレターによる管理
  • 記憶域スペースなどの統合機能

ベストプラクティス

  • 事前確認:必ずディスク認識状況を確認
  • 適切なファイルシステム選択:用途に応じた最適化
  • 永続化設定:再起動後も確実に利用可能
  • セキュリティ考慮:必要に応じて暗号化を実装
  • 定期的なメンテナンス:ログ確認と性能監視

コメント

タイトルとURLをコピーしました