Linux: How to delete a partition with fdisk command

Posted on in Categories , , , , , , last updated July 30, 2007

Q. My system comes with pre installed Linux and XP. Now I would like to delete a partition. How do I delete a partition?

A. Hard disks can be divided into one or more logical disks called partitions. This division is described in the partition table found in sector 0 of the disk.

You need to use fdisk command. It is a menu driven program for creation and manipulation of partition tables. However this program needs the device name (hard disk name) to manipulate partitions. Usually you use following names
/dev/hda
/dev/hdb
/dev/sda
/dev/sdb

So,
=> /dev/hd[a-h] for IDE disks
=> /dev/sd[a-p] for SCSI disks
=> /dev/ed[a-d] for ESDI disks
=> /dev/xd[ab] for XT disks.

A device name refers to the entire hard disk. For more information see Linux partition naming convention and IDE drive mappings.

Before typing any one of the following command(s) make sure you have the backup of important data.

First, get a listing of your current partition scheme, type the following command:
# fdisk -l.
Output:

Disk /dev/hda: 20.0 GB, 20060651520 bytes
255 heads, 63 sectors/track, 2438 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1               1        1024     8225248+   b  W95 FAT32
/dev/hda2   *        1025        2438    11357955    c  W95 FAT32 (LBA)

Disk /dev/hdb: 80.0 GB, 80060424192 bytes
255 heads, 63 sectors/track, 9733 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hdb1   *           1        2432    19535008+  83  Linux
/dev/hdb2            2433        2554      979965   82  Linux swap / Solaris
/dev/hdb3            2555        6202    29302560   83  Linux
/dev/hdb4            6203        9733    28362757+   5  Extended
/dev/hdb5            6203        9733    28362726   83  Linux

From above output I have two hard disks:
=> /dev/hda – 20 GB
=> /dev/hdb – 80 GB

Let us assume that you want to remove a partition from /dev/hdb disk. Type the following command:
# fdisk /dev/hdb
Output:

The number of cylinders for this disk is set to 9733.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help):                                 

Now type p command to list partition:
Command (m for help): p
Output:

Disk /dev/hdb: 80.0 GB, 80060424192 bytes
255 heads, 63 sectors/track, 9733 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hdb1   *           1        2432    19535008+  83  Linux
/dev/hdb2            2433        2554      979965   82  Linux swap / Solaris
/dev/hdb3            2555        6202    29302560   83  Linux
/dev/hdb4            6203        9733    28362757+   5  Extended
/dev/hdb5            6203        9733    28362726   83  Linux

Now let us say you want to delete /dev/hdb3 (3rd partition). Type the d command to delete a partition:
Command (m for help): d
Partition number (1-4): 3

It will prompt you for the partition number. Type 3:

Verify that partition deleted:
Command (m for help): p

Now save the changes and exit to shell prompt. Type the w command:
Command (m for help): w

Reboot the system.

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin and a trainer for the Linux operating system/Unix shell scripting. He has worked with global clients and in various industries, including IT, education, defense and space research, and the nonprofit sector. Follow him on Twitter, Facebook, Google+.

30 comment

  1. hi…
    our organization having one server runing on Redhat Linux (scsi device).
    now i need to install fedora on that machine.
    1.Now my question is ,i can’t delete the older scsi partitions while i insert fedora cd ( to delete and to create partitions )
    is there any way to delete this scsi partitions…
    help me…
    with regards
    Annamalai

  2. i follow the tutorial above until step> Command (m for help): d
    Partition number (1-4): 3
    but then it prompt Warning:partition 3 has empty type
    i couldn’t delete the partition.

    please help
    thank

  3. The system can’t boot after restart !!

    WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
    The kernel still uses the old table.
    The new table will be used at the next reboot.
    Syncing disks.

  4. I followed all the steps suggested above, but when reboot my machine, it will not completely reboot. The following are the error showing:
    Checking filesystem:
    fsck.ext3: No such file or directory while trying to open /dev/sda7 [FAILED]

    /dev/sda7 was the partition I deleted. Any suggestion as to how I can resolve this will be highly appreciated. Thanks all in advance

  5. I am using Ubuntu bootable disk to delete the partition which has intalled Ubuntu. This is the only partition in my hard disk. The fdisk utility doest not respond to the command: “fdisk -l”, after sending this command, i get the command promp immediately below, without the system listing the partitions. As for “p” and “d” commands, the massage i get is “command not found”.
    PLEASE help

  6. I have dual boot( winxp and fedora 10 ) installed in my PC(i installed Xp first and then fedora). xp got corrupted due to some virus. now i can login to Fedora only. but really i need Xp.
    i tried to boot from WINDOWS installation disk but a blank screen is coming due to no partitions available.

    with the help of above command i am able to delete partition and able to boot Xp

    Thanks A Lot…

  7. Hello

    I want to ask, can we use fdisk to mount HDD aswell ?
    When using cfdisk to make partitions on my 2nd HDD, its cannot write my partition table as no partition is marked as bootable

    I dont want bootable partition but just for /home and /var on my 2nd HDD

  8. Hey, I enabled “developer mode” on my chromebook, and am trying to remove both sdc1 & 8 from my sandisk 64gb flash drive, labled sdc.I found out the partitions from the df command, but when I try to do anything with the fdisk command, it says “bash: fdisk: command not found”. What do I do.?? HELP!!!

Leave a Comment