How to Install and Use TestDisk Data Recovery Tool in Linux

TestDisk is a free and opensource, command-line data recovery tool that is used to recover data from deleted or lost partitions. Further, you can use it to revive non-bootable partitions which can be caused by factors such as accidental deletion of partition tables, and malware attacks to mention a few.

The command-line software was written in C programming languages by Christophe Granier and licensed under the GNU/GPLv2 license. TestDisk is a cross-platform tool and runs on almost any desktop operating system: Linux, Windows, macOS, FreeBSD, OpenBSD, and even NetBSD.

What Can TestDisk do?

TestDisk is a powerful, and lightweight software tool that comes with a myriad of data recovery applications as outlined below:

  1. TestDisk is able to repair a corrupt or damaged partition table.
  2. It can seamlessly recover a deleted disk partition.
  3. It restores files from Windows filesystems such as NTFS, FAT, FAT32, exFAT and ext2 Linux filesystem.
  4. It can copy files from deleted or corrupt Windows filesystems such as NTFS, FAT32, and exFAT and Linux partitions (ext2, ext3, and ext4).
  5. TestDisk can recover and rebuild the NTFS, FAT32 and FAT16 boot sectors from their backups.
  6. TestDisk can also repair corrupt FAT32 tables as well as the MFT by riding with the help of the MFT mirror.

In this article, we will show you how to install the TestDisk data recovery utility to recover an unbootable partition on Linux.

How to Install TestDisk on Linux

The package TestDisk is available to install from the default system repositories in most Linux distribution using the default package manager as shown.

Install TestDisk on Debian and Ubuntu

To start off, update the system packages and install TestDisk as shown.

$ sudo apt update
$ sudo apt install testdisk
Install Testdisk on Ubuntu and Debian
Install Testdisk on Ubuntu and Debian

To verify that Testdisk is installed and display more information by running the following dpkg command.

$ sudo dpkg -l testdisk
Verify TestDisk on Ubuntu
Verify TestDisk on Ubuntu

Install TestDisk on RHEL and CentOS

To install TestDisk, first, enable EPEL repository and then install TestDisk as shown.

------------ On RHEL/CentOS 7 ------------
# yum install epel-release
# yum update
# yum install testdisk

------------ On RHEL/CentOS 8 ------------
# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
# yum update
# yum install testdisk
Install TestDisk on CentOS and RHEL
Install TestDisk on CentOS and RHEL

To verify that Testdisk is installed and display more information about the TestDisk tool run the following rpm command.

# rpm -qi testdisk
Verify TestDisk on CentOS
Verify TestDisk on CentOS

Install TestDisk on Fedora and Arch Linux

For Fedora systems run.

$ sudo dnf install testdisk

For Arch Linux run:

$ sudo pacman -S testdisk

If no suitable package is found for your Linux distribution, download TestDisk from its official site.

How to Run and Use TestDisk in Linux

Since testdisk is run from the command line, run the command below to display the partitions on your system.

# testdisk /list
TeskDisk Check Partitions
TeskDisk Check Partitions

Now, assume your Linux partition table is lost or corrupt. To restore the Linux partition using TestDisk first run.

# testdisk
Run TestDisk on Linux
Run TestDisk on Linux

Select ‘Create‘ and hit ENTER. This will display a list of partitions to choose from. In your case, your partitions will be different from what is displayed below.

TestDisk Select Partition
TestDisk Select Partition

Next, select the ‘Proceed‘ at the bottom to go on to the next options.

Proceed to Recover Partition
Proceed to Recover Partition

Your system will automatically detect the partition table type you are using. In my case, it is ‘Intel‘. Hit ENTER to continue.

TestDisk Select Partition Table
TestDisk Select Partition Table

In the next section, select the ‘Analyse‘ option for the testdisk utility to probe your partition structure.

TestDisk Analyze Partition
TestDisk Analyze Partition

If No bootable partition is found on the Disk, the error below will be printed.

Partition                  Start        End    Size in sectors
No partition is bootable

*=Primary bootable  P=Primary  L=Logical  E=Extended  D=Deleted

[Proceed ]

Select ‘Proceed‘ option.

A list of available partitions will be displayed on the next screen. Hit ‘ENTER‘ to continue to the next screen.

Select the ‘write‘ option on the next screen. This option will trigger TestDisk to write on the partition table.

Next, press Y to confirm as shown below.

Write partition table, confirm ? (Y/N)

TestDsk will prompt you to reboot your system for the changes to take effect.

You will have to reboot for the change to take effect.

Select the OK option.

On the next screen select ‘Quit‘ to leave the menu and finally select ‘Quit‘ again to exit the TestDisk program.

All you have to do now is to reboot your system. If all went well, the new partition table should allow the system to boot normally.

Read Also: How to Recover Deleted Files Using TestDisk in Linux

Conclusion

TeskDisk is an ideal tool when you want to unerase data from corrupt partitions or revive unbootable partitions and get them to boot as expected. It supports a vast range of file systems and can work in any operating system: from Windows to Linux.

In this guide we illustrated how to recover an unbootable partition using TestDisk, however, the tool can be used for so much more!

Hey TecMint readers,

Exciting news! Every month, our top blog commenters will have the chance to win fantastic rewards, like free Linux eBooks such as RHCE, RHCSA, LFCS, Learn Linux, and Awk, each worth $20!

Learn more about the contest and stand a chance to win by sharing your thoughts below!

James Kiarie
This is James, a certified Linux administrator and a tech enthusiast who loves keeping in touch with emerging trends in the tech world. When I'm not running commands on the terminal, I'm taking listening to some cool music. taking a casual stroll or watching a nice movie.

Each tutorial at TecMint is created by a team of experienced Linux system administrators so that it meets our high-quality standards.

Join the TecMint Weekly Newsletter (More Than 156,129 Linux Enthusiasts Have Subscribed)
Was this article helpful? Please add a comment or buy me a coffee to show your appreciation.

11 Comments

Leave a Reply
  1. What do I do when I install testdisk and see this at the end?

    Running `brew cleanup testdisk`…
    Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
    Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`

    I installed it on MacBook Apple Silicone.

    Reply
  2. I screwed up!

    I intended to work exclusively with /dev/sdb (the second drive attached to my MSI PC which has a complicated layout with GRUB2 installed) and I was using “fdisk“. I think it might be a great idea to have a lock option on “fdisk” to restrict the write/save things to a specific drive unless you know for sure where you are writing the new partition layout.

    I had been working on a recovery operation for several hours – when I made my mistake. So I removed the USB disk drive and plugged in a spare device – 256 GB SAMSUNG.

    I was able to install the PenDrive software on it. The PenDrive installation software only runs under Windows but the resulting PenDrive is then bootable and supports whatever you have installed (by a selection tree).

    There is a wide selection of things you can install from the internet. So I installed “Hirens” and “LXLE” and I am now writing this using the LINUX LXLE installed on my PenDrive

    I did the install using the “apt” admin toolset as LXLE supports the “apt” command set. The system was able to download the “universe” if it was not installed earlier.
    It needed to run ‘apt update‘ before you could run ‘apt install testdisk‘.

    Right now I’m using SeaMonkey to browse the internet. The terminal service is called “Sakura“. Testdisk is running Analysis and is up to about 20% in its search. If I lose the whole drive due to this big MISTAKE I will learn from it, and backup ALL the drives partition layouts before I start FIXING things.

    In SUMMARY – it was my mistake on my machine while working on producing a PenDrive on that USB3.1 SAMSUNG 256GB.

    The USB backup solution would have been “so easy” to recover – I lost time and I lost my pride, but I keep learning.

    Reply
  3. Small Typo.

    To verify that Testdisk is installed and display more information by running the following dpkg command.

    $ sudo dpkg-l testdisk
    

    You need a space between dpkg and -l.

    Reply
  4. If it “requires no installation whatsoever”, why all the installation instructions? Your article “How to Recover Deleted Files Using TestDisk in Linux” specifically instructs the user to use this article as a guide to INSTALL TestDisk before attempting to undelete lost files.

    Reply
      • A quote directly from your article “How to Recover Deleted Files Using TestDisk in Linux”. Emphasis is mine.

        “To use testdisk, you MUST have TestDisk installed on your Linux system using our article: How to Install and Use TestDisk Data Recovery Tool in Linux.”

        A quote from the last line of the second paragraph in this article, again with my emphasis:
        “It’s easy to use and REQUIRES NO installation whatsoever.”

        There definitely is a contradiction between the two quotes. Which quote represents the true state of affairs?

        Reply
  5. It seems to me it is a limited recovery tool as it needed to be installed in the faulty computer in order to recover data. Probably it would be better that this software was created to be installed in an external bootable device, such as a dvd or flash drive.

    Reply
    • You ca always install TestDisk utility ahead of time just in case you lose a file and need to recover it. It does not take much disk space and may come in handy when you least expect it.

      Reply

Got Something to Say? Join the Discussion...

Thank you for taking the time to share your thoughts with us. We appreciate your decision to leave a comment and value your contribution to the discussion. It's important to note that we moderate all comments in accordance with our comment policy to ensure a respectful and constructive conversation.

Rest assured that your email address will remain private and will not be published or shared with anyone. We prioritize the privacy and security of our users.