can't mount ubifs after resizing with ubirsvol
Ibrahim Mattus Neto
ibrahim.neto at writesys.com.br
Thu Nov 19 05:34:37 PST 2015
Hi Richard!
Thanks for the response.
What I did was:
1) I created an .ubi file using the following configuration.
[rootfs]
mode=ubi
vol_id=0
vol_type=dynamic
vol_name=rootfs
vol_alignment=1
image=rootfs.ubifs
vol_size=80MiB
[data]
mode=ubi
vol_id=1
vol_type=dynamic
vol_name=data
vol_alignment=1
vol_flags=autoresize
vol_size=10MiB
[recover]
mode=ubi
vol_id=2
vol_type=dynamic
vol_name=recover
vol_alignment=1
vol_size=5MiB
2) After booting I tried to shrink "data" and increase the size of
recover using ubirsvol:
ubirsvol /dev/ubi0 -n 1 -s 4MiB (data)
ubirsvol /dev/ubi0 -n 2 -s 15MiB (recover)
3) After the resizing I tried to mount "data"
mount /home/data/
[ 88.510000] UBIFS error (ubi0:1 pid 668): validate_sb: bad LEB count:
1159 in superblock, 34 on UBI volume, 20 minimum required
[ 88.520000] UBIFS error (ubi0:1 pid 668): validate_sb: bad
superblock, error 1
[ 88.530000] magic 0x6101831
[ 88.530000] crc 0xceeca05b
[ 88.540000] node_type 6 (superblock node)
[ 88.540000] group_type 0 (no node group)
[ 88.550000] sqnum 1
[ 88.550000] len 4096
[ 88.550000] key_hash 0 (R5)
[ 88.560000] key_fmt 0 (simple)
[ 88.560000] flags 0x0
[ 88.560000] big_lpt 0
[ 88.570000] space_fixup 0
[ 88.570000] min_io_size 2048
[ 88.570000] leb_size 126976
[ 88.580000] leb_cnt 1159
[ 88.580000] max_leb_cnt 1159
[ 88.580000] max_bud_bytes 6729728
[ 88.590000] log_lebs 4
[ 88.590000] lpt_lebs 2
[ 88.590000] orph_lebs 2
[ 88.600000] jhead_cnt 1
[ 88.600000] fanout 8
[ 88.600000] lsave_cnt 256
[ 88.600000] default_compr 1
[ 88.610000] rp_size 5242880
[ 88.610000] rp_uid 0
[ 88.610000] rp_gid 0
[ 88.620000] fmt_version 4
[ 88.620000] time_gran 1000000000
[ 88.620000] UUID 9A5BA9F3-D0AC-480D-8F5B-8BF723E8A517
mount: mounting /dev/ubi0_1 on /home/data failed: Invalid argument
4) Then I tried to mount "recover"
# mount /recover/
[ 84.560000] UBIFS (ubi0:2): background thread "ubifs_bgt0_2" started,
PID 666
[ 84.590000] UBIFS error (ubi0:2 pid 664): ubifs_read_node: bad node
type (255 but expected 9)
[ 84.600000] UBIFS error (ubi0:2 pid 664): ubifs_read_node: bad node
at LEB 10:0, LEB mapping status 0
[ 84.600000] Not a node, first 24 bytes:
[ 84.610000] 00000000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ........................
[ 84.620000] CPU: 0 PID: 664 Comm: mount Not tainted 4.2.6 #1
[ 84.630000] Hardware name: Atmel SAMA5
[ 84.630000] [<c0013e38>] (unwind_backtrace) from [<c0011d48>]
(show_stack+0x10/0x14)
[ 84.640000] [<c0011d48>] (show_stack) from [<c01a64b8>]
(ubifs_read_node+0x290/0x30c)
[ 84.650000] [<c01a64b8>] (ubifs_read_node) from [<c01aefc8>]
(dbg_old_index_check_init+0x64/0xa4)
[ 84.660000] [<c01aefc8>] (dbg_old_index_check_init) from [<c01a1b4c>]
(ubifs_mount+0x2fc/0x17b0)
[ 84.660000] [<c01a1b4c>] (ubifs_mount) from [<c0095f18>]
(mount_fs+0x14/0xa4)
[ 84.670000] [<c0095f18>] (mount_fs) from [<c00abe64>]
(vfs_kern_mount+0x4c/0xf8)
[ 84.680000] [<c00abe64>] (vfs_kern_mount) from [<c00ae6e8>]
(do_mount+0x1a0/0xb28)
[ 84.690000] [<c00ae6e8>] (do_mount) from [<c00af3cc>]
(SyS_mount+0x90/0xc4)
[ 84.690000] [<c00af3cc>] (SyS_mount) from [<c000f1a0>]
(ret_fast_syscall+0x0/0x3c)
[ 84.700000] UBIFS (ubi0:2): background thread "ubifs_bgt0_2" stops
5) Just to gather some information
# ubinfo -a
UBI version: 1
Count of UBI devices: 2
UBI control device major/minor: 10:59
Present UBI devices: ubi0
ubi0
Volumes count: 3
Logical eraseblock size: 126976 bytes, 124.0 KiB
Total amount of logical eraseblocks: 1902 (241508352 bytes, 230.3 MiB)
Amount of available logical eraseblocks: 1043 (132435968 bytes, 126.3 MiB)
Maximum count of volumes 128
Count of bad physical eraseblocks: 4
Count of reserved physical eraseblocks: 36
Current maximum erase counter value: 2
Minimum input/output unit size: 2048 bytes
Character device major/minor: 251:0
Present volumes: 0, 1, 2
Volume ID: 0 (on ubi0)
Type: dynamic
Alignment: 1
Size: 661 LEBs (83931136 bytes, 80.0 MiB)
State: OK
Name: rootfs
Character device major/minor: 251:1
-----------------------------------
Volume ID: 1 (on ubi0)
Type: dynamic
Alignment: 1
Size: 34 LEBs (4317184 bytes, 4.1 MiB)
State: OK
Name: data
Character device major/minor: 251:2
-----------------------------------
Volume ID: 2 (on ubi0)
Type: dynamic
Alignment: 1
Size: 124 LEBs (15745024 bytes, 15.0 MiB)
State: OK
Name: recover
Character device major/minor: 251:3
===================================
This is all I managed to get of information.
Did I forgot something?
Once again, thank you for your help!
--Ibrahim
On 18/11/2015 18:01, Richard Weinberger wrote:
> On Mon, Nov 9, 2015 at 3:04 PM, Ibrahim Mattus Neto
> <ibrahim.neto at writesys.com.br> wrote:
>> Hi!
>>
>> I am having problems resizing a ubifs volume, I used the command ubirsvol
>> (version: 1.5.1) but when I try mounting it I get the following error:
>>
>> [ 8840.450000] UBIFS error (ubi0:1 pid 720): validate_sb: bad LEB count: 413
>> in superblock, 331 on UBI volume, 19 minimum required
>> [ 8840.460000] UBIFS error (ubi0:1 pid 720): validate_sb: bad superblock,
>> error 1
>> [ 8840.470000] magic 0x6101831
>> [ 8840.480000] crc 0x539e8e1c
>> [ 8840.480000] node_type 6 (superblock node)
>> [ 8840.480000] group_type 0 (no node group)
>> [ 8840.490000] sqnum 1
>> [ 8840.490000] len 4096
>> [ 8840.490000] key_hash 0 (R5)
>> [ 8840.500000] key_fmt 0 (simple)
>> [ 8840.500000] flags 0x0
>> [ 8840.500000] big_lpt 0
>> [ 8840.510000] space_fixup 0
>> [ 8840.510000] min_io_size 2048
>> [ 8840.510000] leb_size 126976
>> [ 8840.520000] leb_cnt 413
>> [ 8840.520000] max_leb_cnt 413
>> [ 8840.520000] max_bud_bytes 2158592
>> [ 8840.530000] log_lebs 3
>> [ 8840.530000] lpt_lebs 2
>> [ 8840.530000] orph_lebs 2
>> [ 8840.540000] jhead_cnt 1
>> [ 8840.540000] fanout 8
>> [ 8840.540000] lsave_cnt 256
>> [ 8840.540000] default_compr 1
>> [ 8840.550000] rp_size 2558566
>> [ 8840.550000] rp_uid 0
>> [ 8840.550000] rp_gid 0
>> [ 8840.560000] fmt_version 4
>> [ 8840.560000] time_gran 1000000000
>> [ 8840.560000] UUID B1F16610-EEDF-471F-B5AD-279F21C00729
>> mount: mounting ubi0:recover on /recover failed: Invalid argument
>>
>> I was reading through the archives and found a similar issue but no
>> solution, is there a way to shrink a volume?
>>
>> I was thinking about changing the LEB count inside the superblock but I
>> didn't know how to (and thought it would be too risky)
> Please more details. :)
> What exactly did you do?
>
More information about the linux-mtd
mailing list