Esta manhã eu estava fazendo um backup de rotina da minha unidade de desenvolvimento, uma das quatro partições primárias no meu disco rígido. O script que eu corri foi:
filename="/home/Backups/Devi_"'eval date +%Y%m%d'".tgz"
touch $filename
tar cvzf $filename /media/Devi/
Depois de um tempo, comecei a ver a saída tar dizendo que não era possível encontrar certos arquivos e a mesma mensagem começou a aparecer mais e mais até que o comando fosse encerrado. Quando eu verifiquei, tudo no drive sumiu, arquivos ocultos e tudo. Um fato que provavelmente é pertinente é que eu tinha dois programas qt rodando cujos executáveis e libs estavam na unidade, embora eu não consiga descobrir como um comando tar causaria uma exclusão como essa apenas por causa dos arquivos em uso. Eu tentei executar testdisk para recuperar diretórios, mas parece apenas encontrar arquivos de nível superior / dirs e sob eles diz nada encontrado. Agora estou executando o Photorec e seus arquivos de localização para que nenhum deles seja sobrescrito, mas o sistema de arquivos foi definitivamente danificado (tentei o fsk.ext4 e obtive um status limpo com muito menos arquivos do que na unidade).
Meu syslog para a janela de tempo (acredito que a exclusão aconteceu às 11:02) é:
Jul 26 10:17:01 GlaDux CRON[7004]: (root) CMD ( cd / && run-parts --report/etc/cron.hourly)
Jul 26 10:17:05 GlaDux kernel: [ 5835.406184] GLViewer[7032]: segfault at 0 ip 00007eff18138ee6 sp 00007fff24187158 error 4 in libc2.17.so[7eff17fe8000+1be000]
Jul 26 10:17:16 GlaDux kernel: [ 5846.856210] GLViewer[7059]: segfault at 0 ip 00007f470b838ee6 sp 00007fff999ec928 error 4 in libc-2.17.so[7f470b6e8000+1be000]
Jul 26 10:43:41 GlaDux NetworkManager[1141]: <warn> nl_recvmsgs() error: (-33) Dump inconsistency detected, interrupted
Jul 26 10:57:04 GlaDux dbus[1060]: [system] Activating service name='org.freedesktop.UDisks' (using servicehelper)
Jul 26 10:57:04 GlaDux dbus[1060]: [system] Successfully activated service 'org.freedesktop.UDisks'
Jul 26 11:12:25 GlaDux dbus[1060]: [system] Activating service name='org.freedesktop.hostname1' (using servicehelper)
Jul 26 11:12:25 GlaDux dbus[1060]: [system] Successfully activated service 'org.freedesktop.hostname1'
Jul 26 11:13:41 GlaDux NetworkManager[1141]: <warn> nl_recvmsgs() error: (-33) Dump inconsistency detected, interrupted
Jul 26 11:15:41 GlaDux NetworkManager[1141]: <warn> nl_recvmsgs() error: (-33) Dump inconsistency detected, interrupted
Jul 26 11:17:01 GlaDux CRON[8999]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Eu verifiquei e nenhum trabalho está agendado para cron.hourly. No entanto, acho que o udisk pode ter algo a ver com isso. Também tentei fazer tudo de uma inicialização do fedora ao vivo e não houve diferença. Eu também tentei montar com um superbloco diferente e não tive sorte.
Então eu tenho duas perguntas:
Existe alguma maneira de recuperar minha estrutura de diretório usando métodos que eu já não mencionei? Eu tenho backups para recuperação de arquivos individuais, parece um exagero, eu adoraria poder também obter o resto da árvore.
E, o que é mais importante, como um simples comando tar excluiu TUDO na unidade. Isso me deixa perplexo e é de longe o pior erro que um sistema operacional já me deu e desafia minha experiência anterior com distribuições linux. Qualquer explicação possível seria muito apreciada.
Estou executando o 3.8.0-23-generic com o cinnamint em uma máquina x64. A partição em questão é um ext4 primário de 52 Gb (1 de 4 partições no disco, a última se isso importa) e tem um tamanho de blocos de 4k.
Editar: a saída do tar era algo como:
/media/me/Devi/dir1/file1
/media/me/Devi/dir1/file2/
......
/media/me/Devi/dir100/file1
cannot find file or folder /media/me/Devi/dir101
cannot find file or folder /media/me/Devi/dir102
cannot find file or folder /media/me/Devi/dir102
Além disso, uma hora antes da exclusão, o disco foi montado e o seguinte foi registrado em kern.log:
Jul 26 09:14:16 GlaDux kernel: [ 2068.519913] EXT4-fs (sda3): ext4_orphan_cleanup: deleting unreferenced inode 663018
Jul 26 09:14:16 GlaDux kernel: [ 2068.519952] EXT4-fs (sda3): ext4_orphan_cleanup: deleting unreferenced inode 663017
Jul 26 09:14:16 GlaDux kernel: [ 2068.519961] EXT4-fs (sda3): ext4_orphan_cleanup: deleting unreferenced inode 663016
Jul 26 09:14:16 GlaDux kernel: [ 2068.519969] EXT4-fs (sda3): 3 orphan inodes deleted
Jul 26 09:14:16 GlaDux kernel: [ 2068.519970] EXT4-fs (sda3): recovery complete
Jul 26 09:14:17 GlaDux kernel: [ 2068.606194] EXT4-fs (sda3): mounted filesystem with ordered data mode. Opts: (null)
Tags ext4 tar udisks linux linux-mint