Je souhaite forcer une partition de disque en mode lecture seule et la conserver en lecture seule pendant plus de 30 minutes.
Ce que j'ai essayé:
mount -o remount,ro (partition-identifier) (mount-point) -t (filesystem)
Problème : cela a donné une erreur de périphérique occupé car certains processus utilisaient la partition. Je ne veux pas tuer les processus en utilisant le disque. Je veux simuler soudainement le disque en lecture seule lorsque les processus l'utilisent encore.
Clé sysrq magique utilisée, comme ci-dessous
echo u > /proc/sysrq-trigger
Problème : cela rendra toutes les partitions de disque en lecture seule (bien que le périphérique soit occupé). Mais après 20-30 minutes, la machine se redémarre. Certaines machines redémarrent immédiatement une fois cette commande exécutée. Je ne sais pas encore ce qui cause ce redémarrage. Je ne veux pas que la machine redémarre d'elle-même et ai besoin de garder le disque en mode lecture seule pendant plus de 30 minutes.
Question : Existe-t-il un meilleur moyen de forcer une partition de disque unique à être en lecture seule et de la maintenir dans cet état pendant une demi-heure et de la ramener en mode lecture-écriture sans provoquer de redémarrage dans le processus?
la source
fsfreeze -f
? Il ne remonte pas exactement le système de fichiers en lecture seule. Au lieu de cela, il bloque tous les écrivains jusqu'àfsfreeze -u
. Mais c'est similaire ...fsfreeze -f
et dans mon cas c'était plus "os freeze". Peut-être parce que les écritures ont été bloquées au lieu d'être rejetées?fsfreeze
rendu mon système inaccessible et je n'ai pas pu entrer la commande de dégel ne pouvant pas revenir à un terminal et j'ai dû redémarrer dur ma machine. Soyez donc prévenu ! :)Réponses:
Normalement, vous ne pouvez pas remonter un système de fichiers en lecture seule si un processus contient un fichier ouvert en écriture ou s'il contient un fichier supprimé mais toujours ouvert. De même, vous ne pouvez pas démonter un système de fichiers qui a un fichier ouvert (ou des utilisations similaires de fichiers tels qu'un processus ayant son répertoire actuel, un exécutable en cours d'exécution, etc.).
Vous pouvez utiliser
umount -l
pour libérer le point de montage et empêcher l'ouverture d'autres fichiers, mais gardez le système de fichiers monté et laissez les processus qui ont déjà des fichiers ouverts fonctionner normalement.Je ne peux pas penser à un moyen générique de forcer un système de fichiers à être remonté en lecture seule alors qu'il ne devrait pas l'être. Cependant, si le système de fichiers est soutenu par un périphérique de bloc, vous pouvez rendre le périphérique de bloc en lecture seule , par exemple
echo u > /proc/sysrq-trigger
est un moyen assez extrême pour forcer le remontage en lecture seule, car il affecte tous les systèmes de fichiers. Il s'agit d'une méthode de dernier recours pour laisser le système de fichiers dans un état propre juste avant le redémarrage.Le remontage d'un système de fichiers en lecture seule ne provoque pas de redémarrage. La cause du redémarrage n'est pas directement liée au remontage de la partition en lecture seule. Peut-être que ce n'est pas du tout lié, ou peut-être que cela déclenche un bogue dans l'application qui le fait tourner et fait surchauffer le processeur et votre processeur est défectueux ou overclocké et finalement redémarre. Vous devez rechercher la cause du redémarrage.
la source
echo 1 | sudo tee /sys/block/mmcblk0/mmcblk0p2/ro
echo u > /proc/sysrq-trigger
n'est pas seulement extrême, mais peut également vous forcer à redémarrer si vous souhaitez remonter RW. Lorsque j'ai essayé cela, puis remonté (avecmount..
), j'aidmesg
dit "Impossible de remonter RDWR en raison de la liste des inodes orphelins non traités. Veuillez démonter / remonter à la place"Utilisez
mount
l'option force de (en supposant que votre monture en a une; GNUmount
non, mais BSD et macOS par exemple):Bien sûr, votre kilométrage peut varier en fonction du système de fichiers réel, de la version du noyau et de la situation , il s'agit donc d'une option de niveau supérieur essayant d'autres astuces de niveau inférieur, comme par exemple mentionné par @Gilles.
la source
/
partition ext4 .umount -f
, mais j'ai juste essayé de remonter vers ro, et bien que -f fasse que la commande ne retourne pas d'erreur, le système de fichiers n'est en fait pas fait en lecture seule.-f
est--fake
. Quote: "Fait que tout soit fait sauf l'appel système réel; si ce n'est pas évident, cela" fausse "le montage du système de fichiers. Cette option est utile en conjonction avec l'indicateur -v pour déterminer ce que la commande mount essaie de faire Il peut également être utilisé pour ajouter des entrées pour les périphériques qui ont été montés précédemment avec l'option -n. L'option -f vérifie les enregistrements existants dans / etc / mtab et échoue lorsque l'enregistrement existe déjà (avec un montage normal non faux, cette vérification est effectuée par le noyau). "-f
effet «force».