OESF Portables Forum
Everything Else => Zaurus Distro Support and Discussion => Distros, Development, and Model Specific Forums => Archived Forums => Sharp ROMs => Topic started by: xamindar on July 18, 2008, 04:24:42 am
-
I have a NAND backup of my zaurus that will not restore for some reason back to my zaurus. It is the same exact size as any other NAND image so I assume the data must still be in there. Hopefully there is a way to get it out.
Anyone know of a way to extract it on a linux machine or to even mount the NAND image so I can access it's contents?
-
There was a big thread on this a while back, but I can't seem to find it now...
-
The closest I can get so far is this post here:
http://lists.infradead.org/pipermail/linux...ber/008590.html (http://lists.infradead.org/pipermail/linux-mtd/2003-October/008590.html)
This forum wont let me post the code so you have to go to the link to see it.
I tried modifying it to use my 3100 nand image and it went through and spat out its results. But I don't think it worked properly, the 3100 nand image is probably quite different other than just the size. Dang.
-
Ok, I did it. A lot of googling finaly paid off. I'll post a little howto just so others can do it if they need and also so I can in the future if I forget.
I found a link here (http://209.85.141.104/search?q=cache:4aI1MfaoptcJ:qemu-forum.ipi.fi/viewtopic.php%3Ff%3D20%26t%3D4488+zaurus+nand+extract&hl=en&ct=clnk&cd=19&gl=us&client=firefox-a) to a script that will extract the individual jffs2 filesystems from the NAND image. I also attached the script exactly as I used it on my c3100 NAND backup to this post. Just take off the .txt extension and make it executable.
Here is what I did to get my usr partition from NAND mounted. (usr is the one that had all my stored files)
I stuck the nand-ripper.sh script, modified the parameters in the script to match what is hopefully the correct info, and my nand backup (SYSTC310.DBK) in the same folder and extracted the usr partition with this command:
./nand-ripper.sh nand_usr user SYSTC310.DBK
I now have nand_usr which is the partition I wanted access to.
Then I had to do some digging around to find out how to even mount or extract this type of image. Most helpful was a post here (http://forums.gentoo.org/viewtopic-t-694417-highlight-jffs2.html) and here (http://209.85.141.104/search?q=cache:80kXrMJVVb8J:gentoo-wiki.com/Mounting_a_block_device_with_JFFS2+gentoo+mount+jffs2&hl=en&ct=clnk&cd=1&gl=us&client=firefox-a).
if your kernel has them as modules, make sure to modprobe loop and block2mtd
Create the mtd device as I don't really have a NAND on my desktop machine:
mknod /dev/mtdblock0 b 31 0
Set up a loop device straight to my extracted partition file:
losetup /dev/loop0 nand_usr
Tell the block2mtd driver what you want it to convert to a fake MTD device.
echo "/dev/loop0" > /sys/module/block2mtd/parameters/block2mtd
Then, finally mount the device:
mkdir /mnt/zaurus_usr
mount -t jffs2 /dev/mtdblock0 /mnt/zaurus_usr
-
Just in case it helps anyone else.
I had a NAND backup of my SL-C3100 which would not restore (and I tried just about everything before discovering this topic).
I restored an old NAND backup, and then used the nand_ripper script to get the root and user partitions from the one which would not restore.
However, instead of mounting them and recovering the data, I copied them to an SD card, booted into console mode ( D and B ), and copied them direct to the mtdblock partitions:
dd if=/mnt/card/nand_root of=/dev/mtdblock2
dd if=/mnt/card/nand_user of=/dev/mtdblock3
It worked a treat, and I was very relieved!
Dave