Quiero forzar una partición de disco al modo de solo lectura y mantenerla solo de lectura durante más de 30 minutos.
Lo que he intentado:
mount -o remount,ro (partition-identifier) (mount-point) -t (filesystem)
Problema : Esto dio un error de dispositivo ocupado ya que algunos procesos estaban usando la partición. No quiero matar los procesos usando el disco. Quiero simular que el disco de repente se vuelve de solo lectura cuando los procesos todavía lo están usando.
Clave mágica sysrq usada, como a continuación
echo u > /proc/sysrq-trigger
Problema : Esto hará que todas las particiones del disco sean de solo lectura (aunque el dispositivo esté ocupado). Pero después de 20-30 minutos, la máquina se reinicia sola. Algunas máquinas se reinician inmediatamente una vez que se ejecuta este comando. No estoy seguro de qué está causando este reinicio todavía. No quiero que la máquina se reinicie y necesito mantener el disco en modo de solo lectura durante más de 30 minutos.
Pregunta : ¿Hay alguna forma mejor de forzar una sola partición de disco a solo lectura y mantenerla en ese estado durante media hora y volverla al modo de lectura-escritura sin provocar ningún reinicio en el proceso?
fuente
fsfreeze -f
? No vuelve a montar exactamente el sistema de archivos de solo lectura. En cambio, bloquea a todos los escritores hastafsfreeze -u
. Pero es similar ...fsfreeze -f
y en mi caso fue más "os freeze". ¿Quizás porque las escrituras fueron bloqueadas en lugar de ser rechazadas?fsfreeze
volví mi sistema inaccesible y no pude ingresar el comando de descongelación al no poder volver a un terminal y tuve que reiniciar mi máquina. Así que ten cuidado ! :)Respuestas:
Normalmente no puede volver a montar un sistema de archivos como de solo lectura si los procesos tienen un archivo abierto para escritura, o si contiene un archivo que se eliminó pero aún está abierto. Del mismo modo, no puede desmontar un sistema de archivos que tenga abierto un archivo (o usos similares de archivos, como un proceso que tenga su directorio actual allí, un ejecutable en ejecución, etc.).
Puede usar
umount -l
para liberar el punto de montaje y evitar la apertura de más archivos, pero mantenga el sistema de archivos montado y mantenga los procesos que ya tienen archivos abiertos ejecutándose normalmente.No puedo pensar en una forma genérica de forzar que un sistema de archivos se vuelva a montar de solo lectura cuando no debería serlo. Sin embargo, si el sistema de archivos está respaldado por un dispositivo de bloque, puede hacer que el dispositivo de bloque sea de solo lectura , p. Ej.
echo u > /proc/sysrq-trigger
es una forma bastante extrema de forzar el remontaje como solo lectura, porque afecta a todos los sistemas de archivos. Se entiende como un último método para dejar el sistema de archivos en un estado limpio justo antes de reiniciar.Volver a montar un sistema de archivos como solo lectura no provoca un reinicio. Lo que sea que esté causando el reinicio no está directamente relacionado con volver a montar la partición como solo lectura. Tal vez no esté completamente relacionado, o tal vez esto desencadena un error en la aplicación que hace que gire y haga que el procesador se sobrecaliente y su procesador esté defectuoso o overclockeado y finalmente se reinicie. Debe localizar la causa del reinicio.
fuente
echo 1 | sudo tee /sys/block/mmcblk0/mmcblk0p2/ro
echo u > /proc/sysrq-trigger
no solo es extremo, sino que también puede obligarlo a reiniciar si desea volver a montar RW. Cuando intenté esto y luego volví a montar (conmount..
)dmesg
dije "No se pudo volver a montar RDWR debido a la lista de inodos huérfanos no procesados. Por favor, desmonte /Use
mount
la opción force (suponiendo que su montaje tenga uno; GNUmount
no, pero BSD y macOS, por ejemplo):Por supuesto, su kilometraje puede variar según el sistema de archivos real, la versión del kernel y la situación , por lo que esta es solo una opción de nivel superior que prueba otros trucos de nivel inferior como, por ejemplo, @Gilles.
fuente
/
partición ext4 .umount -f
, pero solo intenté volver a montar en ro, y mientras que -f hace que el comando no devuelva un error, el sistema de archivos es, de hecho, no solo de lectura.-f
es--fake
. Cita: "Hace que se haga todo excepto la llamada real del sistema; si no es obvio, esto '' falsifica '' el montaje del sistema de archivos. Esta opción es útil junto con el indicador -v para determinar qué está intentando el comando de montaje do. También se puede usar para agregar entradas para dispositivos que se montaron anteriormente con la opción -n. La opción -f verifica el registro existente en / etc / mtab y falla cuando el registro ya existe (con el montaje normal no falso, esta comprobación la realiza el kernel) ".-f
en efecto, significa 'fuerza'.