Note:

Work with File Systems on Oracle Linux

Introduction

In the following tutorial, you’ll perform various tasks related to the Oracle Linux file system.

Objectives

Prerequisites

Note: When using the free lab environment, see Oracle Linux Lab Basics for connection and other usage instructions.

Verify the Block Volumes Exist

The free lab environment creates two additional block volumes during deployment and attaches them to the Oracle Linux instance.

  1. Open a terminal and connect via ssh to the ol-server node.

    ssh oracle@<ip_address_of_ol_server>
    
  2. Use the lsblk command to verify the block volumes are available on the system.

    lsblk
    

    Note: The command output shows three block devices: sda, sdb, and sdc.

List the Current Disk Partitions

  1. Display the current partition table and pipe the output to grep to list all /dev/sd disk devices.

    sudo fdisk -l | grep /dev/sd
    

    Note: The lab system has three disk devices, /dev/sda, /dev/sdb, /dev/sdc.

    • The device /dev/sda is a 46.6 GB disk containing three partitions of various types and sizes: /dev/sda1 is a 100 MB Extensible Firmware Interface (EFI partition), /dev/sda2 is a 1 GB Linux file system, with /dev/sda3 being a 45.5 GB Linux Logical Volume Manager (LVM).
    • Partitions /dev/sda1 and /dev/sda2 are the primary boot devices.
    • Partition /dev/sda3 is mapped to the root file system.
    • Disk device, /dev/sdb, is a 50 GB disk without any partitions.
    • Disk device, /dev/sdc, is a 50 GB disk without any partitions.
  2. Use the df command to list the mounted partitions. The order of the devices might be different, and some numbers might vary.

    df -h
    
    • The first partition, sda1, on the hard drive contains the Unified Extensible Firmware Interface (UEFI) boot loader files and is mounted on /boot/efi.
    • The second partition, sda2, is mounted on /boot.
    • The file systems mounted on / and /var/oled are logical volumes.

Create an MBR Partition

In this section, use the fdisk utility to create a Master Boot Record (MBR) partition.

  1. Use the fdisk command to partition /dev/sdb.

    sudo fdisk /dev/sdb
    

    The interactive program opens with a short statement on its use, information about the device selected, and a command prompt.

  2. Enter m at the prompt to display the fdisk menu.

    Note: The menu groups the available options by their function.

  3. Enter n to add a new MBR primary partition.

    • The MBR stores partition information at the beginning of a disk and is limited to four primary partitions.
    • One of the four partitions can be designated as an extended partition. This partition can then be subdivided into multiple logical partitions.
  4. Enter p, followed by the number 1 for the first primary partition.

  5. Press Enter to accept the default (2048) as the start of the first sector.

  6. Enter +500M to set the last sector using the size notation.

    fdisk returns a message telling you that the new partition is of the type ‘Linux’ with a size of 500 MiB.

  7. Enter p to print the new partition.

    Some of the information the print option displays is:

    • The disk device name: /dev/sdb1.
    • The disk label type: dos, which indicates an MBR partition table.
    • The partition type: Linux.
  8. Enter w to save the new partition.

    fdisk notes that the partition has changed, is being re-read by ioctl(), and that the disk is synchronizing.

  9. Use the fdisk -l command to list the partition table on /dev/sdb. The fdisk -l command uses the lowercase letter l option, and not the numeral 1.

    sudo fdisk -l /dev/sdb
    

Create a GPT Partition

  1. Use the fdisk -l command to list the current partitions on /dev/sdc.

    sudo fdisk -l /dev/sdc
    

    Note: The disk does not have any partitions.

  2. Use the fdisk command to create a GUID Partition Table (GPT) partition on /dev/sdc.

    sudo fdisk /dev/sdc
    
    • fdisk outputs the summary as it did before about the disk.
    • GPT partitions are ideal for disks larger than 2 TB.
    • In this lab, you use a 50 GB disk.
    • If this disk was larger than 2 TB, a warning displays affirming the size of the disk and indicating that it cannot be used as a DOS partition table.
  3. Enter g to add a new GPT partition.

    The output confirms the creation of a new GPT disk label.

  4. Enter n, followed by the number 1 for the first sector partition.

  5. Press Enter to accept the default (2048) as the start of the first sector.

  6. Enter Enter to set the last sector using the default size of 104857566.

    fdisk returns a message telling you of the new partition of the type ‘Linux’ with a size of 50 GiB.

  7. Enter p to print the new partition.

    Some of the information the print option displays is:

    • The disk device name: /dev/sdc1.
    • The disk label type: gpt, which indicates an GPT partition table.
    • The partition type: Linux.
  8. Enter w to save the new partition.

    fdisk notes that the partition changed, being re-read by ioctl(), and the disks are synchronizing.

Create an ext4 File System on the MBR Partition

In this section, you create a file system on /dev/sdb1.

  1. Use the mkfs command to make an ext4 file system on the disk and assign it the label of Test.

    sudo mkfs -t ext4 -L Test /dev/sdb1
    
  2. Use the blkid command to display the attributes of the /dev/sdb1 block device.

    blkid /dev/sdb1
    

Create a xfs File System on the GPT Partition

In this section, you create an xfs file system on /dev/sdc1.

  1. Use the mkfs command to make an xfs file system on the disk and assign it the label of Dev.

    sudo mkfs -t xfs -L Dev /dev/sdc1
    
  2. Use the blkid command to display the attributes of the /dev/sdc1 block device.

    blkid /dev/sdc1
    

Mount the File Systems

In this section, you create mount points and mount the file systems to the mount points.

  1. Use the mkdir command to create the mount points.

    sudo mkdir /Test
    sudo mkdir /Dev
    
    
  2. Use the mount command to mount /dev/sdb1 to /Test, and /dev/sdc1 to /Dev.

    sudo mount /dev/sdb1 /Test
    sudo mount /dev/sdc1 /Dev
    
    
  3. Use the df command to display the mounted file systems.

    df -h
    
  4. Use the mount command and pipe the output to grep to display the /Test file system.

    mount | grep /Test
    

    Note:

    • Notice that the output shows the default mount options on /Test.
    • Refer to the man mount page for more information on these and other mount options.
  5. Use the mount command and pipe the output to grep to display the /Dev file system.

    mount | grep /Dev
    

    Note: Refer to the man mount page for more information on these and other mount options.

  6. Use the command cat /proc/mounts to view the status of all mounted file systems. Pipe the output to tail and display the last six lines.

    cat /proc/mounts | tail -6
    

    The mounts file is part of the proc virtual file system. The mounts file, like other files in the /proc directory, does not exist. It is a representation of file system status in file form.

Update the fstab File

In this section, you update the /etc/fstab file to mount the new file systems on reboots.

  1. Use the blkid command to obtain the UUID values for /dev/sdb1 and /dev/sdc1 to use in the next step.

    blkid /dev/sdb1
    blkid /dev/sdc1
    
    

    Note: Oracle recommends using the device universally unique identifier (UUID) instead of /dev path names to avoid naming issues across reboots.

  2. Add the new entries to /etc/fstab and reload the systemd daemon.

    echo "$(blkid /dev/sdb1 | awk '{print $3}') /Test ext4  defaults  0 0" | sudo tee -a /etc/fstab
    echo "$(blkid /dev/sdc1 | awk '{print $3}') /Dev xfs  defaults  0 0" | sudo tee -a /etc/fstab
    sudo systemctl daemon-reload
    
    

    Updating the /etc/fstab automatically mounts included file systems after the system reboots. The systemd daemon needs to be reloaed for the system to see the changes to the /etc/fstab file.

    Important: If you add an iSCSI remote block volume, you must include the _netdev mount option or your instance will become unavailable after the next reboot.

  3. Use the umount command to unmount the file systems.

    sudo umount /Dev /Test
    
    
  4. Use the mount –a command to mount all file systems in /etc/fstab file.

    sudo mount -a
    
    
  5. Use the command df -h to verify your new file systems are mounted.

    df -h
    
    

Increase Swap Space

In this section, you increase the amount of swap space by creating, initializing, and enabling a swap file.

  1. Use the swapon command to display the current amount of swap space.

    swapon -s
    
    
  2. Use the command grep -i swap /proc/meminfo to display the amount of swap space.

    grep -i swap /proc/meminfo
    
    
  3. Use the free command to display the amount of swap space.

    free -h
    
    
  4. Use the dd command to create a swap file.

    sudo dd if=/dev/zero of=/.swapfile2 bs=1024 count=1048576
    
    
  5. Change the permissions on the swap file.

    sudo chmod 600 /.swapfile2
    
    

    The mkswap and swapon commands will display a warning about insecure permissions without this change as the file defaults to permissions of 0644.

  6. Use the mkswap command to initialize the swap file.

    sudo mkswap /.swapfile2
    
    
  7. Use the swapon command to enable swapping on the swap file.

    sudo swapon /.swapfile2
    
    
  8. Use the following commands to display the updated swap space.

    swapon -s
    grep -i swap /proc/meminfo
    free -h
    
    

If you need the additional swap space after a reboot, add the new swap file to the /etc/fstab file.

Remove Partitions and Additional Swap Space

In this section, you remove your partitions, remove the entries in the file system table, and remove the additional swap space.

  1. Remove the entries from /etc/fstab.

    sudo sed -i "/^$(blkid /dev/sdb1 | awk '{print $3}')/d" /etc/fstab
    sudo sed -i "/^$(blkid /dev/sdc1 | awk '{print $3}')/d" /etc/fstab
    sudo systemctl daemon-reload
    
    

    You can confirm the removal of the entries by running tail -n 5 /etc/fstab, which prints the last 5 lines of the file.

  2. Use the umount command to unmount the file systems.

    sudo umount /Dev /Test
    
    
  3. Use the fdisk command to delete the partition on /dev/sdb.

    sudo fdisk /dev/sdb
    
    
    1. Enter d to delete partition 1.

    2. Enter p to print the partition table and confirm there are no partitions.

    3. Enter w to save the partition table and exit the fdisk utility.

  4. Use the fdisk command to delete the partition on /dev/sdc.

    sudo fdisk /dev/sdc
    
    
    1. Enter d to delete partition 1.

    2. Enter p to print the partition table and confirm there are no partitions.

    3. Enter w to save the partition table and exit the fdisk utility.

  5. Use the parted command to change the label on /dev/sdc from gpt to msdos

    sudo parted /dev/sdc
    
    
    1. Enter mklabel msdos to create an msdos label.

    2. Enter Yes to continue.

    3. Enter print to the partition table to confirm the label change.

    4. Enter quit to exit the parted utility.

  6. Use the rmdir command to remove the /Dev and /Test mount point directories.

    sudo rmdir /Dev /Test
    
    
  7. Use the swapoff command to disable swapping to /.swapfile2.

    sudo swapoff /.swapfile2
    
    
  8. Use the rm command to remove /.swapfile2.

    sudo rm /.swapfile2
    
    

For More Information

More Learning Resources

Explore other labs on docs.oracle.com/learn or access more free learning content on the Oracle Learning YouTube channel. Additionally, visit education.oracle.com/learning-explorer to become an Oracle Learning Explorer.

For product documentation, visit Oracle Help Center.