In this post I will show you how to hot add a new VMDK to a Linux VM. I will also post how to remove a VMDK if necessary.
Hot Add a new VMDK
Add the new VMDK:
After you added the new VMDK login to the VM and run fdisk –l
[root@nagios ~]# fdisk -l
Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 2610 20860402+ 8e Linux LVM
The new disk isn’t available yet so we have to do a SCSI bus rescan. You can run the following command to do a rescan:
echo "- – -">/sys/class/scsi_host/host0/scan
When you run the fdisk –l command after the rescan, you will see the new disk.
[root@nagios ~]# fdisk -l
Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 2610 20860402+ 8e Linux LVM
Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdb doesn’t contain a valid partition table
The new disk doesn’t contain a valid parition table. This can be fixed with running the fdisk /dev/sdb command:
fdisk –l /dev/sdb n p 1 1 {enter} x b 1 128 w q
The options x b 1 128 will align the new parition. For more info about, see Bob Plankers his post here: http://lonesysadmin.net/2010/03/30/i-will-keep-saying-it-align-your-partitions/
Now we have a valid parition table but no file system. Run the mkfs.ext3 /dev/sdb1 command to accomplish this task:
[root@nagios ~]# mkfs.ext3 /dev/sdb1
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
1310720 inodes, 2620595 blocks
131029 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2684354560
80 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 39 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
Run the fdisk –l command to verify the new configuration:
[root@nagios ~]# fdisk -l
Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 2610 20860402+ 8e Linux LVM
Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 1305 10482381 83 Linux
if you want to auto mount the new disk, you have to create a new folder and add an entry to the /etc/fstab file.
mkdir /disk2
nano or vi /etc/fstab
add the following line:
/dev/sdb1 /disk2 ext2 defaults 1 2
Now you are ready to mount the new disk.
mount /dev/sdb1 /disk2/
These are all the steps.
Hot Remove a VMDK
If you want to remove an extra VMDK from a Linux VM,you need to follow these steps.
First you need to unmount the /dev/sdb1:
umount /dev/sdb1
Remove the /disk2 folder:
rmdir /disk2/
Remove the entry from the /etc/fstab:
nano or vi /etc/fstab
remove the following line:
/dev/sdb1 /disk2 ext2 defaults 1 2
Delete the device:
echo 1 > /sys/block/sdb1/device/delete
Remove the VMDK:
