ext2 - все файлы имеют нулевой размер
Я работаю над устаревшей системой, следовательно ext2. Я загружаю Linux с syslinux. Я создаю пустой образ диска с помощью dd и /dev/zero, затем делю его на 2 раздела с помощью parted и создаю файловые системы. Одна файловая система - это fat32, а другая - ext2. Я должен использовать ext2, а не FAT32, так как я сталкиваюсь с максимальным количеством файлов в каталоге FAT32 (предыдущие неудачные решения по проектированию системы, которые я не могу изменить в данный момент). После создания файловых систем я поместил syslinux на один раздел, а затем скопировал все ресурсы системы (графику и звуки) во второй раздел. Теперь у меня есть bin-файл, который я могу записать на CF-карту (да, если бы она была устаревшей, но нуждается в обслуживании).
Linux загружается правильно каждый раз.
Проблема после загрузки: иногда это работает отлично, а иногда нет. Раздел ext2 будет смонтирован, но в нем указаны все размеры файлов как ноль, в остальном все работает. Я не могу понять какой-либо образец этого.
Что может быть причиной того, что файловая система периодически монтируется, перечисляет файлы, но показывает все размеры файлов как ноль?
Я даже переписал образ с карты cf обратно на жесткий диск, сделал петлевое устройство со смещением раздела ext2, смонтировал его и, конечно же, файлы и их данные фактически находятся на диске. Они просто неправильно отображаются при использовании карты cf для загрузки целевой системы.
ОБНОВЛЕНИЕ: я первоначально сделал файловую систему с
mkfs -t ext2 /dev/loop0
Но, конечно, вы должны добавить размер файловой системы (в блоках) к команде mkfs. Теперь это работает каждый раз. Очевидно, вы не можете получить размер базового файла из /dev/loop0, поэтому размер должен быть явно указан.