copied here for archival
Update – Thanks to Peter Schlesinger in the comments section below:
Simple step by step guide to mounting Sparc-based ReadyNAS Drives in x86-based Linux:
Tested on brand new install of Ubuntu 10.10 (32bit x86), no other dependencies- 23rd Jan 2011
In a terminal window:
(1) sudo su
(2) apt-get install fuseext2
(3) apt-get install lvm2
(4) modprobe fuse
(5) vgscan
(6) vgchange -ay c
(7) fuseext2 -o ro -o sync_read /dev/c/c /mnt
That’s it!!!
You can now see the mounted files in the /mnt directory
(NB: Without the “-o sync_read” option to fuseext2 I had problems with copying large files. It kept saying the source file wasn’t found. After adding this option everything worked fine).
************************************************
Original Post
When the ReadyNAS developers changed the default block size in RAIDiator 4.x to 16 KB (from 4 KB in version 3.x), there was concern from the community that users would be unable to mount drives from a failed ReadyNAS into a Linux computer. The concern is that the ReadyNAS Duo, NV+, X6, 600 & 1100 use a Sparc-based processor and that an x86-based PC cannot read 16 KB blocks. One of the developers, Skywalker, has provided some details and I have taken the liberty of editing his posts into an easy-to-follow step-by-step set of instructions.
Quoting Skywalker:
There is no “proprietary” filesystem running on any ReadyNAS. It is “straight”, ordinary, unmodified EXT3. You can even run all the e2fsprogs (debugfs, e2fsck, etc) on a 16KB ReadyNAS filesystem on a standard Linux PC with no modifications. Mounting a 16KB ReadyNAS filesystem on an x86 PC requires about the same amount of work as mounting an NTFS filesystem read/write on Linux — using a FUSE driver to mount it.The ext2fuse driver won’t come on any LiveCDs, so you’d need a full distro running with the necessary build tools installed.
Ubuntu, Fedora, Debian… it doesn’t really matter. Once you get those installed, you need to get the ext2fuse source code from sourceforge.net.
- Using Debian, you can install the build tools by issuing the following command as root:
- Download the ext2fuse package and extract it:
- Change to the directory of the extracted program
- Run the following command:
- Before compiling, open src/Makefile in an editor.
- Remove the lines that look like this:
- Change this line:
- To this:
- Then build the executable by running make:
- Next, install the package by running make install:
- After compiling and installing the package, you’ll need to load the fuse module:
- Next, run the following commands to recover the volume group information and then activate it:
- Create a directory to mount the array:
- Mount the array:
- If successful, you should see:
- At this point, your ReadyNAS data volume should be mounted on /mnt/lvm and you should be able to access your data.
apt-get install build-essential
tar xvzf ext2fuse-src-0.8.1.tar.gz
./configure
ext2fuse_DEPENDENCIES = ../lib/et/libcom_err.a \
../lib/ext2fs/libext2fs.a
ext2fuse_LDADD = ../lib/et/libcom_err.a ../lib/ext2fs/libext2fs.a
ext2fuse_LDADD = -lcom_err -lext2fs
make
make install
modprobe fuse
vgscan
vgchange -ay c
mkdir /mnt/lvm
ext2fuse /dev/c/c /mnt/lvm
/dev/c/c is to be mounted at /mnt/lvm
fuse-ext2 initialized for device: /dev/c/c
block size is 16384
Update (May 22, 2010) – Have a look at this for additional information:
http://greyproc.blogspot.com/2010/04/readynas-600-raid-recovery-with-ubuntu.html
Alternative Method
If you are trying to recover data from a Duo (or from a disk with only 1 or 2 disks in the array), then you may be able to recover the data using the following method:- Connect your faulty disk to PC using a SATA to USB cable
- Download, install & run the free software R-Linux from www.r-tt.com
- Copy the recovered data from the faulty disk
October 29th, 2009 at 11:18 am
http://www.readynas.com/forum/viewtopic.php?f=11&t=35153
May 19th, 2010 at 9:13 am
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include/fuse -I/usr/local/include/fuse -I../lib -I../lib/et -I../lib/ext2fs -D_FILE_OFFSET_BITS=64 -g -O2 -MT ext2fuse-readdir.o -MD -MP -MF “.deps/ext2fuse-readdir.Tpo” -c -o ext2fuse-readdir.o `test -f ‘readdir.c’ || echo ‘./’`readdir.c; \
then mv -f “.deps/ext2fuse-readdir.Tpo” “.deps/ext2fuse-readdir.Po”; else rm -f “.deps/ext2fuse-readdir.Tpo”; exit 1; fi
In file included from readdir.c:1:
readdir.h:6:27: error: fuse_lowlevel.h: No such file or directory
In file included from readdir.c:1:
readdir.h:8: error: expected ‘)’ before ‘req’
readdir.c:7: error: expected ‘)’ before ‘req’
readdir.c:46: error: expected ‘)’ before ‘req’
make: *** [ext2fuse-readdir.o] Error 1
May 29th, 2010 at 10:42 pm
I managed to bypass the compilation step by using an older pre-built ext2fuse 0.5 from here:
http://www.jamesandclare.net/2009/12/06/mounting-readynas-duo-drives-in-ubuntu/
Best
apnea
May 31st, 2010 at 3:13 pm
Choosing a NAS solution where you can’t mount the storage media outside of the NAS is asking for trouble. I was worried I’d made the wrong choice when I found that mounting the ReadyNAS do ext3 drives is not trivial, mainly because they use a 16kb block size with their SPARC cpus.
A bit of routing around found various solutions, but the one which worked for me was as follows.
1. Fire up ubuntu vm (running on OS X for me and in my case 9.10 Karmic)
2. install lvm2 using:
apt-get install lvm2
3. Download ext2fuse 0.5 (from here for example)
http://linux.softpedia.com/progDownload/ext2fuse-Download-29820.html
http://sourceforge.net/projects/ext2fuse/files/ext2fuse/0.5/ext2fuse-0.5.src.tgz/download
4. run
vgscan
to locate drives5.
vgchange -ay c
to allow access to drive6.
mkdir /mnt/lvm
7.
ext2fuse /dev/c/c /mnt/lvm
(where ext2fuse will have been downloaded)8. drive can now be accessed on
/mnt/lvm
January 10th, 2011 at 7:50 pm
I’m using ubuntu 10.10 and I found a ‘fuseext2′ package in the repository and it worked with no problems. Although it complained that it’s experimental and to only use write option at your own risk, and so because I only need this to get my data off the disk I simply mounted it are read only:
fuseext2 -o ro /dev/c/c /mnt/lvm/
January 22nd, 2011 at 9:48 pm
Tested on brand new install of Ubuntu 10.10 (32bit x86), no other dependencies- 23rd Jan 2011
In a terminal window:
(1) sudo su
(2) apt-get install fuseext2
(3) apt-get install lvm2
(4) modprobe fuse
(5) vgscan
(6) vgchange -ay c
(7) fuseext2 -o ro -o sync_read /dev/c/c /mnt
That’s it!!!
You can now see the mounted files in the /mnt directory
(NB: Without the “-o sync_read” option to fuseext2 I had problems with copying large files. It kept saying the source file wasn’t found. After adding this option everything worked fine).
February 6th, 2011 at 6:58 am
I’v tried to mount a disk from a 2 disk Duo with Ubuntu 10.10. vgscan dosent locate the disk but I can se it in the diskutility. How can I find the name of the disk so that I can run “vgchange -ay c” ?
March 30th, 2011 at 6:01 am
Installed fuseext2 and lvm2 from the repositories.
In terminal ran 5,6, and 7.
Copy needed files.
Change owner. (Copied files will be root)
chown -R (user) /home/user/folder_name
May need to changed permissions also.
chmod -R a=rwx /home/user/folder_name
Maybe Peter Schlesinger could make this a ‘sticky’ in the ReadyNas forums.
Again – Thanks
March 30th, 2011 at 9:58 am
did you found a solution? I have the same problem.
April 3rd, 2011 at 9:30 am
Has anyone managed to work around this? I tried compiling fuse-ext2-0.0.7 on Ubuntu, but the compile doesn’t produce an executable. The changelog said it had fixed the >4gb problem
April 10th, 2011 at 3:13 pm
The free software for windows “R-Linux” did the job for me.
http://www.r-tt.com/free_linux_recovery/
It took some time for it to scan my disk, but it found all my data with folders and the right file names and extensions.
Try it !!
April 12th, 2011 at 7:17 am
Brian Ost has already said:
“vgscan dosent locate the disk but I can see it in the diskutility. How can I find the name of the disk so that I can run “vgchange -ay c” ?”
What are we doing wrong?
Do we have to make Local Volumes?
I used fresh installed Ubuntu 10.04 LTS
April 30th, 2011 at 12:03 am
The vgscan doesn’t detect my drive.
# vgscan
Reading all physical volumes. This may take a while…
#
When I try to mount it manually the system return to me:
# mount /dev/sdb1 /mnt/lvm
mount: unknown filesystem type ‘linux_raid_member’
This drive was used previously as RAID but not in my last configuration.
Have you any idea to help me to mount this drive? Something is wrong with vgscan but I don’t know what.