Overlay FS исключить папку

У меня есть встроенное устройство, на которое я хочу наложить rootfs. Пока мой сценарий initramfs выглядит так:

#!/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
mount -t proc proc /proc
mount -t devtmpfs none /dev
mount -t sysfs sysfs /sys

rootdev_ro=""
rootdev_rw=""
factory_reset=""

[ ! -f /etc/platform-preboot ] || . /etc/platform-preboot

if [ -z "$rootdev_ro" ]; then
    for bootarg in `cat /proc/cmdline`; do
    echo "${bootarg}"
    arg=`expr "x$bootarg" : 'x[^=]*=\(.*\)' || echo ''`

    case "$bootarg" in
        root=*) rootdev_ro="${arg}" ;;
        rootrw=*) rootdev_rw="${arg}" ;;
        factoryreset=*) factory_reset="yes";;
    esac
    done
fi

mkdir -p /mnt/lowerdev
mkdir -p /mnt/overlaydev
mkdir -p /mnt/overlay

mount -t ext4 -o "ro" "${rootdev_ro}" /mnt/lowerdev
mount -t ext4 -o "rw" "${rootdev_rw}" /mnt/overlaydev

# Here's factory reset
if [ "$factoryreset" == "yes" ]; then
    echo "Applying factory defaults..."    
    rm -fr /mnt/overlaydev/*
fi

# Upper and work folders must be on the same mount
mkdir -p /mnt/overlaydev/upper
mkdir -p /mnt/overlaydev/work

mount -t overlay overlay -o lowerdir=/mnt/lowerdev,upperdir=/mnt/overlaydev/upper,workdir=/mnt/overlaydev/work /mnt/overlay

echo "Switching to rootfs on overlay..."
mount --move /sys  /mnt/overlay/sys
mount --move /proc /mnt/overlay/proc
mount --move /dev  /mnt/overlay/dev

exec switch_root /mnt/overlay /sbin/init 

Покрышка прекрасно работает там, но я хотел бы, чтобы иметь возможность изменять параметры загрузки ядра инициализации на lowerdir файл /boot/extlinux/extlinux.conf добавить factoryreset аргумент при необходимости.

Если я попытаюсь смонтировать раздел lowerdir, когда система работает, чтобы изменить файл, я получаю сообщение об ошибке

already mounted or mount point busy

Можно ли указать нижний каталог, чтобы исключить каталог / boot, или мне нужно накладывать папки по одной?

0 ответов

Другие вопросы по тегам