3

Я сделал это:

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

В чем проблема?

1 ответ1

2

Как я знаю, такой огромный блок не поддерживается на платформе 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.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .