By default, the new disks attached during the instance creation cannot be used directly. You need to format and mount it to your instance to put that in use.
In this article, I will explain how to format and mount an extra disk to your google compute engine VM instance.
Create and Attach a Disk to VM
If you don’t have an existing disk attached to the VM, you can create and attach one using gcloud CLI or the google cloud console.
In this example, I will use the gcloud CLI to create and attach the disk. If you don’t have gcloud installed, refer to this gcloud CLI setup guide for beginners.
Create a disk named data-disk
in the us-central1-a
zone. Ensure you create the disk in the same zone as your instance.
gcloud compute disks create data-disk \
--zone=us-central1-a \
--size=50GB \
--type=pd-standard
Attach the disk to the VM named demo-mount
gcloud compute instances attach-disk demo-mount \
--disk data-disk \
--zone=us-central1-a
Formatting and Mounting Extra Disk on VM Instance
Step 1: Log in to the instance and list the available extra disk using the following command.
sudo lsblk
An example output is shown below. All the extra disks will not have any entry under the MOUNTPOINT tab
. Here, sdb is
the extra disk that has to be formatted and mounted.
[devopscube@demo-mount ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 10G 0 disk └─sda1 8:1 0 10G 0 part / sdb 8:16 0 20G 0 disk
Step 2: Next, we should format the disk to ext4
using the following command. In the command below we are mentioning /dev/sdb
as that is the extra disk available.
sudo mkfs.ext4 -m 0 -F -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/sdb
Step 3: Next, create a mount directory on the instance as shown below. You can replace the /data-mount
with a custom name and path, you prefer.
sudo mkdir -p /data-mount
Step 4: Now, mount the disk to the directory we created using the following command.
sudo mount -o discard,defaults /dev/sdb /data-mount
If you list the block devices, you will see the mounted disk as shown below.
Step 5: If you want write permissions to this disk for all the users, you can execute the following command. Or, based on the privileges you need for the disk, you can apply the user permissions.
sudo chmod a+w /data-mount
Step 6: Check the mounted disk using the following command.
df -h
A sample output,
[devopscube@demo-mount]$ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 10G 2.3G 7.8G 23% / devtmpfs 842M 0 842M 0% /dev tmpfs 849M 0 849M 0% /dev/shm tmpfs 849M 8.4M 840M 1% /run tmpfs 849M 0 849M 0% /sys/fs/cgroup tmpfs 170M 0 170M 0% /run/user/1001 tmpfs 170M 0 170M 0% /run/user/0 /dev/sdb 20G 45M 20G 1% /demo-data
Automount GCP Disk On Reboot
To automount the disk on system start or reboots, you need to add the mount entry to the fstab
. Follow the steps given below for adding the mount to fstab
.
Step 1: First, back up the fstab
file.
sudo cp /etc/fstab /etc/fstab.backup
Step 2: Execute the following command to make a fstab
entry with the UUID of the disk.
echo UUID=`sudo blkid -s UUID -o value /dev/sdb` /data-mount ext4 discard,defaults,noatime
,nofail 0 2 | sudo tee -a /etc/fstab
Step 3: Check the UUID of the extra disk
sudo blkid -s UUID -o value /dev/sdb
Step 4: Open fstab
file and check for the new entry for the UUID of the extra disk
sudo cat /etc/fstab
Now, on every reboot, the extra disk will automatically mount to the defined folder based on the fstab
entry.
9 comments
Thanks a lot, it was very usefull
You are welcome, Augusto!
Why are you originally mounting the disk to `/demo-data`…
Then in the fstab file mounting it to `/mnt/disks/disk-1`…
Is this tutorial pieced together from two disparate ones?
Hello Mike ,
I don’t want format disk just the opposite i want to recovery my disk.How can i access second disk ?
Actually I had to use:
sudo mkfs.ext4 -m 0 -F -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/sdb
Thank you for this command. It was a complete struggle for me. I am a complete noob when it comes to linux disks and formatting. I really want to say thank you for this command and to the author for writing this article.
Thank Ken For the Update. For some reason, the syntax highlighter removes 0 from the command. I have updated it!
mount with noatime will give us some performance benefits.
Thanks Denny for the Info. Will add it in the article!