Como exatamente o ext2 é compatível?

2

Eu li em algum lugar que um sistema operacional que não sabe nada sobre ext3 e ext4 (ou seja, a versão antiga do Linux) é capaz de ler / gravar em ext4, e detecta qualquer sistema de arquivos ext4 como ext2.
Não tenho certeza, se o mesmo é possível para Tux2 para tux3 ou com FAT12. (FAT64 é exFAT)

Como exatamente isso é possível?
Como exatamente ext4 pode ser tratado como ext2? Não há risco de corrupção de arquivos ou metadados?

    
por neverMind9 17.03.2018 / 11:12

1 resposta

3

Isso depende muito de como o sistema de arquivos ext4 foi formatado. Alguns recursos ext4 mais recentes (por exemplo, extents ou 64bit ) não podem ser compreendidos por drivers ext2 mais antigos, eo kernel se recusaria a montar o sistema de arquivos (veja, por exemplo este post ). Em geral, qualquer sistema de arquivos formatado com um mke2fs moderno com as opções -t ext4 padrão não poderá ser montado por um antigo driver ext2, mas se o sistema de arquivos foi formatado há muito tempo, para o ext4, ele pode ainda ser montável pelo ext2 se nenhum dos novos recursos específicos do ext4 forem habilitados.

Os sistemas de arquivos ext2 / 3/4 rastreiam quais recursos estão em uso pelos sinalizadores de recurso compat , rocompat e incompat . Esses recursos normalmente são definidos em mke2fs time, mas às vezes podem ser alterados por tune2fs . Se um recurso compat desconhecido for encontrado, o kernel irá montá-lo, mas e2fsck se recusará a verificá-lo porque pode fazer algo errado. Se um recurso rocompat desconhecido for encontrado, o kernel poderá montar o sistema de arquivos somente leitura e qualquer recurso incompat desconhecido impedirá que o sistema de arquivos seja montado (uma mensagem será impressa em /var/log/messages neste caso) .

Você pode usar debugfs -c -R features <device> para despejar os recursos ativados em um sistema de arquivos, por exemplo:

# debugfs -c -R features /dev/sdb1
debugfs 1.42.13.wc5 (15-Apr-2016)
/dev/sdb1: catastrophic mode - not reading inode or group bitmaps
Filesystem features: has_journal ext_attr resize_inode dir_index filetype
needs_recovery dirdata sparse_super large_file huge_file uninit_bg dir_nlink

Embora isso não diga quais são compat , rocompat ou incompat . Se a sua versão de debugfs não compreender algum recurso mais recente, ela será impressa como I0400 ou similar.

    
por 06.04.2018 / 10:25