CentOS 7 VM on VMwareのディスク拡張

Table of Content

CentOS 7 Virtual Machine (VM) on VMware Workstation 12 Playerのディスクを拡張する方法の備忘録です.以下は最も基本的な方法と思われます.

ディスク追加の流れ

VMware Playerの設定でディスク容量を拡張します.次にCentOS仮想マシン(VM)にloginし,fdiskでpartitionを追加し,partitionにファイルシステムを作成します.最後に,そのファイルシステムをマウントすることで,CentOSで追加ディスクを利用できるようになります.各ステップ毎にリブートが必要なことに要注意です.

partitionを追加する

fdiskを用いてpartitionを作成します.こちらのサイトが参考になります.
最初にVMware Playerの仮想マシン設定の「ハードディスク(SCSI)」でディスク容量を拡張します.このとき仮想マシンはシャットダウンされている必要があります.
次にVMを起動し,fdiskで見てみると,私の環境では以下のようになっていました.
[cc]
# fdisk -l

Disk /dev/sda: 64.4 GB, 64424509440 bytes, 125829120 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x000c5c14

デバイス ブート 始点 終点 ブロック Id システム
/dev/sda1 * 2048 616447 307200 83 Linux
/dev/sda2 616448 6907903 3145728 82 Linux swap / Solaris
/dev/sda3 6907904 62914559 28003328 83 Linux
[/cc]
次に,fdiskで/dev/sdaにprimary partitionの/dev/sda4を追加します.primary partitionは4つまでですので,primary partitionをこれ以上追加することはできません.extended partition(拡張パーティション)を作成することはできます.
長いですが,以下のように対話的に進めて行きます.デフォルト値のあるものはEnterを入力しています.なお,以下のコマンド「t」はデフォルトでよいので,不要です.
[cc]
# fdisk /dev/sda
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

コマンド (m でヘルプ): n
Partition type:
p primary (3 primary, 0 extended, 1 free)
e extended
Select (default e): p
Selected partition 4
最初 sector (62914560-125829119, 初期値 62914560):
初期値 62914560 を使います
Last sector, +sectors or +size{K,M,G} (62914560-125829119, 初期値 125829119):
初期値 125829119 を使います
Partition 4 of type Linux and of size 30 GiB is set

コマンド (m でヘルプ): t
パーティション番号 (1-4, default 4):
Hex code (type L to list all codes): L

0 空 24 NEC DOS 81 Minix / 古い Li bf Solaris
1 FAT12 27 Hidden NTFS Win 82 Linux スワップ c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 84 OS/2 隠し C: ド c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 85 Linux 拡張領域 c7 Syrinx 5 拡張領域 41 PPC PReP Boot 86 NTFS ボリューム da 非 FS データ 6 FAT16 42 SFS 87 NTFS ボリューム db CP/M / CTOS / . 7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux プレーン de Dell ユーティリ 8 AIX 4e QNX4.x 2nd part 8e Linux LVM df BootIt 9 AIX ブート可能 4f QNX4.x 3rd part 93 Amoeba e1 DOS access a OS/2 ブートマネ 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad ハ eb BeOS fs e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT f W95 拡張領域 (L 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/ 10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC 11 隠し FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor 12 Compaq 診断 5c Priam Edisk a9 NetBSD f4 SpeedStor 14 隠し FAT16 <32M 61 SpeedStor ab Darwin ブート f2 DOS セカンダリ 16 隠し FAT16 63 GNU HURD または af HFS / HFS+ fb VMware VMFS 17 隠し HPFS/NTFS 64 Novell Netware b7 BSDI fs fc VMware VMKCORE 18 AST SmartSleep 65 Novell Netware b8 BSDI スワップ fd Linux raid 自動 1b 隠し W95 FAT32 70 DiskSecure Mult bb 隠し Boot Wizar fe LANstep 1c 隠し W95 FAT32 75 PC/IX be Solaris ブート ff BBT 1e 隠し W95 FAT16 80 古い Minix Hex code (type L to list all codes): 83 Changed type of partition 'Linux' to 'Linux' コマンド (m でヘルプ): p Disk /dev/sda: 64.4 GB, 64424509440 bytes, 125829120 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト Disk label type: dos ディスク識別子: 0x000c5c14 デバイス ブート 始点 終点 ブロック Id システム /dev/sda1 * 2048 616447 307200 83 Linux /dev/sda2 616448 6907903 3145728 82 Linux swap / Solaris /dev/sda3 6907904 62914559 28003328 83 Linux /dev/sda4 62914560 125829119 31457280 83 Linux コマンド (m でヘルプ): w パーティションテーブルは変更されました! ioctl() を呼び出してパーティションテーブルを再読込みします。 WARNING: Re-reading the partition table failed with error 16: デバイスもしくはリソースがビジー状態です. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) ディスクを同期しています。 [/cc] リブートすると/dev/sda4が追加されます.

ファイルシステムを作成する

CentOS 7からxfsがデフォルトファイルシステムになりました.現在,マウントされているファイルシステムの「タイプ」を参照すると確認できます.
[cc]
# df -T
# mkfs.xfs -f /dev/sda4
meta-data=/dev/sda4 isize=256 agcount=4, agsize=1966080 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0 finobt=0
data = bsize=4096 blocks=7864320, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal log bsize=4096 blocks=3840, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[/cc]

マウントする

既に存在するマウントポイントに重複してマウントすることはできないようです(他に方法はあるようですが).そこで,今回は/hgfs下にsda4_mountディレクトリを作成し,そこに/dev/sda4をマウントし,さらに必要に応じてシンボリックリンクを張ることで対処します.
[cc]
# cd /mnt
# mkdir sda4_mount
# mount /dev/sda4 /mnt/sda4_mount/
[/cc]
最後に/etc/fstabを編集して,再起動後も常にmountされるようにします./etc/fstabを開き,最後に以下の様に追記ます.
[cc]
/dev/sda4 /mnt/sda4_mount/ xfs
[/cc]

シンボリックリンクを張る

/optを/mnt/sda4_mount/opt/にリンクすることを考えます.これは元々/optにソフトをインストールしようとしてディスク容量が不足したため,/optに拡張したディスクを充てたいという動機によります.
[cc]
# cd /mnt/sda4_mount
# mkdir opt
# cd /
# ln -s /mnt/sda4_mount/opt/ /
[/cc]
これはリブートしても消えません.

パーティションを削除する

パーティションを削除するにはfdiskコマンドを使います.例として,/dev/sda4を削除してみます.
[cc]
# fdisk -l ### 存在するパーティションを調べる
# fdisk /dev/sda ### /dev/sda4ではない
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

コマンド (m でヘルプ): d
パーティション番号 (1-4, default 4): 4
Partition 4 is deleted

コマンド (m でヘルプ): w
パーティションテーブルは変更されました!

ioctl() を呼び出してパーティションテーブルを再読込みします。

WARNING: Re-reading the partition table failed with error 16: デバイスもしくはリソースがビジー状態です.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
ディスクを同期しています。
[/cc]
リブートすると/dev/sda4が消えています.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください