Tentativa de remontagem indesejada de rootfs UBIFS durante a inicialização

1

Eu tenho um sistema ARM usando o buildroot-2011.05 - Linux 2.6.38.7. A placa usa um flash NAND e para contornar um problema com squashfs não gostando de blocos ruins eu mudei o sistema de arquivos raiz para usar UBIFS somente leitura em vez disso.

O sistema agora inicia Ok, mas eu estou preocupado e não consigo encontrar a origem de uma mensagem do kernel sobre a remontagem do volume UBI R / W:

[    1.540000] UBIFS: read-only UBI device
[    1.630000] UBIFS: recovery needed
[    1.700000] UBIFS: recovery deferred
[    1.710000] UBIFS: mounted UBI device 0, volume 0, name "rootfs"
[    1.710000] UBIFS: mounted read-only
[    1.720000] UBIFS: file system size:   14321664 bytes (13986 KiB, 13 MiB, 111 LEBs)
[    1.720000] UBIFS: journal size:       9033728 bytes (8822 KiB, 8 MiB, 71 LEBs)
[    1.730000] UBIFS: media format:       w4/r0 (latest is w4/r0)
[    1.740000] UBIFS: default compressor: lzo
[    1.740000] UBIFS: reserved for root:  0 bytes (0 KiB)
[    1.750000] VFS: Mounted root (ubifs filesystem) readonly on device 0:14.
[    1.760000] devtmpfs: mounted on dev
[    1.770000] Freeing init memory: 104K
**[    2.060000] UBIFS: cannot re-mount R/W - UBI volume is R/O**

Ele usa o barebox init (sem sysvinit), mas acho que a mensagem é gerada antes de chegar a isso. Há posts na rede sobre o bug UBIFS ao remontar o R / W após um erro, mas este não é o caso, ele é montado somente para leitura. Tudo o que posso pensar é que poderia haver um comportamento padrão do kernel para montar o rootfs r / w.

Kernel bootargs:

 console=ttymxc0,115200 rootfstype=ubifs ro ubi.mtd=3 root=ubi0:rootfs otg_mode=host lpj=514048 mtdparts=mxc_nand:256k(barebox)ro,128k(bareboxenv),3M(kernel),16M(rootfs)ro,16M(flash),-(misc)

Partes relevantes do inittab e do fstab:

    ::sysinit:/bin/mount -t proc proc /proc
    ::sysinit:/bin/mkdir -p /dev/pts
    ::sysinit:/bin/mount -a

    proc            /proc           proc     defaults                                                       0                       0
    devpts          /dev/pts        devpts   defaults,gid=5,mode=620                0                       0
    tmpfs           /tmp            tmpfs    defaults                                                       0                       0
    tmpfs           /var            tmpfs    defaults                                                       0                       0
    sysfs           /sys            sysfs    defaults                                                       0                       0
    /dev/mtdblock4  /mnt/flash      jffs2    noatime  

Qualquer ajuda recebida com gratidão!

    
por John Mac 05.12.2012 / 03:06

2 respostas

1

Eu estava acompanhando um problema semelhante. Especifiquei um rootfs somente leitura no cmdline do kernel e vi a montagem do UBIFS como somente leitura durante a inicialização, mas / fui misteriosamente read-write quando cheguei a um shell.

No meu caso, o script /etc/init.d/mountall acabou por conter a linha

/bin/mount -o remount,noatime,nodiratime /dev/root /

Por sua vez, a geração desse script foi controlada por uma opção de configuração do sistema de arquivos no SDK da minha placa. Os detalhes podem variar dependendo da sua configuração, mas verifique seus scripts de inicialização e verifique quaisquer opções de configuração que os gerem.

    
por 05.04.2016 / 17:10
0

Faça make menuconfig para o buildroot.

Em seguida, no menu 'Configuração do sistema', certifique-se de que 'o sistema de arquivos raiz read-write durante a inicialização' não esteja selecionado.

    
por 09.02.2016 / 08:40

Tags