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
- throw away the filesystem and create a blank one?
- I would lose my pacman database
- I would lose some website files I haven't backed up anywhere else
- I would lose /var/lib
- And var/spool/cups which has got a copy of everything I printed since March 2017
- I could abandon it, for now, and resize another partition to make room
- This would at least temporarily have all of the drawbacks of the previous choice
- But... I would be able to come back to it later
- I see that there is a Reiserfs fuse driver but it's been abandoned on GitHub 12 years ago!!!!!!!
- Keep searching for a solution
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:
- IDK what the root cause is of the reiserfs filesystem not mounting
- Apparently, you do not need to mount a reiserfs to be able to convert it
- 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