37

I have 2 TB of data on an NTFS drive which I would like to convert to EXT4 filesystem. My OS runs on a (comparatively) small 60GB SSD. Is there any way to convert the filesystem, apart from backing up and reformatting?

41

Just for the record, there is a software (actually, a mini-distro) that does exactly the procedure arrange said in enzotib's answer:

Parted Magic

It looks like a direct conversion from NTFS to ext4, but internally the procedures are:

  1. Shrink the NTFS partition
  2. Create an ext4 partition in the empty space
  3. Move data from NTFS to ext4 until ext4 is full
  4. If NTFS is empty (all data was moved), go to step 8
  5. Shrink NTFS
  6. Enlarge ext4
  7. Repeat steps 3 to 6 until done
  8. Delete NTFS partition
  9. Move ext4 partition to NTFS' orignal place
  10. Trim ext4 partition to NTFS' original size

So the more occupied your NTFS partition is, the longer it will take. If it is less than 50%, it will convert in one pass, in a single shrink-copy-enlarge iteration.

Although Parted Magic conveniently automates all of this, it is still essentially the same procedures described by arrange, so it is very risky and very time consuming. Backup-format-restore is much safer and much faster.

2
  • And @enzotib for the original answer, obviously
    – MestreLion
    May 22 '12 at 10:07
  • 4
    FYI, PartedMagic does NOT have a tool to automate the conversion from NTFS to EXT4. This is comfirmed by a PartedMagic admin themselves on their forum. The only way to do this is manually as mentioned. > From PartedMagic forums: > > Patrick Verner: I think this is the post: > askubuntu.com/questions/63022/convert-filesystem-ntfs-ext4 > > It's impossible to convert NTFS to EXT4. You have to do it like the > link above. As far as the "automate" comment, I have no idea what is > meant by that. Maybe he was taking about using GParted.
    – Dulanic
    Aug 1 '15 at 15:12
11

No, there is no way that I am aware of.

The only way, as you said, is to backup->format->restore.

4
  • 7
    Or defragment->shrink->make a new ext4 partition->copy data ntfs→ext4->delete the ntfs partition->enlarge ntfs. Risky and not nice.
    – arrange
    Sep 26 '11 at 9:14
  • 3
    @arrange, you mean "enlarge ext4", right? and not "enlarge ntfs" in the last step of your instructions...
    – rigved
    Sep 26 '11 at 9:59
  • 2
    @rigved: yes, enlarge ext4, thanks, can't edit the original comment anymore...
    – arrange
    Sep 26 '11 at 10:05
  • ok the drive is full, so it looks like buying a new drive is the only option ..
    – wim
    Sep 27 '11 at 12:17
6

Actually there IS a way to do this almost directly.

You could easily convert NTFS to ext2 / ext3 with anyconvertfs from anyfs-tools

Then you could convert it to ext4 using tune2fs.

2
  • 2
    I have been misled by this answer. The man page doesn't state it can convert to ntfs, and the tool is not maintained since 2010. I could not compile the 6 latters versions of anyfs-tools for ubuntu 12.04 environement. May 9 '13 at 20:44
  • 1
    Actually question was about converting FROM ntfs, not to ntfs. And man page states that it could: anyconvertfs. Besides, I successfully converted partition with it on Gentoo.
    – PASAf
    Aug 24 '13 at 9:27
3

Another alternative is https://github.com/cosmos72/fstransform

Which is also available in the repos, so installable with:

sudo apt-get install fstransform

Please read through the documentation as it is a risky procedure.

1
  • "In particular, they do NOT (yet) support ntfs, msdos, vfat and exfat file systems."
    – RedEyed
    Mar 18 '18 at 11:15
0

Old post so I hope someone finds this useful. This might take a long time.

Open gparted and right click the partition in question, click resize and shrink it to just a few GB above what's in there. Create an ext4 partition.

Mount both partitions and copy/move as many files as you can from the ntfs to the ext4.

If you move the files, you free up space on the ntfs partition.

Unmount both (I don't think this works if mounted) and go back to gparted. Repeat step one to shrink the ntfs as far as you can, again leave a couple of GB wiggle room. Enlarge the ext4 partition.

Mount the partitions again and go back to moving files.

Rinse and repeat until all files have been successfully moved.

If need be, you could use a couple of GB of your SSD to free up enough space on the ntfs partition... But remember that the more free space available, the faster this will go.

Once you have repeated this enough times, delete the ntfs partition and enlarge the ext4 to fill the entire drive.

This SHOULD work with any filesystem supported by Linux, but I have only tested it with ext4/ntfs.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.