Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
linux:reiserfs [2009/05/25 00:35]
127.0.0.1 external edit
linux:reiserfs [2011/06/22 00:13]
2a01:260:4121:1:1e6f:65ff:fe38:dc56
Line 1: Line 1:
 ====== ReiserFS & Linux ====== ====== ReiserFS & Linux ======
 +
 +
 +===== Troubleshooting =====
 +
 +==== Basic rules of fixing b0rken ReiserFS partion ====
 +//The most important things I've learned while drinking with Hans Reiser and things that always saved my data on reiserfs.//
 +
 +  * make sure you have "enough" RAM
 +  * **make sure you have working (not br0ken) RAM**
 +  * before running any --rebuild-sb or --rebuild-tree make sure you have backup!
 +  * have the latest reiserfsprogs tools
 +  * have a decent stable linux kernel and reiserfs support in it
 +
 +
 +==== REISERFS error (device dm-6): vs-7000 search_by_entry_key: search_by_key returned item position == 0   ====
 +
 +<code>
 +ReiserFS: hdx1: found reiserfs format "3.6" with standard journal
 +ReiserFS: hdx1: using ordered data mode
 +ReiserFS: hdx1: journal params: device hda1, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
 +ReiserFS: hdx1: checking transaction log (hda1)
 +ReiserFS: hdx1: warning: vs-7000: search_by_entry_key: search_by_key returned item position == 0
 +ReiserFS: hdx1: found reiserfs format "3.6" with standard journal
 +ReiserFS: hdx1: using ordered data mode
 +ReiserFS: hdx1: journal params: device hda1, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
 +ReiserFS: hdx1: checking transaction log (hda1)
 +ReiserFS: hdx1: warning: vs-7000: search_by_entry_key: search_by_key returned item position == 0
 +</code>
 +
 +   reiserfsck --rebuild-sb /dev/hdx1
 +
 +<code>
 +Reiserfs super block in block 16 on 0x301 of format 3.6 with standard journal
 +Count of blocks on the device: 4883744
 +Number of bitmaps: 150
 +Blocksize: 4096
 +Free blocks (count of blocks - used [journal, bitmaps, data, reserved] blocks): 3430669
 +Root block: 4096104
 +Filesystem is clean
 +Tree height: 5
 +Hash function used to sort names: not set
 +Objectid map size 972, 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: 2442403
 +UUID: bfd1afad-a173-40a6-bbbe-643dc9e68a23
 +LABEL:
 +Set flags in SB:
 +</code>
 +
 +**Super block seems to be correct**, but here comes the trick ..
 +
 +<code>
 +mount -t reiserfs /dev/hda1 /media/restore
 +mount: wrong fs type, bad option, bad superblock on /dev/hda1,
 +       missing codepage or other error
 +       In some cases useful info is found in syslog - try
 +       dmesg | tail  or so
 +</code>
 +
 +Ok .. here is a workaround to make the partition mountable again it is enough to change 
 +one byte in the super block from 0 (hash is not set) to 3 (r5 hash).  
 +It can be done by a hex editor.
 +
 +<code>
 +hexdump -C of block #16 (reiserfs uses 4k-size blocks, numbers start with 0):
 +
 +...
 +00000030  06 00 01 00 52 65 49 73  45 72 32 46 73 00 00 00  |....ReIsEr2Fs...|
 +00000040  03 00 00 00 05 00 c6 04  02 00 00 00 89 28 00 00  |......ф.....┴(..|
 +                ^^ 
 +                this byte.
 +...
 +</code>
 +
 +Which can be done like ..
 +
 +I used dd to copy first 512Kb from disk, then modify them and copy back to disk:
 +
 +   $ dd if=/dev/hdx1 count=1000 of=/tmp/hdx1dump
 +
 +then use your favourite Hexeditor to fix problem
 +
 +(position 0001:0040 in this file) --> write \"03\" in position 0001:0040 
 +
 +and copy it back to disk
 +
 +   $ dd of=/dev/hdx1 count=1000 if=/tmp/hdx1dump
 +
  
  
  
linux/reiserfs.txt · Last modified: 2016/03/16 22:57 by 82.50.77.129
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0 ipv6 ready