I just added a big hard drive to my ESXi box and I created a virtual drive of about 3.5 TiB for a virtualized machine.   But I had a problem…

When I went to format it… using my typical method of using fdisk to create a partition I noticed a problem…

If I try to create the partion

> fdisk /dev/vdb

I get the following warning

Device does not contain a recognized partition table.

The size of this disk is 3.1 TiB (3435973836800 bytes). DOS partition table format can not be used on drives for volumes larger than 2199023255040 bytes for 512-byte sectors. Use GUID partition table format (GPT).

If I ignore the warning and partition and format the drive…

> fdisk /dev/vdb

I only get 2 TiB drive… I was warned J

So how do I fix this… How do I do it right?
I use gparted!

Formatting it right

A couple of resources I used https://www.thegeekdiary.com/how-to-create-a-partition-using-parted-command/ [1] and https://joshstrange.com/ubuntu-formatting-a-3tb-drive/ [2]

So here is how to do it J

Switch to root

> sudo su –

Start parted

> parted

Run the following commands from with gparted (replace XXX with your drive)

> select /dev/sdXXXX

> mklabel gpt

> print free

> mkpart pimary

Then set

ext4

Start? 0
End? 3.2 TB

Oops

Warning: The resulting partition is not properly aligned for best performance.

Let me cancel and run print free again

> print free

Let me try those numbers

> mkpart pimary

Then set

File system type? [ext2]? ext4

Start? 17.4kB

End? 3436GB

Close enough J Enter Yes

Hmmm

Reading through this https://blog.hqcodeshop.fi/archives/273-GNU-Parted-Solving-the-dreaded-The-resulting-partition-is-not-properly-aligned-for-best-performance.html [3]

> unit s
> print free
> mkpart pimary ext4 0% 100%> print

OK now it’s happy

Exit parted

> quit

 

> ls -alh /dev/sd*

There it is..

Format it

Replace XXX with your drive name

> mkfs.ext4 /dev/sdXXXX1

Now let me do a quick edit of /etc/fstab and mount it.

> vi /etc/fstab

And I put the following in it

/dev/sdb1 /test         ext4   rw,suid,dev,exec,noauto,nouser,async   0 0

> blkid -o list

> fdisk -l /dev/sdb1

Check it

Let me make a /test folder and mount it.

> mkdir /test

> mount /test

> df -h

Bam!! Wahoo!