Eu acredito que esta questão não é específica para Linux ou ext4, mas para qualquer sistema de arquivos em geral.
Um powerloss não destruirá nenhum dado a menos que haja um arquivo sendo gravado no disco.
Isso basicamente significa que, quando um programa abre um arquivo, ele pode fazer isso de muitas maneiras diferentes.
Ele pode fazer isso apenas para ler a partir dele, ele pode fazer isso para escrever desde o início (sobrescrever tudo) e anexar ao arquivo (escrever no final do arquivo).
Agora, o truque é que um arquivo tem dois segmentos. Estes são:
- A tabela de conteúdo,
- Os dados.
No início do disco rígido, é gravada uma tabela que contém a (s) localização (ões) de um arquivo no disco rígido. Nos locais especificados, os dados são gravados como 0s e 1s no disco rígido.
A leitura de um arquivo de volta é, obviamente, primeiro obter sua localização e, em seguida, a partir do local real, obter a quantidade de 0s e 1s para formar o arquivo real na memória.
Quando o disco rígido está gravando no arquivo, ele primeiro grava os dados no disco, vê quais são os novos pontos de início e término (a inicialização normalmente é a mesma, mas no caso de os dados serem fragmentados e um segundo bloco foi usado, seus pontos de início e fim são registrados) e aqueles são gravados na tabela de partições.
Se a energia falhar durante a gravação no arquivo, o índice obviamente não é consistente com os dados. Isso cria os fenômenos de atingir um erro de leitura ao tentar acessar o arquivo. Você vê que está lá, mas ainda não consegue acessá-lo.
Uma vez que a leitura de um arquivo não altera o conteúdo do disco, a perda de energia não afetará aqui.