Quero forçar uma partição de disco para o modo somente leitura e mantê-la somente leitura por mais de 30 minutos.
O que eu tentei:
mount -o remount,ro (partition-identifier) (mount-point) -t (filesystem)
Problema : isso gerou erro de ocupado do dispositivo, pois alguns processos estavam usando a partição. Não quero matar os processos usando o disco. Eu quero simular o disco repentinamente ficando somente leitura quando os processos ainda o estiverem usando.
Chave mágica sysrq usada, como abaixo
echo u > /proc/sysrq-trigger
Problema : Isso tornará todas as partições de disco somente leitura (embora o dispositivo esteja ocupado). Mas depois de 20 a 30 minutos, a máquina está sendo reinicializada. Algumas máquinas são reiniciadas imediatamente após a execução deste comando. Ainda não tenho certeza do que está causando essa reinicialização. Não quero que a máquina seja reiniciada e preciso manter o disco no modo somente leitura por mais de 30 minutos.
Pergunta : Existe alguma maneira melhor de forçar uma única partição de disco para somente leitura e mantê-la nesse estado por meia hora e trazê-la de volta ao modo de leitura e gravação sem causar reinicialização no processo?
fonte
fsfreeze -f
? Ele não remonta exatamente o sistema de arquivos somente leitura. Em vez disso, bloqueia todos os escritores atéfsfreeze -u
. Mas é semelhante ...fsfreeze -f
e, no meu caso, era mais "o congelamento". Talvez porque as gravações foram bloqueadas em vez de serem rejeitadas?fsfreeze
tornou meu sistema inacessível e não pude digitar o comando descongelar, não consegui voltar para um terminal e tive que reiniciar minha máquina. Portanto, esteja avisado ! :)Respostas:
Você normalmente não pode remontar um sistema de arquivos como somente leitura se os processos tiverem um arquivo aberto para gravação ou se ele contiver um arquivo excluído, mas ainda aberto. Da mesma forma, você não pode desmontar um sistema de arquivos que possua qualquer arquivo aberto (ou usos similares de arquivos, como um processo com o diretório atual, um executável em execução etc.).
Você pode usar
umount -l
para liberar o ponto de montagem e impedir a abertura de outros arquivos, mas mantenha o sistema de arquivos montado e mantenha os processos que já possuem arquivos abertos funcionando normalmente.Não consigo pensar em uma maneira genérica de forçar um sistema de arquivos a ser remontado somente leitura quando não deveria. No entanto, se o sistema de arquivos for suportado por um dispositivo de bloco, você poderá torná-lo somente leitura , por exemplo
echo u > /proc/sysrq-trigger
é uma maneira bastante extrema de forçar a remontagem como somente leitura, porque afeta todos os sistemas de arquivos. Ele é um método de última instância para deixar o sistema de arquivos em um estado limpo antes da reinicialização.Remontar um sistema de arquivos como somente leitura não causa uma reinicialização. Tudo o que está causando a reinicialização não está diretamente relacionado à remontagem da partição como somente leitura. Talvez não esteja completamente relacionado, ou talvez isso acione um bug no aplicativo que faz com que ele gire e faça com que o processador superaqueça e seu processador esteja com defeito ou com overclock e, eventualmente, reinicie. Você precisa rastrear a causa da reinicialização.
fonte
echo 1 | sudo tee /sys/block/mmcblk0/mmcblk0p2/ro
echo u > /proc/sysrq-trigger
não é apenas extremo, mas também pode forçá-lo a reiniciar, se desejar remontar o RW. Quando eu tentei isso e remontei (commount..
)dmesg
disse: "Não foi possível remontar o RDWR por causa da lista de inodes órfãos não processados. Por favor desmonte / remonte em vez disso"Use
mount
a opção force (assumindo que sua montagem tenha uma; GNUmount
não, mas BSD e macOS, por exemplo):Obviamente, sua milhagem pode variar dependendo do sistema de arquivos real, da versão do kernel e da situação ; portanto, essa é apenas uma opção de nível superior, tentando outros truques de nível inferior, como por exemplo, mencionados pelo @Gilles.
fonte
/
partição ext4 .umount -f
, mas apenas tentei remontar para ro e, enquanto o comando -f não retorna um erro, o sistema de arquivos é, de fato, não feito apenas para leitura.-f
é--fake
. Citação: "Faz com que tudo seja feito, exceto a chamada real do sistema; se não for óbvio, isso '' falsifica '' a montagem do sistema de arquivos. Esta opção é útil em conjunto com o sinalizador -v para determinar o que o comando mount está tentando Também pode ser usado para adicionar entradas para dispositivos que foram montados anteriormente com a opção -n.A opção -f verifica se há registro existente no / etc / mtab e falha quando o registro já existe (com montagem não falsa regular, esta verificação é feita pelo kernel) ".-f
realmente significam "força".