Format and mount a non-boot disk on a Linux VM (original) (raw)

Format and mount a non-boot disk on a Linux VM

Stay organized with collections Save and categorize content based on your preferences.

Linux


If you attached a new, blank disk to your VM, before you can use it you must format and mount the disk. If you attached a disk that already contains data, then you must mount the disk before you can use it.

Before you begin

Connect to the VM

  1. Go to the VM instances page.
    Go to the VM instances page
  2. Click the SSH button next to the instance that has the new attached disk. The browser opens a terminal connection to the VM.

Permissions required for this task

To perform this task, you must have the followingpermissions:

If you are connecting to a VM instance that can run as a service account, you must also grant the roles/iam.serviceAccountUser role.

  1. In the terminal, use the symlink created for your attached disk to determine which device to format.
 ls -l /dev/disk/by-id/google-*  

Unformatted disks don't have additional symlinks with-partN in the name.

 google-extra-scsi-disk -> ../../sdb  
 google-instance-2 -> ../../sda  
 google-instance-2-part1 -> ../../sda1  
 google-instance-2-part14 -> ../../sda14  
 google-instance-2-part15 -> ../../sda15  
 google-local-nvme-ssd-0 -> ../../nvme0n1  
 google-local-nvme-ssd-1 -> ../../nvme0n2  

In this example, the new Persistent Disk was created with the nameextra-scsi-disk. The device name for the new disk is sdb. 2. Format the disk device using themkfs tool. This command deletes all data from the specified disk, so make sure that you specify the disk device correctly.
You can use any file format that you need, but we recommend a singleext4 file system without a partition table. You canincrease the size of your disk later without having to modify disk partitions.
To maximize disk performance, use the recommended formatting options with the -E flag. It is not necessary to reserve space for the root volume on this secondary disk, so specify -m 0 to use all of the available disk space. The following command formats the entire disk with no partition table.
$ sudo mkfs.FILE_SYSTEM_TYPE -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/DEVICE_NAME

Replace the following:

Mount the disk

  1. Create a directory that serves as the mount point for the new disk on the VM. You can use any directory. The following example creates a directory under/mnt/disks/.
    $ sudo mkdir -p /mnt/disks/MOUNT_DIR
    Replace MOUNT_DIR with the directory at which to mount disk.
  2. Use the mount toolto mount the disk to the instance, and enable the discard option:
    $ sudo mount -o discard,defaults /dev/DEVICE_NAME /mnt/disks/MOUNT_DIR
    Replace the following:
    • DEVICE_NAME: the device name of the disk to mount.
    • MOUNT_DIR: the directory in which to mount your disk.
  3. Configure read and write permissions on the disk. For this example, grant write access to the disk for all users.
    $ sudo chmod a+w /mnt/disks/MOUNT_DIR
    Replace MOUNT_DIR with the directory where you mounted your disk.

Configure automatic mounting on VM restart

Add the disk to your /etc/fstab file, so that the disk automatically mounts again when the VM restarts. On Linux operating systems, the_device name_ can change with each reboot, but the device UUID always points to the same volume, even when you move disks between systems. Because of this, we recommend using the device UUID instead of the device name to configure automatic mounting on VM restart.

  1. Create a backup of your current /etc/fstab file.
    $ sudo cp /etc/fstab /etc/fstab.backup
  2. Use the blkid command to list the UUID for the disk.
    $ sudo blkid /dev/DEVICE_NAME
    /dev/DEVICE_NAME: UUID="a9e1c14b-f06a-47eb-adb7-622226fee060" BLOCK_SIZE="4096"
    TYPE="ext4" PARTUUID="593b3b75-108f-bd41-823d-b7e87d2a04d1"
    Replace the following:
    • DEVICE_NAME: the device name of the disk that you want to automatically mount. If you created a partition table on the disk, specify the partition that you want to mount by adding the suffix appended to the device name. For example, if sdb is the device name for the disk, sdb1 might be the name for the partition.
  3. Open the /etc/fstab file in a text editor and create an entry that includes the UUID. For example:
    UUID=UUID_VALUE /mnt/disks/MOUNT_DIR FILE_SYSTEM_TYPE discard,defaults,MOUNT_OPTION 0 2
    Replace the following:
    • UUID_VALUE: the UUID of the disk, listed in the output of the previous step
    • MOUNT_DIR: the directory where you mounted your disk
    • FILE_SYSTEM_TYPE: the file system type. For example, ext2, ext3, ext4, or xfs.
    • MOUNT_OPTION: specifies what the operating system does if it cannot mount the zonal persistent disk at boot time. For valid values, see The fourth field in the Linux fstabdocumentation. To let the system boot even if the disk is unavailable, use the nofailmount option.
  4. Use the cat command to verify that your /etc/fstab entries are correct:
    $ cat /etc/fstab
    UUID=6B33-A686 /boot/efi vfat defaults 0 0
    UUID=UUID_VALUE /mnt/disks/MOUNT_DIR FILE_SYSTEM_TYPE discard,defaults,MOUNT_OPTION 0 2

Always keep the /etc/fstab file in sync with the devices that are attached to a VM. If you want to detach a disk or create a snapshot from the boot disk for a VM, edit the /etc/fstab file and remove the entry for the disk. Even if you set MOUNT_OPTION to nofail or nobootwait, remove the entry before you create your boot disk snapshot or detach the disk.

What's next