When you google for information about converting NTFS to ext2/3/4,
you will find many pages saying it’s impossible.
Actually, it’s possible, and rather simple to perform this conversion.
The command to perform this conversion is “anyconvertfs”,
which is part of the “anyfs-tools” package.
[root@blaatkonijn andre]# anyconvertfs /dev/sdd1 ext3
Converting of “/dev/sdd1” from fuseblk to ext3
New filesystem label: “”
Old filesystem blocksize: 4096
Blocksize for new filesystem: 4096
Mount point: “/tmp/anyconvertfs2910/mountpoint”
Mount options: “rw”
Temporary directory: “/tmp/anyconvertfs2910”
Inode table: “/tmp/anyconvertfs2910/inodetable”
First step which destroy old filesystem: 5
Rescue List: “/tmp/anyconvertfs2910/rescue.list”
Rescue Directory: “/tmp/anyconvertfs2910/rescue”
Please, attentively check information above,
and then press Enter
Step 1. Building inode table (with build_it).
build_it 0.85.1c (19 Jun 2010)
creating inode table: 99.84% (18383/18413) done
Done
Step 1a. Rescue (copy) files not aligned with block boundaries.
Done
Step 2. Noops (check if enough space) reblock anyfs (with reblock).
Good. Filesystem already has 4096 blocksize
Skip
Step 3. Reblock anyfs (with reblock).
Skip
Step 4. Noops (check if enough space) build new filesystem (with “build_e2fs”).
build_e2fs 0.85.1c (19 Jun 2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
61063168 inodes, 122096000 blocks
6104800 blocks (5.00%) reserved for the super user
First data block=0
3727 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000
Starting search of info blocks at system blocks
Search user info at system blocks: 99.99% (122084808/122096000) done
Releasing blocks of system info successful
Starting building ext2fs filesystem
building inodes: 100.00% (135772/135776) done
Creating journal (32768 blocks):
Done
Step 5. Build new filesystem (with “build_e2fs”).
Sleep 7 seconds… It’s your last chance to save the old filesystem.
Press Ctrl+C to cancel converting.
7…6…5…4…3…2…1…0…
build_e2fs 0.85.1c (19 Jun 2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
61063168 inodes, 122096000 blocks
6104800 blocks (5.00%) reserved for the super user
First data block=0
3727 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000
Starting search of info blocks at system blocks
Search user info at system blocks: 99.99% (122084808/122096000) done
Releasing blocks of system info successful
Writing inode tables: 99.97% (3726/3727) done
Starting building ext2fs filesystem
building inodes: 100.00% (135772/135776) done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 32 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
Done
Step 5a. Move rescued files to new filesystem.
Done
Inode table was saved. See “/tmp/anyconvertfs2910/inodetable”.
rmdir: failed to remove `/tmp/anyconvertfs2910′: Directory not empty
Successful
I've converted my 2nd disk too. This was a 1.5 TB disk. The conversion took up to 8 hours, and it seemed to be hanging during step 1. Please be patient.
I installed it but the post_install message on archlinux was
>> build_e2fs tool temporary disabled
and when I run the command you said above, it says build_e2fs cannot be found…
Any ideas on what to do?
Thanks!
My apologies for replying this late.
It seems there has been some API change preventing the build_e2fs tool from being built. It looks like this “temporary disabling” happened on 23 February 2012. It looks like the anyfs-tools aren’t under active development anymore, so I don’t expect patches to come up with the new API. As for now, I suggest booting an older OS still using the old APIs.