UnixCommands

From University of Washington - Ubicomp Research Page
Revision as of 01:35, 9 December 2006 by Jonathan Lester (talk | contribs)
Jump to navigationJump to search

Mounting a JFFS2 Image

The JFFS2 filesystem is intended to be used with a flash based filesystem and not a block filesystem like a harddrive (or a USB stick which emulates a block filesystem). Because of this you cannot simply mount a .jffs2 image using the loopback device. Instead you need to use a flash emulator (blkmtd in this case) which reads the .jffs2 image via a loopback device (remember since we need the emulation there's no way to mount the loopback directly).

    Quick Start

      The basic steps are (you will need to be root to mount and load modules):
      • Connect a free loop device to the .jffs2 image: <bash>losetup /dev/loop0 ~/fs.jffs2</bash>
      • Connect the blkmtd emulator module to the loopback device: <bash>modprobe blkmtd device=/dev/loop0</bash>
      • Mount the mtdblock device blkmtd attached to <bash>mount /dev/mtdblock0 /mnt/jffs2Image</bash>

      All together that would be (where you would need to change ~/fs.jffs2 to point to where your image is and /mnt/jffs2Image to your chosen mount point). <bash>losetup /dev/loop0 ~/fs.jffs2 modprobe blkmtd device=/dev/loop0 mount /dev/mtdblock0 /mnt/jffs2Image</bash>

    Creating missing devices

      If you're missing loop devices here are the mknod commands to create loop0-loop5: <bash>mknod /dev/loop0 b 7 0 mknod /dev/loop1 b 7 1 mknod /dev/loop2 b 7 2 mknod /dev/loop3 b 7 3 mknod /dev/loop4 b 7 4 mknod /dev/loop5 b 7 5</bash> And here's how to create the mtdblock devices: <bash>mknod /dev/mtdblock0 b 31 0 mknod /dev/mtdblock1 b 31 1 mknod /dev/mtdblock2 b 31 2 mknod /dev/mtdblock3 b 31 3 mknod /dev/mtdblock4 b 31 4 mknod /dev/mtdblock5 b 31 5</bash>