ext4 deve ser resistente contra a extração do plugue. No entanto, para ser assim, requer que o subsistema de armazenamento não perca escritas comprometidas.
Primeiro, confirme que você não está montando com barrier=0
/ nobarrier
. Isso geralmente melhora o desempenho, ao custo de corrupção, se um desligamento adequado não for executado. Além disso, verifique seus logs de kernel para ter certeza de que as barreiras não estão sendo desativadas pelo ext4 porque algo na pilha não as suporta.
A próxima coisa a tentar, pelo menos em discos magnéticos (não-SSD) é desativar o cache de gravação de disco. Às vezes, os discos mentem sobre quando eles realmente gravaram dados para os discos - isso pode melhorar o desempenho (contanto que a energia não se apague). Geralmente você pode fazer isso com hdparm -W0
(para IDE / SATA) ou sdparm --clear=WCE
(para SCSI / SAS). Estes podem precisar ser adicionados aos seus scripts de inicialização, como especialmente com SATA, ele pode ser redefinido para o padrão pelo ciclo de energia.
Existe um script (bastante antigo) para confirmar que o cache de gravação não está perdendo dados; veja post do blog diskchecker.pl de Brad Fitzpatrick para o script e como usá-lo.
Se você está em SSDs e está vendo o problema, infelizmente só precisa encontrar discos diferentes.