Размер блока файловой системы отличается между различными разделами ext4

у нас есть пользовательская плата на основе BBB с 256 МБ ОЗУ и 4 ГБ eMMC,

Я разделил его, используя код ниже,

parted --script -a optimal /dev/mmcblk0 \ mklabel gpt \ mkpart primary 128KiB 255KiB \ mkpart primary 256KiB 383KiB \ mkpart primary 384KiB 511KiB \ mkpart primary 1MiB 2MiB \ mkpart primary 2MiB 3MiB \ mkpart primary 3MiB 4MiB \ mkpart primary 4MiB 5MiB \ mkpart primary 5MiB 10MiB \ mkpart primary 10MiB 15MiB \ mkpart primary 15MiB 20MiB \ mkpart primary 20MiB 21MiB \ mkpart primary 21MiB 22MiB \ mkpart primary 22MiB 23MiB \ mkpart primary 23MiB 28MiB \ mkpart primary ext4 28MiB 528MiB \ mkpart primary ext4 528MiB 1028MiB \ mkpart primary ext4 1028MiB 1128MiB \ mkpart primary ext4 1128MiB 1188MiB \ mkpart primary ext4 1188MiB 2212MiB \ mkpart primary ext4 2212MiB 2603MiB \ mkpart primary ext4 2603MiB 2639MiB \ mkpart primary ext4 2639MiB 100% \ 

А затем отформатированные разделы файловой системы, используя следующую команду

 mkfs.ext4 -j -L $LABEL $PARTITION 

Теперь, когда я читаю размер блока файловой системы с помощью tune2fs, я вижу другое значение для разделов меньше 1GiB и раздел больше или равен 1GiB-разделу.

 # tune2fs -l /dev/mmcblk0p15 | grep Block Block count: 512000 Block size: 1024 Blocks per group: 8192 # # # tune2fs -l /dev/mmcblk0p16 | grep Block Block count: 512000 Block size: 1024 Blocks per group: 8192 # # # tune2fs -l /dev/mmcblk0p19 | grep Block Block count: 262144 Block size: 4096 Blocks per group: 32768 # tune2fs -l /dev/mmcblk0p22 | grep Block Block count: 1191936 Block size: 4096 Blocks per group: 32768 

Я не могу понять, почему размеры блоков разные. кроме того, mke2fs.conf имеет все значения по умолчанию, и упомянутый размер блока равен 4096.

 [defaults] base_features = sparse_super,filetype,resize_inode,dir_index,ext_attr default_mntopts = acl,user_xattr enable_periodic_fsck = 0 blocksize = 4096 inode_size = 256 inode_ratio = 16384 [fs_types] ext3 = { features = has_journal } ext4 = { features = has_journal,extent,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize auto_64-bit_support = 1 inode_size = 256 } ext4dev = { features = has_journal,extent,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize inode_size = 256 options = test_fs=1 } small = { blocksize = 1024 inode_size = 128 inode_ratio = 4096 } floppy = { blocksize = 1024 inode_size = 128 inode_ratio = 8192 } big = { inode_ratio = 32768 } huge = { inode_ratio = 65536 } news = { inode_ratio = 4096 } largefile = { inode_ratio = 1048576 blocksize = -1 } largefile4 = { inode_ratio = 4194304 blocksize = -1 } hurd = { blocksize = 4096 inode_size = 128 } по [defaults] base_features = sparse_super,filetype,resize_inode,dir_index,ext_attr default_mntopts = acl,user_xattr enable_periodic_fsck = 0 blocksize = 4096 inode_size = 256 inode_ratio = 16384 [fs_types] ext3 = { features = has_journal } ext4 = { features = has_journal,extent,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize auto_64-bit_support = 1 inode_size = 256 } ext4dev = { features = has_journal,extent,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize inode_size = 256 options = test_fs=1 } small = { blocksize = 1024 inode_size = 128 inode_ratio = 4096 } floppy = { blocksize = 1024 inode_size = 128 inode_ratio = 8192 } big = { inode_ratio = 32768 } huge = { inode_ratio = 65536 } news = { inode_ratio = 4096 } largefile = { inode_ratio = 1048576 blocksize = -1 } largefile4 = { inode_ratio = 4194304 blocksize = -1 } hurd = { blocksize = 4096 inode_size = 128 } 

Может ли кто-нибудь объяснить / предложить документ / подсказку, почему размеры блоков различны для разных разделов?

One Solution collect form web for “Размер блока файловой системы отличается между различными разделами ext4”

Спасибо, derobert за ответ на это в комментарии, я просто уточню его здесь.

Как отметил в своем комментарии @derobert.

mkfs.ext4 / mke2fs ссылается на /etc/mke2fs.conf и форматирует раздел.

mke2fs выбирает размер блока в зависимости от размера раздела, если явно не упоминается. прочитайте -b block-size и -T usage-type в man-странице mke2fs для того же самого.

Поэтому, когда размер раздела меньше 512 МБ, mkfs.ext4 форматирует его как small со следующими настройками из файла mke2fs.conf

  small = { blocksize = 1024 inode_size = 128 inode_ratio = 4096 } 

Однако, когда размер раздела составляет более 512 МБ mkfs.ext4 или mke2fs, форматирует раздел, используя defaults по defaults из файла mke2fs.conf

 [defaults] base_features = sparse_super,filetype,resize_inode,dir_index,ext_attr default_mntopts = acl,user_xattr enable_periodic_fsck = 0 blocksize = 4096 inode_size = 256 inode_ratio = 16384 по [defaults] base_features = sparse_super,filetype,resize_inode,dir_index,ext_attr default_mntopts = acl,user_xattr enable_periodic_fsck = 0 blocksize = 4096 inode_size = 256 inode_ratio = 16384 

Это то, что вызывало разные размеры блоков в разных разделах.

Еще одно примечание. Чтобы получить общее количество inode, которое вы получите после форматирования, можно рассчитать следующим образом:

 Total number of inodes = partition size / inode_ration eg for 500MB partition total number of inodes = (500 * 1024 * 1024) / 4096 = 128000 
  • Понимание многолучевого распространения и точек монтирования
  • Определение физического объема внутри несезонного диска
  • Перемещено / var / log на новый логический том сейчас отсутствуют данные
  • Создание нестандартных разделов LVM во время установки (Debian)?
  • Разделение разделов в qemu
  • Расширение / изменение размера корневого каталога Fedora Guest-OS в VirtualBox
  • Создание раздела ext4 происходит с недопустимым числом блоков,
  • Что может привести к тому, что блок-устройство будет как-то меньше его разделов?
  • почему внешний жесткий диск 2TB распознается как 800 ГБ только в Ubuntu 8.10
  • Измените номер раздела с sda1 на sda2
  • WD Advanced Format путаница
  • Interesting Posts

    Хорошая практика заключается в том, чтобы создать фоновое задание в сценарии инициализации, если процесс не может самоопределиться?

    Как программно добавить новый файл crontab без замены предыдущего

    Назначение глобальных и локальных переменных

    Объединение различных полей с разным разделителем

    Shell: выбор доступной программы

    MD5SUM для скопированного файла

    vagrant user, который может переключиться на любого пользователя без пароля во время выполнения команды «sudo su – <username>», но другие пользователи не

    Ошибка Mint 13, которая предотвращает щелчок правой кнопкой мыши на значках рабочего стола и множество других симптомов

    ssh: как отключить эхо при запуске команды на пульте дистанционного управления

    Не удается получить докер для пересылки портов

    Synergy больше не работает после блокировки экрана (LightDM)

    Какие видеокарты для настольного компьютера, совместимого с Linux, могут поддерживать Dual Monitors?

    Проблема с загрузчиком CentOS 6.4 Kickstart

    Запустить mysqld_safe в фоновом режиме

    как вводить нажатия клавиш в программе, например Safari, из сценария bash?

    Linux и Unix - лучшая ОС в мире.