Что произойдет, если вы обнулите определенную группу блоков в файловой системе EXT4?

По сути, файловая система EXT4 имеет fragmentы данных размером 128 МБ (по умолчанию), и этот fragment называется «группой» или «группой блоков», которая в основном выглядит на диске следующим образом:

введите описание изображения здесь

Чем больше диск, тем больше групп у вас одна за другой.

Когда вы используете инструмент dumpe2fs , он может просто сказать вам, сколько у вас групп, и также получить некоторую информацию о них, например:

 Group 690: (Blocks 22609920-22642687) csum 0x7443 [ITABLE_ZEROED] Block bitmap at 22544386 (bg #688 + 2), csum 0xab2a9072 Inode bitmap at 22544402 (bg #688 + 18), csum 0x1ef9c14a Inode table at 22545440-22545951 (bg #688 + 1056) 0 free blocks, 8182 free inodes, 10 directories, 8182 unused inodes Free blocks: Free inodes: 5652491-5660672 

И мой вопрос: что произойдет, если вы обнулите целую группу блоков с помощью инструмента dd ?

Если у вас был файл (файлы), достаточно маленький, чтобы полностью поместиться в эту группу, файл (файлы) был бы навсегда потерян. Но есть и другие случаи, и я не уверен, как система реагирует в таких ситуациях.

  1. Файлы могут быть fragmentированы и описаны многими группами блоков, что (в данном случае) означает, что только некоторая часть файла была обнулена. Что будет с этим файлом после запуска fsck ? Будет ли весь файл помещен в потерянный и найденный каталог? Или, может быть, это будет видно в структуре файловой системы, но вы не сможете открыть / получить к ней доступ?

  2. Что произойдет с файлами в каталогах, если группа выше обнуляется? Есть только информация, что 0 free blocks, 8182 free inodes, 10 directories, 8182 unused inodes , это означает, что 10 папок и 0 файлов описаны этой группой, и все блоки используются данными. Итак, у нас есть 10 папок и, возможно, какой-то большой файл, который fragmentирован. По крайней мере, я понимаю информацию таким образом. Но каталоги могут содержать файлы, и что будет с файлами в каталогах, когда вы обнуляете эту группу? Будут ли они доступны после fsck ?

В основном это сводится к тому, затронуты ли метаданные и / или данные.

Вообще говоря, когда метаданные повреждены, затронутые файлы / каталоги становятся недоступными (или частично недоступными). Такие инструменты, как fsck могут исправить проблему, но это зависит от того, что именно было повреждено.

Тем не менее, когда данные повреждены, если файловая система не реализует контрольные суммы данных, чего нет у EXT4, файловая система будет действовать так, как будто данные в порядке. Это зависит от приложения, чтобы проверить и выполнить ремонт, если это возможно.