Hello everyone

I just wanted to share some weirdness with you.

I have done a full system update (it has been a while FYI, maybe 2 months)

My filesystems:
/         ext4
/var      reiserfs
/home     ext4
/mnt/test btrfs
/mtn/old  jfs

After the upgrade, I reboot my system.

It falls on its face and I end up in emergency mode.

After a brief investigation, I note that the /var system hasn't mounted.

reiserfs is a kernel module and its presence is confirmed by

fgrep reiser /proc/filesystems
    reiserfs

So why does it not mount? Let's check dmesg
    super-6502 reiserfs_getopt unknown mount option ""

I have no idea why a Super Commodore 64 or Apple II  has got anything to do with reiserfs and an unknown mount option blank.

I tried to mount the partition "manually":
    mount /dev/sdb2 /var -treiserfs -orw

The same mount failure

I have tried a combination of all of the mount options for reiserfs in 
    man 8 mount

Now for some more weirdness
    fsck.reiserfs --check
    fsck.reiserfs --rebuild-b
    fsck.reiserfs --rebuild-tree

All report that the filesystem is fine, that the superblock does not need rebuilding, and that the tree is fine too.

OK I have got a choice to make now
What do I do?

Well, there's no way around it, I have to keep working on somehow fixing it. There is 30G of files in /var that I really need (yes you are allowed to shout that I should have a backup, fair point, but it isn't helping me right now)

I keep thinking that somehow the fsck.reiserfs tool CAN look at my filesystem and determine that it is healthy. So at least there are some userspace programs that CAN at least in principle read a raw reiserfs filesystem.

I look in the Internet tubes. I search for "convert reiserfs"

The top hit is a manpage from Ubuntu:
"convert from ext2/3/4 or reiserfs to btrfs in-place"

"The btrfs-convert tool can be used to convert existing source... to btrfs ... in-place"

OK, and I see that this program is present on my borked machine.

Another page on the internet gives more instructions
"If the partition is mounted, unmount it"

I like this! It doesn't even need to be mounted, which is the thing that is not working anyway

Ok let's go! 

It takes about an hour

I have chosen to copy the uuid 

The program finishes without any errors.

Soo exciting!!!

Ok I have edited the fstab to change reiserfs to btrfs

mount -a

SUCCESS!!!! 

Conclusions:
  1. IDK what the root cause is of the reiserfs filesystem not mounting
  2. Apparently, you do not need to mount a reiserfs to be able to convert it
  3. My /var filesystem is now working perfectly as a btrfs filesystem
As a point of interest, if anybody does figure out #1 I will be very interested in learning this.

Thank you and apologies for this long rambling boring monologue


Andy "Aethalides" Pieters