簡體   English   中英

為什么在umountfs腳本中卸載之前將文件系統重新裝載為只讀?

[英]why to remount filesystem to read-only before unmounting in umountfs script?

在帶有ext4的嵌入式Linux發行版上,我具有以下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

通常,您無法卸載根文件系統,因為至少有一個正在運行的正在使用文件系統的進程-init或systemd。 以只讀方式重新安裝根文件系統會刷新所有臟數據並防止再次對其進行修改,從而使文件系統保持一致。 通常,在那時,內核會重啟,而實際上並未卸載根文件系統。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM