I want to force a disk partition to read only mode and keep it read-only for more than 30 minutes.

What I have tried:

  1. mount -o remount,ro (partition-identifier) (mount-point) -t (filesystem)

    Issue: This gave device busy error as some processes were using the partition. I don't want to kill the processes using the disk. I want to simulate the disk suddenly going read-only when the processes are still using it.

  2. Used magic sysrq key, like below

    echo u > /proc/sysrq-trigger

    Issue: This will make all the disk partitions read-only (although device is busy). But after 20-30 minutes the machine is rebooting itself. Some machines are rebooting immediately once this command is executed. Not sure what is causing this reboot yet. I don't want the machine to reboot itself and need to keep the disk in read-only mode for 30+ minutes.

Question: Is there any better way I can force a single disk partition to read-only and sustain it in that state for half an hour and bring it back to read-write mode without causing any reboot in the process?

  • 4
    Have you considered fsfreeze -f? It doesn't exactly remount the filesystem read-only. Instead, it blocks all writers until fsfreeze -u. But it's similar...
    – Celada
    Apr 8, 2015 at 9:30
  • Thanks Celada! that's a good idea!.. Right now i don't have fsfreeze working in my machine but i will try this.
    – AdithyaCS
    Apr 8, 2015 at 9:59
  • I tried fsfreeze -f and it my case it was more "os freeze". Maybe because writes were blocked instead of being rejected? May 7, 2017 at 11:40
  • 1
    fsfreeze turned my system inaccessible and I could not enter the unfreeze command not being able to switch back to a terminal and had to hard-reboot my machine. So be warned! :)
    – Alex
    Aug 12, 2018 at 21:19

2 Answers 2


You normally can't remount a filesystem as read-only if processes have a file on it that's open for writing, or if it contains a file that's deleted but still open. Similarly, you can't unmount a filesystem that has any file open (or similar uses of files such as a process having its current directory there, a running executable, etc.).

You can use umount -l to release the mount point and prevent the opening of further files, but keep the filesystem mounted and keep processes that already have files open running normally.

I can't think of a generic way to force a filesystem to be remounted read-only when it shouldn't be. However, if the filesystem is backed by a block device, you can make the block device read-only, e.g.

echo 1 >/sys/block/dm-4/ro
echo 1 >/sys/block/sda/sda2/ro

echo u > /proc/sysrq-trigger is a rather extreme way to force remounting as read-only, because it affects all filesystems. It's meant as a last-ditch method to leave the filesystem in a clean state just before rebooting.

Remounting a filesystem as read-only does not cause a reboot. Whatever is causing the reboot is not directly related to remounting the partition as read-only. Maybe it's completely unrelated, or maybe this triggers a bug in the application which causes it to spin and make the processor overheat and your processor is defective or overclocked and eventually reboots. You need to track down the cause of the reboot.

  • 4
    Unfortunately, this is not portable solution. On raspberry I get: "Permission denied" when I run echo 1 | sudo tee /sys/block/mmcblk0/mmcblk0p2/ro May 7, 2017 at 14:11
  • .. and echo u > /proc/sysrq-trigger is not only extreme, but can also force you to reboot if you want to remount back RW. When I tried this and then remount (with mount..) dmesg said "Couldn't remount RDWR because of unprocessed orphan inode list. Please umount/remount instead" May 7, 2017 at 14:14
  • @PiotrFindeisen did you run that as root?
    – hanshenrik
    Sep 14, 2018 at 10:01
  • @hanshenrik i guess so Sep 14, 2018 at 20:02
  • yep, did not work on RPI for me too. Nov 25, 2020 at 9:09

Use mount's force option (assuming your mount has one; GNU mount does not, but BSD and macOS for example do):

mount -f -o remount,ro /mount/point

Of course, your mileage may vary depending on actual file system, kernel version and situation, so this is just higher level option trying other lower-level tricks as e.g. mentioned by @Gilles.

  • 1
    @psusi no. It allowed me remount my ext4 / partition. May 7, 2017 at 10:58
  • 3
    Turns out I was thinking of umount -f, but I just tried remounting to ro, and while the -f makes the command not return an error, the filesystem is in fact, not made read only.
    – psusi
    May 8, 2017 at 0:29
  • 1
    @psusi, no surprise. I wouldn't expect any single approach to work in all cases. This worked for me repeatably (ext4 root partition on raspberry for the matter) -- and i mean remounting to RO, not ignoring errors -- so I guess will work for some, but not all, other cases. Sorry this didn't include yours. May 9, 2017 at 6:32
  • 25
    man mount says -f is --fake. Quote: "Causes everything to be done except for the actual system call; if it's not obvious, this ''fakes'' mounting the filesystem. This option is useful in conjunction with the -v flag to determine what the mount command is trying to do. It can also be used to add entries for devices that were mounted earlier with the -n option. The -f option checks for existing record in /etc/mtab and fails when the record already exists (with regular non-fake mount, this check is done by kernel)." Dec 14, 2017 at 19:38
  • 7
    BSD and, therefore, macOS mounts' -f does indeed mean "force".
    – terdon
    Sep 17, 2018 at 8:45

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .