Размер блока файловой системы отличается между различными разделами 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 
  • Как я могу выбрать раздел для установки fedora?
  • Как вручную установить грязный бит на раздел FAT32
  • Как объединить раздел с gparted?
  • Systemd не запускается после удаления зашифрованного раздела подкачки на Fedora 20
  • Добавление нового диска в раздел exsting в linux
  • Таблица разделов, не распознанная ядром Linux
  • Загрузочный раздел на CentOS 6
  • Создание раздела ext4 происходит с недопустимым числом блоков,
  • Запретить пользователю без полномочий root форматировать раздел
  • Сервер Apache на разных дисковых разделах
  • Как восстановить файл casper-rw в разделе casper-rw
  • Повреждение файловой системы Linux из-за неправильного завершения работы (fs ext4)?
  • Linux и Unix - лучшая ОС в мире.