[SOLVED] ReiserFS root partition can't be mounted on boot. superblock cannot be found
SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
ReiserFS root partition can't be mounted on boot. superblock cannot be found
Hi,
I have a dual boot laptop with Windows 7 and Slackware64 14.1. Yesterday after switching between the two OS several times I ended up with kernel panic which said it couldn't mount any filesystem on root partition. I tried to boot several times with no luck. Then I booted Win7 and it was running fine.
I used a DVD of Slack 13.37 to have a look at the disk.
cfdisk showed the partition table intact but the boot flag has moved to the windows partition /dev/sda2 when it used to be on linux root (/dev/sda3 ) before. I put it back, hit Write and got "no primary partitions are marked bootable ..." . But /dev/sda3 is a primary partition.
I tried to manually mount it :
mount /dev/sda3 /mnt/t mount: /dev/sda3: can't read superblock
reiserfsck --check /dev/sda3
... reiserfs_open: the reiserfs superblock cannot be found on /dev/sda3
...
It advised me to run reiserfsck with --rebuild-sb. I started it but it wanted info on block size which I didn't know where to get from (dumpe2fs said can't read superblock too) so I Ctrl+c
I did badblocks -vns /dev/sda3 and after 12 hours it had processed 30% of the 500GB partition and I dropped it. Someone on the web advised to use bigger block size for faster check but I didn't understand much. Some talked about block size of HDD others about block size of filesystem and I got confused .
Now I don't know what to do. The disk is Toshiba MK6461GSYN but I couldn't find info about block size googling or didn't know where to look.
Please help. I need to boot up to get the info out before making other checks on the drive.
Thank you
AFAIK, the default block size of a reiserfs is 4096 bytes. So, you can use this value unless you have specified something else when you have created the partition.
Note that you can get the block size of a reiserfs partition using the command debugreiserfs. However, if you boot from the slackware dvd, this command is not available. To workaround this, you can proceed as below once you have booted from slackware dvd :
Code:
$ mkdir slackdvd reiserfstools
$ mount /dev/sr0 /slackdvd
$ cd reiserfstools
$ cat /slackdvd/slackware64/a/reiserfsprogs-*.txz | xz -dc | tar xf -
$ ./sbin/debugreiserfs /dev/sda3 | grep -i blocksize
If you need to get the sector size(s) of your hdd, you can use the command parted as below :
Simple solution is to restore from your latest backup.
ReiserFS was always a problem child, although it's been a good many years since I used it.
For "normal" (as in non packing) filesystems, forensic tools are generally an option to scrape files in the unlikely event that a backup isn't available. Here'e what cgsecurity have to say
Quote:
Originally Posted by photorec
ReiserFS includes some special optimizations centered around tails, a name for files and end portions of files that are smaller than a filesystem block. In order to increase performance, ReiserFS is able to store files inside the b*tree leaf nodes themselves, rather than storing the data somewhere else on the disk and pointing to it. Unfortunately, PhotoRec isn't able to deal with this - that's why it doesn't work well with ReiserFS.
Simple solution is to restore from your latest backup.
ReiserFS was always a problem child, although it's been a good many years since I used it.
For "normal" (as in non packing) filesystems, forensic tools are generally an option to scrape files in the unlikely event that a backup isn't available. Here'e what cgsecurity have to say
With all my respect, why do you think I insist on recovering the data from the corrupted device? It all happened in the middle of an upgrade - back up- repair hdd chaos which led me to a state of no backup available. I've been using ReiserFS for 9 years with absolutely no problems until now. If things were "simple" I would've never wasted anyone's time on fixing them.
Now I am running dd to copy data to an external drive.
phenixia2003, the error is the same. I also cheked dmesg : "... 7000: search_by_entry_key: search_by_key returned item position == 0... " and the volume was mounted read only but in fact it was not mounted at all.
Reiserfsck do not repair filesystem's superblock if bad block exist on disk.
You should make image partition using dd od dd_rescue .
It fills bad block with zeros and then mount image and go with
raiserfsck .
Reiserfsck do not repair filesystem's superblock if bad block exist on disk.
You should make image partition using dd od dd_rescue .
It fills bad block with zeros and then mount image and go with
raiserfsck .
I am making an image right now but I already did reiserfsck. I read somewhere that I should not do reiserfsck --rebuild-sb more than once on one file system for it will destroy data. Is that correct? Can I do reiserfsck --rebuild-sb again safely on the mounted image?
Will check superblock and rebuild it if needed
Will put log info to 'stdout'
Do you want to run this program?[N/Yes] (note need to type Yes if you do):Yes
Reiserfs super block in block 16 on 0x700 of format 3.6 with standard journal
Count of blocks on the device: 130614464
Number of bitmaps: 3987
Blocksize: 4096
Free blocks (count of blocks - used [journal, bitmaps, data, reserved] blocks): 72512086
Root block: 37322976
Filesystem is clean
Tree height: 5
Hash function used to sort names: not set
Objectid map size 176, max 972
Journal parameters:
Device [0x0]
Magic [0x0]
Size 8193 blocks (including 1 for journal header) (first block 18)
Max transaction length 1024 blocks
Max batch size 900 blocks
Max commit age 30
Blocks reserved by journal: 0
Fs state field: 0x0:
sb_version: 2
inode generation number: 480262
UUID: 948f48e1-5f91-41e2-8544-34057e74c4ef
LABEL:
Set flags in SB:
Mount count: 1
Maximum mount count: 30
Last fsck run: Sun May 4 17:06:40 2014
Check interval in days: 180
Super block seems to be correct
Dose it mean I repaired it the first time I run it?
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.