Monte / etc do disco em squashfs

3

Eu criei um sistema gentoo-live que deve ser inicializado a partir de um cartão CF. Todo o sistema de arquivos está em um squashfs. Eu criei um initrd personalizado que primeiro monta o cartão CF e a partir daí o sistema de arquivos esmagado para o que se tornará / .

Eu gostaria que /etc fosse gravável, então copiei para o cartão CF e adicionei uma ligação. No entanto, isso não parece funcionar. O sistema inicializa, mas o / etc não está montado.

Gostaria de saber se minha abordagem está correta e o que posso fazer para solucioná-la ou, se não, qual seria o caminho certo para isso.

Este é o init-script do meu initrd :

#!/bin/busybox sh
mount -t proc none /proc
mount -t sysfs none /sys

mount /dev/sda1 /mnt/flash
mount -o loop /mnt/flash/filesystem.squashfs /mnt/root
mount -B /mnt/flash/etc /mnt/root/etc
mount -o remount,rw /mnt/root/etc

umount /proc
umount /sys

exec switch_root /mnt/root /sbin/init

Esta é a saída abreviada de cat /proc/mounts :

rootfs / rootfs rw 0 0
/dev/sda1 /mnt/flash ext2 rw,relatime,errors=continue,user_xattr,acl 0 0
/dev/loop0 / squashfs ro,relatime 0 0
...
    
por Anonymous Coward 19.03.2013 / 16:26

1 resposta

2

O comando mount do BusyBox não reconhece -B ; você terá que usar -o bind :

mount -o bind /mnt/flash/etc /mnt/root/etc

Além disso, acho que a remontagem é desnecessária se /mnt/flash já estiver gravável. Mas tente consertar a montagem da ligação primeiro.

    
por 19.03.2013 / 17:47