The JFS homepage
says basically that it can't be done easily, but if you want to anyhow here's how:
Make sure your kernel is built with JFS support.
Make sure you've compiled and installed the JFS file system utilities.
...unmount any NFS, SMB, or cdroms that are mounted. Create a mount point for the new JFS partition and mount it. There are a few things to remember before we start copying files. Don't copy /proc over, but do create a mount point for it after you are done. If you didn't or couldn't unmount some of your NFS mounts or cdroms, remember to skip them when you do the copy. Copy everything else using cp -a.
#mount -t jfs /dev/hda6 /jfsvol
#cp -a bin etc lib boot dev home usr var [...] /jfsvol
3.4 Final setup
Before we reboot into our new root partition, there are a just a couple of final things that need to be done. First, we need to change the /etc/fstab entry for the root partition, but you need to be certain to change the right one. Remember that the fstab file we want to work with is the one under /jfsvol/etc. So edit this file, and look for the line describing the root partition. Mine looks like this:
LABEL=/ / ext2 defaults 1 1
We want to change that to say:
/dev/hda6 / jfs defaults 1 1
You can now unmount /jfsvol. Edit /etc/lilo.conf to point to the new root partition. I'm paranoid, so I like to just copy and paste the one I already have for the jfs kernel and modify the root= line to point to the new partition. You'll also need to give it a new label. The new section on my system looks like this:
Make sure that you run 'lilo' again before you reboot.
So basically, have a really big hard drive, half of which isn't used, and format that half all in jfs...then copy your existing system over onto it. I'd p'bly prefer backing up your data and reformatting...it'll use less disk space