1

У меня есть встроенная система, в которой есть (всегда) доступная только для чтения корневая файловая система с записываемой файловой системой, наложенной поверх нее. Тем не менее, у меня возникают проблемы при отключении системы при размонтировании или перемонтировании ее как файловой системы только для чтения (что приводит к таким вещам, как потерянные i-узлы и тому подобное, когда это проверяется при следующей загрузке).

# mount -o remount,ro /initrd/root-overlay/
mount: mounting /dev/mmcblk0p7 on /initrd/root-overlay failed: Device or resource busy

Система загружается с образом initrd, который выполняет монтирование файловой системы, прежде чем продолжить загрузку. Мы делаем это в linuxrc файле initrd, потому что иногда мы хотим выбрать другой раздел в качестве корневой файловой системы.

Вот скрипт linuxrc, который устанавливает корневой раздел и его наложение:

echo "Mounting /proc..."
mount -t proc none /proc

echo "Mounting /dev/mmcblk0p5 on /ro-root..."
mkdir -p /ro-root
mount -o ro -t ext4 /dev/mmcblk0p5 /ro-root

echo "Mounting /dev/mmcblk0p7 on /root-overlay..."
mkdir -p /root-overlay
mount -o rw -t ext4 /dev/mmcblk0p7 /root-overlay

echo "Creating union of /ro-root and /root-overlay on /realroot..."
mkdir -p /real-root
mount -t aufs -o br:/root-overlay=rw:/ro-root=ro none /real-root

echo "Pivoting to /real-root... initrd will be at /initrd."
cd /real-root
mkdir -p initrd
pivot_root . initrd

echo "Unmounting /proc..."
umount /initrd/proc
echo "Unmounting /dev..."
umount /initrd/dev

echo "Executing real init..."
exec /sbin/init

Я предполагаю, что может быть специальный синтаксис, который я могу использовать с командой mount (передаваемой через опцию -o ), но я не знаю, что это такое.

Я открыт для альтернативных способов выполнения первоначального монтирования файловых систем, если это необходимо.

1 ответ1

1

Попробуй это. Размонтирует все установленные aufs:

umount -l $(grep 'aufs' /proc/mounts | awk '{print$2}' | sort -r)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .