TODO (fstransform-0.9.3-src) | : | TODO (fstransform-0.9.4) | ||
---|---|---|---|---|
TODO | TODO | |||
* fstransform, fsmove: add persistence, i.e. the ability to resume a transformat | * fstransform: preserve filesystem LABEL and UUID. To collect them, | |||
ion | run "lsblk -r -o maj:min,label,uuid" warning: special | |||
after CTRL-C, power failure or similar interruptions | characters in label and uuid will be escaped as \xAB | |||
* all: test on more file systems | ||||
nilfs: ok as target. | ||||
as source it gets practically full very quickly, free space fluctu | ||||
ates | ||||
between zero and 1GB while the GC works to avoid "disk full" error | ||||
s. | ||||
But it works :) | ||||
ntfs: ntfs-3g is VERY slow both as source and target because it's usersp | ||||
ace. | ||||
it supports only UTF-8 filenames, not arbitrary bytes in the range | ||||
128-255. | ||||
fsmove must check beforehand! | ||||
use mount.ntfs option big_writes... enough or still too slow? | ||||
logfs: as target: "mkfs -t logfs" does NOT accept option -q, | ||||
fsmove and umount crash with kernel bugs (see tests/) | ||||
others: btrfs, gfs, gfs2, hfs, jffs2, ocfs2, qnx4, qnx6, ubifs... | ||||
not yet: tux3 | ||||
* fstransform, fsmove: add fsremap-like persistence, i.e. the ability to resume | ||||
a transformation after CTRL-C, power failure or similar interruptions | ||||
* fsmove: use a larger buffer (1MB) to speed up backward copy. | * fsmove: use a larger buffer (1MB) to speed up backward copy. | |||
beware of low free space! | Worth it? beware of low free space... | |||
* fsremap: add a graphical interface ? probably not so worth it... | * fsremap: add a graphical interface ? probably not so worth it... | |||
* all: port to FreeBSD. see this: | ||||
Procedure to mount file system images under FreeBSD | ||||
First you have to create virtual device, using this command: | ||||
# mdconfig -a -t vnode -f /path/to/image.iso -u 1 | ||||
The "mdconfig" command creates a device and prints the name. Just | ||||
append that to "/dev/" and use it for whatever you need: | ||||
# newfs /dev/md1 | ||||
# mount /dev/md1 /mnt | ||||
To unmount the image use command: | ||||
# umount /mnt | ||||
Once unmounted, you can unconfigure the device with | ||||
# mdconfig -d -u 1 | ||||
Also, many system files, as /lib/libc.so.7 are set as | ||||
'simmutable' (cannot open O_RDWR) and 'sunlink' (cannot unlink) | ||||
so fsmove fails | ||||
Furthermore, fsmove df-like stats do not work on FreeBSD: | ||||
they seem to report usage of root file system | ||||
Additionally, fsremap wraps calls to ff_posix_mkdir() with | ||||
#ifdef __USE_POSIX, which is undefined by default on FreeBSD, | ||||
causing ff_mkdir() to fail with ENOSYS. | ||||
Finally, 'umount' wants mount-point instead of device. | ||||
And how to 'mount -o remount,ro <mount-point>' ? | ||||
WONTDO | WONTDO | |||
* fsmove: if file system free space is critically low, launch 'xfs_fsr' | * fsmove: if file system free space is critically low, launch 'xfs_fsr' | |||
to try and free some space before giving up. | to try and free some space before giving up. | |||
why not: | why not: | |||
LIMITED USEFULNESS: only for 'xfs' file system | LIMITED USEFULNESS: only for 'xfs' file system | |||
DANGEROUS: at least on linux with an almost-full source device | DANGEROUS: at least on linux with an almost-full source device | |||
xfs_fsr can WORSEN the problem by triggering 'loop write error' kernel err ors, | xfs_fsr can WORSEN the problem by triggering 'loop write error' kernel err ors, | |||
which mean the source device has not enough space to accommodate the loop file contents. | which mean the source device has not enough space to accommodate the loop file contents. | |||
typically this CORRUPTS the file system inside target (loop) device! | typically this CORRUPTS the file system inside target (loop) device! | |||
End of changes. 3 change blocks. | ||||
4 lines changed or deleted | 57 lines changed or added |