Mounting JFFS2 Images on a Linux PC
It only takes a minute to sign up. This is my first attempt at doing some reverse engineering. I'm trying to dump the filesystem off a huawei hga TalkTalk router.
The problem is its quite limited in the amount of programs that are on the device. Below are a list of programs i can use. So im trying to extract the filesystem to another linux machine so i can go through it more eaisely. I can upload single files with the ftpput command. What im trying to do is upload mtdblock and then mount this on my other machine to explore the folder structure etc. Could anyone guide me in the right direction as to what i might be doing wrong? So it not possible to transfer the filesystem in this way?
Likewise, the name of mtd3 suggests that it contains the saved configuration settings admin password, wireless settings etc. The "flags" and "main" names for mtd1 and mtd2 respectively are a bit ambiguous, but I would expect, due to the name and the size, that mtd2 contains the file system.
As a side note, don't be surprised if once you find the squashfs file system, your Linux host can't mount it. There are many hacked up versions of squashfs, and you may need to find the right squashfs tools for that particular version and run unsquashfs on the image to extract the files. This is obvious by the fact that it is larger in size than the other mtd devices.
I ftpd this file and I then downloaded the firmware mod kit which has a script which goes through all the unsquashfs versions and attempts to extract the firmware. In this case it worked using version quashfs Sign up to join this community. The best answers are voted up and rise to the top. Home Questions Tags Users Unanswered. Dumping firmware through mtdblock device Ask Question. Asked 5 years, 9 months ago. Active 3 years, 1 month ago.
The dark mode beta is finally here. Change your preferences any time. Stack Overflow for Teams is a private, secure spot for you and your coworkers to find and share information. It will still be writing to the device so you can safely ignore the error at the end although it may be a good idea to ensure the disk is actually an integral multiple of the block size to avoid the possibility of leaving sensitive information at the end. Learn more. Asked 4 years, 5 months ago.
Active 4 years, 5 months ago. Viewed 20k times. Active Oldest Votes. This is nice explanation! The Overflow Blog. Podcast Cryptocurrency-Based Life Forms.
Q2 Community Roadmap. Featured on Meta. Community and Moderator guidelines for escalating issues via new response…. Feedback on Q2 Community Roadmap. Triage needs to be fixed urgently, and users need to be notified upon…. Dark Mode Beta - help us root out low-contrast and un-converted bits.
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. Are you new to LinuxQuestions. If you need to reset your password, click here. Having a problem logging in? Please visit this page to clear all LQ-related cookies. Introduction to Linux - A Hands on Guide This guide was created as an overview of the Linux Operating System, geared toward new users as an exploration tour and getting started guide, with exercises at the end of each chapter.
For more advanced trainees it can be a desktop reference, and a collection of the base knowledge needed to proceed with system and network administration. This book contains many real life examples derived from the author's experience as a Linux system and network administrator, trainer and consultant. They hope these examples will help you to get a better understanding of the Linux system and that you feel encouraged to try out things on your own.
Click Here to receive this Complete Guide absolutely free. Hi, Linux Kernel - 3. If there is no data that you need to preserve on it, perhaps you can re-install the filesystem. I guess the flash memory is in an un-extractable media, like built into a processor?
Maybe you can use dd to make a copy of the device, and see if that copy can be mounted on a loop device elsewhere.How Do Linux Kernel Drivers Work? - Learning Resource
Last edited by theNbomr; at AM. Thanks for replying. Apparently this had something to do with the configuration. I had actually carried out a lot of config changes and when things did not work, I just loaded the backup. However I am still looking into what specific configuration caused the issue.
Now after booting I am able to mount the NOR and see its contents. Thread Tools.MTD subsystem stands for Memory Technology Devices provides an abstraction layer for raw flash devices. It makes it possible to use the same API when working with different flash types and technologies, e.
These devices are not raw flashes but they have a Flash Translation layer inside, which makes them look like block devices. These devices are the subject of the Linux block subsystem, not MTD. And the raw flash vs. But the corresponding drivers are very old and not maintained very much.
Managing flash storage with Linux
The methods and data structures in this file are used by higher layer kernel code such as flash file systems to access and control the mtd devices, and also by device driver authors to interface their device to the mtd subsystem.
Prior to kernel version 3. As of kernel 3. Users of kernel 3. The mtd-utils include a set of test programs which you may run to verify your flash hardware and drivers.
The programs have only been recently ported to user space and are also available as kernel modules. In contrast to the modules, the user space tests also offer more fine grained options for controling their behaviour, such as only using specific erase blocks or pages. The user space tests are compiled automatically when compiling mtd-utilsbut are not installed by default.
To install the tests through make installthe configure option --enable-install-tests has to be set. The kernel module tests are available in the mainline kernels starting from kernel version 2. It does not even have bad eraseblock handling, so it is not really usable with NAND flashes. And it works by caching a whole flash erase block in RAM, modifying it as requested, then erasing the whole block and writing back the modified. This means that mtdblock does not try to do any optimizations, and that you will lose lots of data in case of power cuts.
And last, but not least, mtdblock does not do any wear-leveling or bit-flips handling. Often people consider mtdblock as general FTL layer and try to use block-based file systems on top of bare flashes using mtdblock. This is wrong in most cases. In other words, please, do not use mtdblock unless you know exactly what you are doing. There is also a read-only version of this driver, mainly for use with uCLinux where the extra RAM requirement was considered too large.It is recommended to download any files or other content you may need that are hosted on processors.
The site is now set to read only. After kernel booted, it tries to mount a file system. Using Linux on DaVinci, there are several options where this file system can come from.
Options are. For production ready devices or if file system doesn't change any more, the file system has to be persistent on the target. We first assume that system is booted using one of the temporary development file systems initramfs, NFS, or removable media which kernel mounts as initial file system and which then can be used to create file system in NOR or NAND flash.
Once this is done, in second step, support for this temporary development file system can be disabled in bootloader and in kernel and kernel directly can mount file system in NOR or NAND flash. Seeing both at the same time isn't possible. This includes having a boot loader e. U-Boot in the flash you want to use. Having set these configurations, make sure you can completely boot in this configuration.
U-Boot  being able to start the kernel e. Ramdisk or via NFS. If you're not using Flash at run time, don't bother to configure it into your kernel. While booting, this results in message. Because of the special physical behavior of flash, special file systems for these devices are developed.
See jffs vs. YAFFS2 is currently not part of the standard kernel though.
Recent mainline kernels 2. Once downloaded the source using cvs, follow the instructions given in file README-linux-patch how to use patch script patch-ker. Then, to be able to use kernels MTD MemoryTechnologyDevices subsystem from user space, you need some device nodes in your file system:. If you don't have these yet, use mknod command to create them. If you have more than one partition in your flash device depends on NOR and NAND kernel configurationyou have to create additional device nodes mtd x and mtdblock x for each additional partition.
Note that the minor for mtdx nodes has to be an even number. This has four partitions, but you most probably don't want to touch bootloader, params and kernel using MTD subsystem cause you handle it with U-Boot.
After all this preparation, you should be able to mount your new created file system in flash. Maybe you want to add the mount command to a startup script so it is done automatically at boot up. But if you want to use NOR or NAND file system established above as an initial file system the kernel mounts at startup, you have to ensure some additional points.
This comprises e. Easiest way is copy content of your development files system Ramdisk, NFS to flash file system.It can be a good idea to a backup of your device's memory state, especially before installing a new firmware. New firmware versions may introduce bugs, region blocking or firmware downgrading blocking.
With backups of the current state of your device, it! If you have access to the console SSH, telnet, serialyou should be able to login to your device and create a snapshot of the state of your device and store it for when-needed. These are the steps to follow:. To restore your device based on these backups, you'll have to do it via a serial console via u-boot. You can then use fatupdate to restore the data on your device.
The files do need some preperation before a restore can be done. For some reason the files are too long for flashing and need to be truncated to a specific size. The end of the files are padded with the same character. I didn't try this yet. Skip to content. HowTo make backup snapshot of your device state via the console Jump to bottom. Based upon firmware version v3. Backup via console to SDCard If you have access to the console SSH, telnet, serialyou should be able to login to your device and create a snapshot of the state of your device and store it for when-needed.
It only takes a minute to sign up. All went fine. Then I tried to mount the drive. I've done this stuff many times before and have never ran into anything like this. I have a different process for this that replaced the bad superblock with one of the alternatives. You can sudo yourself silly or just become root for the process. Just remember that when you are root, Linux assumes that you know what you're doing when you issue commands.
If so directed, it will speedily delivery Mr. Bullet to Mr. Like many other things, with great power comes great responsibility. That concludes my warning on running your system as root. Do not assume it's EXT4. Get your error message which says the superblock is bad. You don't want to do this if your superblock is OK. Pick an alternate superblock - keep in mind that the first one is the default and its bad so let's not use that one.
General MTD documentation
You will also want to pick one from the list you get from your partition. Do not use the example. Your superblocks may be stored elsewhere. Reboot and see if this worked.
If not try the next superblock on the list. I've had to go the third or fourth one a couple of times. Now try the command to validate the disk again. See if you get the same messabout about bad superblocks.
Keep trying until you either run out of superblocks or it works. If you run out, you likely have bigger issues and I hope you have good backups. You can try running FSCK at that point. Warning : this might delete files you have saved. So you can run ls to make sure you don't lose important saved files and backup these files before execution.