How to Add a New Disk to an Existing Linux Server

As system administrators, we would have got requirements wherein we need to configure raw hard disks to the existing servers as part of upgrading server capacity or sometimes disk replacement in case of disk failure.

In this article, I will take you through the steps by which we can add the new raw hard disk to an existing Linux server such as RHEL/CentOS or Debian/Ubuntu.

Suggested Read: How to Add a New Disk Larger Than 2TB to An Existing Linux

Important: Please note that the purpose of this article is to show only how to create a new partition and doesn’t include partition extension or any other switches.

I am using fdisk utility to do this configuration.

I have added a hard disk of 20GB capacity to be mounted as a /data partition.

fdisk is a command line utility to view and manage hard disks and partitions on Linux systems.

# fdisk -l

This will list the current partitions and configurations.

Find Linux Partition Details

Find Linux Partition Details

After attaching the hard disk of 20GB capacity, the fdisk -l will give the below output.

# fdisk -l
Find New Partition Details

Find New Partition Details

New disk added is shown as /dev/xvdc. If we are adding physical disk it will show as /dev/sda based of the disk type. Here I used a virtual disk.

To partition a particular hard disk, for example /dev/xvdc.

# fdisk /dev/xvdc

Commonly used fdisk commands.

  • n – Create partition
  • p – print partition table
  • d – delete a partition
  • q – exit without saving the changes
  • w – write the changes and exit.

Here since we are creating a partition use n option.

Create New Partition in Linux

Create New Partition in Linux

Create either primary/extended partitions. By default we can have upto 4 primary partitions.

Create Primary Partition

Create Primary Partition

Give the partition number as desired. Recommended to go for the default value 1.

Assign a Partition Number

Assign a Partition Number

Give the value of the first sector. If it is a new disk, always select default value. If you are creating a second partition on the same disk, we need to add 1 to the last sector of the previous partition.

Assign Sector to Partition

Assign Sector to Partition

Give the value of the last sector or the partition size. Always recommended to give the size of the partition. Always prefix + to avoid value out of range error.

Assign Partition Size

Assign Partition Size

Save the changes and exit.

Save Partition Changes

Save Partition Changes

Now format the disk with mkfs command.

# mkfs.ext4 /dev/xvdc1
Format New Partition

Format New Partition

Once formatting has been completed, now mount the partition as shown below.

# mount /dev/xvdc1 /data

Make an entry in /etc/fstab file for permanent mount at boot time.

/dev/xvdc1	/data	ext4	defaults     0   0

Now you know how to partition a raw disk using fdisk command and mount the same.

We need to be extra cautious while working with the partitions especially when you are editing the configured disks. Please share your feedback and suggestions.

If You Appreciate What We Do Here On TecMint, You Should Consider:

TecMint is the fastest growing and most trusted community site for any kind of Linux Articles, Guides and Books on the web. Millions of people visit TecMint! to search or browse the thousands of published articles available FREELY to all.

If you like what you are reading, please consider buying us a coffee ( or 2 ) as a token of appreciation.

Support Us

We are thankful for your never ending support.

Lakshmi Dhandapani

I work on various platforms including IBM-AIX, Solaris, HP-UX, and storage technologies ONTAP and OneFS and have hands on experience on Oracle Database.

Your name can also be listed here. Got a tip? Submit it here to become an TecMint author.

RedHat RHCE and RHCSA Certification Book
Linux Foundation LFCS and LFCE Certification Preparation Guide
The Complete Linux System Administrator Bundle
Become an Ethical Hacker Bonus Bundle

You may also like...

29 Responses

  1. muhammad tayyab says:

    Hi there,

    I have a problem using Ubuntu. I have installed two hard drives one 128GB SSD and the other is 500 HD. On by default, I set 128 as a boot like using window and ubuntu at a time.

    I have a problem there is when I open window in dual boot mode all partition work normal and good but when I open ubuntu my 500 Gb disk cannot show on ubuntu platform what I happen.

    my all data exist on 500gb hard and I cannot see in ubuntu please guide some tricks

  2. Bhargvi says:


    I need to add another hard disk in rhel7 system and wanted to create a ‘sdb’ partition. May I know how to create it?

    • Ravi Saive says:


      Follow the same procedure as explained in this article, for adding new disk to an existing RHEL 7 system..

      • Bhargavi says:

        Thank you Ravi Saive

        I need to add graphically not a command line mode…..
        In graphical mode how to add the hard disk…

        • Ravi Saive says:


          I think you can do it by using any graphical disk management utility like Gparted or any other, that you need to find out..

  3. Arun says:

    You added 20 Gb Hard disk but in fdisk it is showing 21.5 GB. HOW??

  4. Sergio Satler says:

    Thanks Lakshmi! It’s very helpful!

  5. Manush says:

    Thanks Lakshmi. It worked well for my RHEL VM.

  6. Andrew says:

    Thanks — I was able to follow this guide and get my drive installed with no headaches at all!

    It might be useful to update with instructions to change the owner of the newly assigned drive. In Ubuntu 16.04, my freshly installed drive belonged to the user `root` and the group `root`. I just had to run `sudo chown : /dev/sda1` (in Ubuntu it seems both name and group are your login name) to get write access to the drive.

  7. Matthew Broadhead says:

    In your /etc/fstab consider using the UUID instead of the automatically assigned /dev/***.
    UUID can be found using blkid.

    e.g. fstab

    UUID=******-*******-******-******	/data	ext4	defaults     0   0
  8. Håkan Franzén says:

    Hi, before the command.

    # mount /dev/xvdc1 /data

    you should add: mkdir /data (if there is no /data)

Leave a Reply to Matthew Broadhead Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.