Screenshot_20260216_022334

Converting an Old NTFS Drive to ext4 on Arch Linux (The “Nuke and Pave” Method)

I recently decided to repurpose an internal 1TB hard drive that was formatted as NTFS for my Arch Linux system. I didn’t care about the existing data; I just wanted a clean, native Linux filesystem (ext4) to replace the old Windows structure.

It seemed straightforward, but I ran into a few hiccups—like the drive “remembering” it was NTFS, and some confusion around permissions after mounting. Here is the step-by-step process I used to get it running, mounted, and fully writable.

My Mounting Strategy

Before we start, a quick note on how I organize my drives. I prefer to mount them based on their size and type so I always know what I’m looking at. For example:

  • /mnt/1tbssd
  • /mnt/250gbssd
  • /mnt/1tbhdd (The drive we are fixing today)

You can name your mount points whatever you like, but I find hardware-based naming helps when managing multiple disks.

Step 1: Identify the Drive

First, ensure you are targeting the correct physical drive. I used lsblk to list all block devices.

Bash

lsblk

In my case, the 1TB HDD was /dev/sdc. Warning: Double-check this identifier. The next steps will permanently destroy all data on that specific drive.

Step 2: The Partition Table (cfdisk)

I used cfdisk because it offers a visual interface in the terminal.

Bash

sudo cfdisk /dev/sdc
  1. Select the gpt label type.
  2. Delete the existing NTFS partitions.
  3. Create a [ New ] partition using the full size of the disk.
  4. Important: Verify the [ Type ] is set to “Linux filesystem”.
  5. Select [ Write ], type yes, and [ Quit ].

The Hiccup: “It still thinks it’s NTFS?”

cfdisk rewrites the partition map, but it doesn’t scrub the actual data on the disk. When I tried to format the drive, the system warned me that it still detected NTFS signatures.

Step 3: Formatting (The Fix)

The fix is to force the format. I ran the mkfs command for ext4 on the new partition (/dev/sdc1):

Bash

sudo mkfs.ext4 /dev/sdc1

The system threw this warning:

/dev/sdc1 contains a ntfs file system labelled 'Main Storage' Proceed anyway? (y,N)

I typed y and hit Enter. This overwrote the old NTFS headers with a fresh ext4 filesystem.

Step 4: Create the Mount Point

I created the folder where the drive will live.

Bash

sudo mkdir -p /mnt/1tbhdd

Step 5: Automounting (fstab)

To make the drive mount automatically on boot, I added it to /etc/fstab.

First, I grabbed the UUID:

Bash

sudo blkid

(Copy the string after UUID= for your partition).

Then I edited fstab:

Bash

sudo nano /etc/fstab

And added this line at the bottom:

Plaintext

# 1TB HDD Storage
UUID=your-uuid-here   /mnt/1tbhdd   ext4   defaults   0 2

Step 6: Test Without Rebooting

Instead of rebooting to test if it worked, you can tell the system to mount everything listed in fstab immediately:

Bash

sudo mount -a

Troubleshooting Note: If you run this without sudo, you will get an error saying mount: /mnt/1tbhdd: must be superuser to use mount. Mounting drives is a system admin task, so you always need sudo!

Step 7: The Final “Root Ownership” Fix

This is where I got stuck for a minute. After running the mount command, I tried to create a folder on the new drive, but I couldn’t.

If you run ls -l /mnt/1tbhdd, you’ll see the drive is owned by root.

This is normal for ext4. Permissions are stored inside the filesystem. Since root formatted the drive, root owns the drive.

To fix this, you must change ownership while the drive is mounted:

Bash

sudo chown -R $USER:$USER /mnt/1tbhdd

Now, the drive belongs to you. Because this change is written to the filesystem itself, it will “stick” and you won’t have to do it again, even after rebooting.

Add a Comment

You must be logged in to post a comment