UBIFS - read only file system
Tiago Trota
tiagofgdt at gmail.com
Mon Jan 18 04:04:18 PST 2016
2016-01-15 20:14 GMT+00:00 Richard Weinberger <richard.weinberger at gmail.com>:
> Hi!
>
> On Fri, Jan 15, 2016 at 6:24 PM, Tiago Trota <tiagofgdt at gmail.com> wrote:
>> I have a system with ARM which is using a NAND flash to store kernel
>> and file system.
>> After a reboot I get these errors and the UBIFS file system becomes
>> read-only. I can't revert this situation and it was the first time
>> this happened. Is there anyhing I can do to repair it?
>
> The more interesting question is, why could this happen?
> Did you see some other errors before that?
> Is this a recent kernel?
Thank you for the reply.
Before the reboot user processes and operations on log files were
running. Is it possible the reboot was not clean?
I am using kernel 3.6.5.
Actually I see the error "unrecognized mount option "v2" or missing
value" every time the system boots, but at that point the fs is
already mounted
This is the fully ubi related dmesg output whe:
UBI: attaching mtd1 to ubi0
UBI DBG (pid 1): ubi_attach_mtd_dev: sizeof(struct ubi_ainf_peb) 48
UBI DBG (pid 1): ubi_attach_mtd_dev: sizeof(struct ubi_wl_entry) 20
UBI DBG (pid 1): io_init: min_io_size 8192
UBI DBG (pid 1): io_init: max_write_size 8192
UBI DBG (pid 1): io_init: hdrs_min_io_size 8192
UBI DBG (pid 1): io_init: ec_hdr_alsize 8192
UBI DBG (pid 1): io_init: vid_hdr_alsize 8192
UBI DBG (pid 1): io_init: vid_hdr_offset 8192
UBI DBG (pid 1): io_init: vid_hdr_aloffset 8192
UBI DBG (pid 1): io_init: vid_hdr_shift 0
UBI DBG (pid 1): io_init: leb_start 16384
UBI DBG (pid 1): io_init: max_erroneous 358
UBI: physical eraseblock size: 1048576 bytes (1024 KiB)
UBI: logical eraseblock size: 1032192 bytes
UBI: smallest flash I/O unit: 8192
UBI: VID header offset: 8192 (aligned 8192)
UBI: data offset: 16384
etc_watchdog releasing MDIO access; ethlinkup(0x0)
UBI DBG (pid 1): scan_all: scanning is finished
UBI: max. sequence number: 737
UBI: attached mtd1 to ubi0
UBI: MTD device name: "rootfs"
UBI: MTD device size: 3584 MiB
UBI: number of good PEBs: 3582
UBI: number of bad PEBs: 2
UBI: number of corrupted PEBs: 0
UBI: max. allowed volumes: 128
UBI: wear-leveling threshold: 4096
UBI: number of internal volumes: 1
UBI: number of user volumes: 1
UBI: available PEBs: 0
UBI: total number of reserved PEBs: 3582
UBI: number of PEBs reserved for bad PEB handling: 70
UBI: max/mean erase counter: 2/1
UBI: image sequence number: 1469497926
UBI: background thread "ubi_bgt0d" started, PID 442
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
UBIFS DBG (pid 444): ubifs_bg_thread: background thread
"ubifs_bgt0_0" started, PID 444
UBIFS: recovery needed
UBIFS: recovery completed
UBIFS: mounted UBI device 0, volume 0, name "rootfs"
UBIFS: file system size: 3610607616 bytes (3525984 KiB, 3443
MiB, 3498 LEBs)
UBIFS: journal size: 12517376 bytes (12224 KiB, 11 MiB, 13 LEBs)
UBIFS: media format: w4/r0 (latest is w4/r0)
UBIFS: default compressor: none
UBIFS: reserved for root: 0 bytes (0 KiB)
UBIFS DBG (pid 1): mount_ubifs: compiled on: Dec 21 2015 at 13:50:37
UBIFS DBG (pid 1): mount_ubifs: min. I/O unit size: 8192 bytes
UBIFS DBG (pid 1): mount_ubifs: max. write size: 8192 bytes
UBIFS DBG (pid 1): mount_ubifs: LEB size: 1032192 bytes
(1008 KiB)
UBIFS DBG (pid 1): mount_ubifs: data journal heads: 1
UBIFS DBG (pid 1): mount_ubifs: UUID:
2FC6B795-E73D-402A-80FD-4D0C4BB34AC5
UBIFS DBG (pid 1): mount_ubifs: big_lpt 0
UBIFS DBG (pid 1): mount_ubifs: log LEBs: 4 (3 - 6)
UBIFS DBG (pid 1): mount_ubifs: LPT area LEBs: 2 (7 - 8)
UBIFS DBG (pid 1): mount_ubifs: orphan area LEBs: 1 (9 - 9)
UBIFS DBG (pid 1): mount_ubifs: main area LEBs: 3498 (10 - 3507)
UBIFS DBG (pid 1): mount_ubifs: index LEBs: 7
UBIFS DBG (pid 1): mount_ubifs: total index bytes: 2783616 (2718
KiB, 2 MiB)
UBIFS DBG (pid 1): mount_ubifs: key hash type: 0
UBIFS DBG (pid 1): mount_ubifs: tree fanout: 8
UBIFS DBG (pid 1): mount_ubifs: reserved GC LEB: 443
UBIFS DBG (pid 1): mount_ubifs: first main LEB: 10
UBIFS DBG (pid 1): mount_ubifs: max. znode size 240
UBIFS DBG (pid 1): mount_ubifs: max. index node size 192
UBIFS DBG (pid 1): mount_ubifs: node sizes: data 48,
inode 160, dentry 56
UBIFS DBG (pid 1): mount_ubifs: node sizes: trun 56, sb
4096, master 512
UBIFS DBG (pid 1): mount_ubifs: node sizes: ref 64, cmt.
start 32, orph 32
UBIFS DBG (pid 1): mount_ubifs: max. node sizes: data 4144,
inode 4256 dentry 312, idx 188
UBIFS DBG (pid 1): mount_ubifs: dead watermark: 8192
UBIFS DBG (pid 1): mount_ubifs: dark watermark: 8192
UBIFS DBG (pid 1): mount_ubifs: LEB overhead: 336
UBIFS DBG (pid 1): mount_ubifs: max. dark space: 28655616
(27984 KiB, 27 MiB)
UBIFS DBG (pid 1): mount_ubifs: maximum bud bytes: 8388608 (8192
KiB, 8 MiB)
UBIFS DBG (pid 1): mount_ubifs: BG commit bud bytes: 6815744 (6656
KiB, 6 MiB)
UBIFS DBG (pid 1): mount_ubifs: current bud bytes 614400 (600 KiB, 0 MiB)
UBIFS DBG (pid 1): mount_ubifs: max. seq. number: 289228
UBIFS DBG (pid 1): mount_ubifs: commit number: 145
VFS: Mounted root (ubifs filesystem) on device 0:11.
devtmpfs: mounted
Freeing init memory: 184K
UBIFS: parse v2
UBIFS error (pid 450): ubifs_parse_options: unrecognized mount
option "v2" or missing value
UBIFS error (pid 450): ubifs_remount_fs: invalid or unknown
remount parameter
These are the bootargs from u-boot that I am using
bootargs = console=ttyS0,115200 envaddr=0x1e0c0000 maxcpus=2 mem=1024M
mtdparts=nand_iproc.0:10M(linux),3584M(rootfs),-(rootfsbk)
ubi.mtd=rootfs root=ubi0_0 rw rootfstype=ubifs
>
>> UBIFS error (pid 454): ubifs_iget: failed to read inode 41930, error -2
>> UBIFS error (pid 454): ubifs_lookup: dead directory entry 'snmpd.pid', error -2
>> UBIFS warning (pid 454): ubifs_ro_mode: switched to read-only mode, error -2
>
> This is:
> inode = ubifs_iget(dir->i_sb, le64_to_cpu(dent->inum));
> if (IS_ERR(inode)) {
> /*
> * This should not happen. Probably the file-system needs
> * checking.
> */
> err = PTR_ERR(inode);
> ubifs_err(c, "dead directory entry '%pd', error %d",
> dentry, err);
> ubifs_ro_mode(c, err);
> goto out;
> }
>
> Can you share the filesystem?
I have the original ubi image that was flashed on nand device, if that
is what you are asking, but it is about 50MB. I can show you the mkfs
and ubinize options that were used.
If I do a nand erase (preserving bad blocks info only...) and then
reflash the nand device with the original ubi image the fs mounts
without that error.
I am not sure if it was a nand problem or ubifs. Is there any tests I
can perform?
> --
> Thanks,
> //richard
Tiago
More information about the linux-mtd
mailing list