Я сделал это:
mkfs.ext4 -j -b 8192 /dev/sda3
Теперь я пытаюсь смонтировать его с помощью:
sudo mount -t ext4 /dev/sda3 foo
Но я получаю эту ошибку:
mount: wrong fs type, bad option, bad superblock on /dev/sda3
В чем проблема?
Как я знаю, такой огромный блок не поддерживается на платформе x86. Проблема в том, что ext * fs основан на универсальной инфраструктуре VFS и не может работать, когда размер блока превышает размер страницы (4096 на x86). На Itanium и других экзотических архитектурах со страницами памяти> 4 КБ (но не на x86/x86_64 со страницами 2 МБ или 4 МБ) такой размер блока может работать. Та же проблема в linux с ufs2 с размером фрагмента> 4096.
Эти знания основаны на информации от одного разработчика UFS2/Linux. В списках также есть несколько букв, например, ответ на вопрос
Ссылаясь на ответ от "Андреас Дилгер"
Linux требует размера блока <= PAGE_SIZE, поэтому в основном все файловые системы используют размер блока <= 4096, если только они не реализуют внутреннюю поддержку для чтения / записи частичных блоков диска из страницы или буферного кэша.
С ext2 / 3 можно изменить количество выделенных inode без изменения размера блока (меньше inode на группу блоков).
Для UFS2 есть явная проверка для fragment_size <= 4096
. Я думаю, что есть такая же проверка в ext * fs.
По сути, вам не нужно устанавливать такой большой размер блока для ext4, если экстенты включены. Экстенты очень похожи на огромные блоки для огромных файлов. С расширениями у вас будет больше производительности и меньше фрагментации, но они не поддерживаются (не обратно совместимы) в старых ядрах Linux или в некоторых старых драйверах для третьих ОС, таких как Windows.