Vmware’s esxi server lets you convieniently Add and remove virtual Hardware on a GuestOS via the intuitive Vcenter or Vsphere Interface. However once a piece of virtual harder is added to a GuestOS, that guestOS still need to handle the installation of the hardware like it normally would.
Lets walk through installing a new harddrive on a fedora Guest OS.
The first step is to add the new virtual drive. To do this, right click on the GuestOS in Vcenter or Vsphere. Select
Edit Settings. In the popup Click
Add. Choose Hard Disk and follow the prompts.
Now its time to add the hardware in the guest os. Click the console tab in Vcenter.
Before you format the NEW hard drive, you need to partition it as a Linux file system. Let’s use fdisk utility to partition the NEW hard drive.
[root@localhost root]# fdisk /dev/sdb The number of cylinders for this disk is set to 19457. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Command (m for help):
Type m to see the menu first.
Command (m for help): m Command action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition l list known partition types m print this menu n add a new partition o create a new empty DOS partition table p print the partition table q quit without saving changes s create a new empty Sun disklabel t change a partition's system id u change display/entry units v verify the partition table w write table to disk and exit x extra functionality (experts only) Command (m for help):
Type p to print the current partition table.
Command (m for help): p Disk /dev/hdb: 160.0 GB, 160041885696 bytes 255 heads, 63 sectors/track, 19457 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System Command (m for help):
Notice it has an empty partition table since it’s a brand NEW hard drive.
Type n to add new partition and p to choose primary partition
Command (m for help): n Command action e extended p primary partition (1-4) p
Type 1 for first partition and press enter for first cylinder and enter again for last cylinder to accept the default.
Partition number (1-4): 1 First cylinder (1-19457, default 1): Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-19457, default 19457): Using default value 19457 Command (m for help):
Type p again to print current partition table.
Command (m for help): p Disk /dev/hdb: 160.0 GB, 160041885696 bytes 255 heads, 63 sectors/track, 19457 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdb1 1 19457 156288321 83 Linux Command (m for help):
Notice, now we have Linux file system created in the partition table.
To save this new partition table, type w.
Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. [root@localhost root]#
Notice, you have also exited from fdisk utility.
Now that you have created Linux partition, it’s time to format the partition on the hard drive.
Let’s use mkfs.ext4 utility to format the partition as EXT3 file system which is EXT2 file system with journaling capabilities.
Also let’s label the partition as /home2
[root@localhost root]# mkfs.ext4 -L /home2 /dev/hdb1 mke2fs 1.34 (25-Jul-2003) Filesystem label=/home2 OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 19546112 inodes, 39072080 blocks 1953604 blocks (5.00%) reserved for the super user First data block=0 1193 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, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872 Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 23 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. [root@localhost root]#
In order to mount new partition labeled /home2 automatically during the reboot, type following line in red in the /etc/fstab file
[root@localhost root]# vi /etc/fstab LABEL=/ / ext3 defaults 1 1 LABEL=/boot /boot ext3 defaults 1 2 LABEL=/home2 /home2 ext4 defaults 1 2 none /dev/pts devpts gid=5,mode=620 0 0 none /proc proc defaults 0 0 none /dev/shm tmpfs defaults 0 0 /dev/hda6 swap swap defaults 0 0 /dev/cdrom /mnt/cdrom udf,iso9660 noauto,owner,kudzu,ro 0 0 /dev/cdrom1 /mnt/cdrom1 udf,iso9660 noauto,owner,kudzu,ro 0 0 /dev/dvd /mnt/dvd udf,iso9660 noauto,owner,kudzu,ro 0 0 /dev/dvd1 /mnt/dvd1 udf,iso9660 noauto,owner,kudzu,ro 0 0 /dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0 /dev/sda1 /mnt/sda auto noauto,owner,users 0 0 /dev/sdb1 /mnt/sdb auto noauto,owner,users 0 0 /dev/sdc1 /mnt/sdc auto noauto,owner,users 0 0
BTW, 1 in the fifth field is used to determine if this filesystem will be backed up by the dump command and 2 in the sixth field is used to determine if this filesystem will be checked by the fsck program at the reboot time. Normally 1 is used for root filesystem (/) and 2 is used for non-root file system (/home2).
It’s almost done but before you reboot the system. Make sure to create a directory “/home2” as a mount point.
[root@localhost root]# mkdir /home2 [root@localhost root]#
Now, it’s done! Reboot the system and see if the partition on the NEW hard drive has been mounted.
[root@localhost root]# df -h Filesystem Size Used Avail Use% Mounted on /dev/hda5 70G 57G 9.7G 86% / /dev/hda3 99M 55M 40M 59% /boot /dev/sdb1 147G 33M 140G 1% /home2 none 252M 0 252M 0% /dev/shm [root@localhost root]#