Во встроенном дистрибутиве Linux с ext4 у меня есть следующий скрипт umountfs:
#!/bin/sh
### BEGIN INIT INFO
# Provides: umountfs
# Required-Start:
# Required-Stop:
# Default-Start:
# Default-Stop: 0 6
# Short-Description: Turn off swap and unmount all local file systems.
# Description:
### END INIT INFO
PATH=/sbin:/bin:/usr/sbin:/usr/bin
echo "Deactivating swap..."
[ -x /sbin/swapoff ] && swapoff -a
# We leave /proc mounted.
echo "Unmounting local filesystems..."
grep -q /mnt/ram /proc/mounts && mount -o remount,ro /mnt/ram
mount -o remount,ro /
umount -f -a -r > /dev/null 2>&1
: exit 0
У меня вопрос по поводу следующих строк:
mount -o remount,ro /
umount -f -a -r > /dev/null 2>&1
Вопрос в том, почему мынужно перемонтировать rootfs в режим только для чтения перед размонтированием?
Я видел какое-то объяснение, как будто нам нужно перемонтировать rootfs в ro
, чтобы заставить все ожидающие запросы записи записываться на диск.Но это не удовлетворяет меня, потому что перепрошивка ожидающих запросов на запись является частью команды umount.
Итак, вопрос: кто-то понимает, почему нам нужно перемонтировать rootfs в ro
перед его размонтированием?