Como garantir que um arquivo de imagem de disco NTFS não esteja sendo gravado quando montado?

1

Eu tenho um arquivo de imagem de disco bruto de 500 GB no meu HDD que chamei de dysk.img e isso é resultado de dd 'do conteúdo de uma unidade de partição NTFS única externa. Sua finalidade é tentar recuperar dados com o programa ntfsundelete (e os resultados da varredura inicial são promissores).

Antes disso, no entanto, gostaria de examinar seu conteúdo atual, não excluído. Então eu gostaria de montá-lo. Por razões óbvias, quero garantir que a montagem desse arquivo não resulte na gravação de um único bit.

mount --read-only não parece ser a solução, infelizmente. Porque, de acordo com man mount :

Note that, depending on the filesystem type, state and kernel behavior, the system may still write to the device. For example, ext3 and ext4 will replay the journal if the filesystem is dirty. To prevent this kind of write access, you may want to mount an ext3 or ext4 filesystem with the ro,noload mount options or set the block device itself to read-only mode, see the blockdev(8) command.

O acima pode se aplicar ao NTFS também? Infelizmente mount não suporta a opção noload

Infelizmente, escrevi descuidadamente alguns arquivos com nomes incompatíveis com o Windows (contendo o caracter ? , por exemplo), e isso fazia com que o Windows marcasse esse sistema de arquivos para verificação programada - assim, estou recebendo avisos constantes de ntfsundelete agora e não pode executar ntfsundelete sem a opção --force . Isso pode aumentar ainda mais o risco de algumas gravações acidentais?

A partir de agora, somente o root tem acesso de gravação a este arquivo. Não tenho certeza se isso é suficiente, já que o IIUC sempre tem alguma elevação de direitos ao montar.

O root do proprietário desse arquivo e a negação de acesso de gravação a alguém e até mesmo ao proprietário serão úteis?

Seria útil tentar usar o comando blockdev sugerido por man mount neste arquivo? Ou seria arriscado ou prejudicial emitir blockdev --setro para um arquivo de imagem, em oposição a um dispositivo real?

    
por gaazkam 11.02.2017 / 15:48

1 resposta

2

Parte da resposta que você está procurando é dada na citação que você citou:

set the block device itself to read-only mode

No seu caso, esse é um arquivo simples. Então você pode:

chmod a-w disk.img

Nem mesmo o proprietário precisa escrever para ele.

Would making root the owner of this file and denying anyone, even the owner, write access be helpful?

Basicamente, sim, mas lembre-se de que root pode ignorar a maioria das "limitações" de permissão. Portanto, você deve executar seu programa de recuperação de dados como um usuário diferente de root .

Se você quiser montar o arquivo, não poderá simplesmente fazer isso. No entanto, se o arquivo de imagem for salvo dentro de um sistema de arquivos que suporta chattr (basicamente EXT4 e outros sistemas de arquivos comuns do Linux), você pode tornar o arquivo imutável:

chattr +i disk.img

Agora, nem mesmo root pode fazer nada. Não pode ser escrito ou excluído. Use chattr -i para reverter o sinalizador depois de terminar.

Abordagem alternativa

Se você quiser extrair dados de uma unidade NTFS (possivelmente danificada), convém considerar o uso de RecuperaBit , que é um software que desenvolvi para realizar a reconstrução do sistema de arquivos. Atualmente suporta apenas NTFS, mas tem algumas vantagens:

  • Não escreve nada no arquivo de imagem. Simplificando, não suporta escrever em uma unidade, porque é orientado para análise forense digital. Portanto, você não corre o risco de fazer isso acidentalmente.

  • Pode ler a árvore de diretórios, mesmo que esteja quebrada. Você obterá a representação mais precisa de cada partição, pelo menos dos metadados disponíveis.

Eu discuti seu uso nas seguintes respostas:

por 02.04.2017 / 15:17