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?
It looks like a direct conversion from NTFS to ext4, but internally the procedures are:
- Shrink the NTFS partition
- Create an ext4 partition in the empty space
- Move data from NTFS to ext4 until ext4 is full
- If NTFS is empty (all data was moved), go to step 8
- Shrink NTFS
- Enlarge ext4
- Repeat steps 3 to 6 until done
- Delete NTFS partition
- Move ext4 partition to NTFS' orignal place
- 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.
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.