UBIFS mount error: No space left on device

Matteo Mattei matteo.mattei at gmail.com
Mon Apr 23 08:34:19 EDT 2012


Hi guys,

After about 2 weeks with continuous read/write stress operation (w/o
powercycles) I moved a board to the power-cycles reliability lab to
perform also some other tests.
After a while I had an error during mounting the filesystem.

After a further analysis seems that there is not enough space to mount
the device (I don't know who is the responsible for this because there
is a quite big empty space in the device).
What is strange is that in read-only mode I am able to mount it.


Software and environment:
- linux kernel 2.6.32 (from TI)
- ubifs backport (from git://git.infradead.org/~dedekind/ubifs-v2.6.32.git).
- 8-bit BCH.
- UBIFS mounted with no compression.
- usage of ubiformat instead of flash_eraseall for the first
filesystem initialization.


Hardware:
- CPU: OMAP3530.
- NAND chips: Micron MT29F4G08ABBDAH4-IT.


I have the board that failed in this condition:

[root at myhost /]# mount -t ubifs ubi0:Filesystem /rootfs -o
sync,noatime,compr=none
UBIFS: recovery needed
...bch correct (1 512 byte) count=1
mount: mounting ubi0:Filesystem on /rootfs failed: No space left on device
[root at myhost /]#
[root at myhost /]#
[root at myhost /]# mount
rootfs on / type rootfs (rw)
none on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
none on /proc type proc (rw,nosuid,nodev,noexec,relatime)
none on /dev type devtmpfs (rw,relatime,size=107880k,nr_inodes=26970,mode=755)
none on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620)
[root at myhost /]#
[root at myhost /]#
[root at myhost /]# mount -t ubifs ubi0:Filesystem /rootfs -o
ro,sync,noatime,compr=none
UBIFS: recovery needed
UBIFS: recovery deferred
UBIFS: mounted UBI device 0, volume 0, name "Filesystem"
UBIFS: mounted read-only
UBIFS: file system size:   840708096 bytes (821004 KiB, 801 MiB, 6621 LEBs)
UBIFS: journal size:       33521664 bytes (32736 KiB, 31 MiB, 264 LEBs)
UBIFS: media format:       w4/r0 (latest is w4/r0)
UBIFS: default compressor: none
UBIFS: reserved for root:  4952683 bytes (4836 KiB)
[root at myhost /]#
[root at myhost /]#
[root at myhost /]# mount
rootfs on / type rootfs (rw)
none on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
none on /proc type proc (rw,nosuid,nodev,noexec,relatime)
none on /dev type devtmpfs (rw,relatime,size=107880k,nr_inodes=26970,mode=755)
none on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620)
ubi0:Filesystem on /rootfs type ubifs (ro,sync,noatime,compr=none)
[root at myhost /]#
[root at myhost /]#
[root at myhost /]# df -h
Filesystem                Size      Used Available Use% Mounted on
none                    105.4M         0    105.4M   0% /dev
ubi0:Filesystem    740.9M    523.7M    212.5M  71% /rootfs
[root at myhost /]#
[root at myhost /]#
[root at myhost /]# mount -o remount,rw /rootfs
UBIFS: completing deferred recovery
mount: mounting ubi0:Filesystem on /rootfs failed: No space left on device
[root at myhost /]#


Can you clarify why this strange behavior happened?
Maybe there is not enough space in the journal?!
Is there a way to avoid this or a workaround to let me to recover the board?

I have also one other question but not strictly related to this issue
(maybe there are already some other threads on this, but I didn't find
the answer): Do the UBI and UBIFS handle the erased space?
If so, how do they handle it?

Thanks a lot for your time,

Matteo



More information about the linux-mtd mailing list