You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将根文件系统重新挂载为只读权限?挂载提示忙的解决办法

解决根目录挂载只读时提示“mount: / is busy”的问题

嗨,这个问题我在日常运维里碰到过好多次了!提示“/ is busy”本质上就是当前还有进程在读写根目录下的文件或子目录,导致挂载点无法切换成只读模式。下面给你分情况给出解决方案,包括你提到的允许重启的方案:

一、不重启的临时解决方法

  • 找出并终止占用进程
    先搞清楚到底是哪些进程在占用根目录,用这两个命令二选一就行:

    # 用lsof列出所有访问/的进程
    sudo lsof /
    # 用fuser更直观地显示进程信息
    sudo fuser -vm /
    

    输出结果里会列出进程ID(PID)和对应的程序名。如果是普通服务(比如nginx、apache这类),可以用sudo systemctl stop <服务名>优雅关闭;如果是无关紧要的用户进程,直接sudo kill <PID>就行。等所有占用进程都停掉后,再重新执行sudo mount -o remount,ro /试试。
    注意:如果是系统核心进程(比如systemd、init这类)占用,那基本没法手动终止,这时候就得考虑重启了。

  • 切换到单用户模式
    单用户模式下系统只会启动最基础的进程,几乎不会有进程占用根目录。操作步骤大概是:

    1. 重启系统,在GRUB启动菜单(如果是UEFI可能需要按特定键调出,比如F12、Esc)里选中你要启动的内核,按e进入编辑模式。
    2. 找到以linux开头的行,把末尾的ro改成rw init=/bin/bash,或者添加single参数(不同发行版略有差异,比如Debian/Ubuntu用single,CentOS/RHEL用init 1)。
    3. 按Ctrl+X或者F10启动,进入单用户shell后,直接执行sudo mount -o remount,ro /即可。完成后可以执行exec /sbin/init回到正常系统,或者直接重启。

二、允许重启的稳妥方案

如果可以重启,那直接修改挂载配置文件是最省心的:

  1. 编辑/etc/fstab文件:
    sudo nano /etc/fstab
    
  2. 找到根目录对应的挂载行,通常是类似这样的:
    /dev/sda1 / ext4 defaults 0 1
    
    把defaults替换成ro,或者在后面加上,ro,改成:
    /dev/sda1 / ext4 ro 0 1
    # 或者保留其他默认选项:/dev/sda1 / ext4 defaults,ro 0 1
    
  3. 保存退出后,执行sudo reboot重启系统。开机后根目录就会自动以只读模式挂载,完全不会有“busy”的问题。

小提醒

如果只是临时需要只读模式,重启后要恢复读写的话,记得重启后再修改/etc/fstab把ro改回rw,或者临时执行sudo mount -o remount,rw /切换回来。

内容的提问来源于stack exchange,提问作者Yves

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:21:41