Как работает конфигурационный файл mke2fs.conf

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

Аватара пользователя
жучара
Сообщения: 950
ОС: астралинукс

Как работает конфигурационный файл mke2fs.conf

Сообщение жучара »

Друзья! Бьюсь-бьюсь и ничё понять не могу, то ли я такой тупой то ли чё.

Простой пример.Создадим файловую систему.

Для начала создадим разреженный (прости, господи) файл размером 1 Гиг

Shell

user@debian:~/foo$ rm -f bar
user@debian:~/foo$ dd of=bar bs=1M seek=1024 count=0
0+0 записей считано
0+0 записей написано
скопировано 0 байт (0 B), 6,5893e-05 c, 0,0 kB/c
user@debian:~/foo$ ls -ls bar
0 -rw-r--r-- 1 user user 1073741824 Янв 11 14:03 bar
user@debian:~/foo$
Так, а в нём файловую систему ext2. Никакой из параметров указывать не будем, ни размера блока, ничего.

Shell

user@debian:~/foo$ sudo mke2fs -t ext2 -F -v bar
mke2fs 1.42.5 (29-Jul-2012)
fs_types for mke2fs.conf resolution: 'ext2'
Discarding device blocks: done
Discard succeeded and will return 0s - skipping inode table wipe
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65536 inodes, 262144 blocks
13107 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376

Allocating group tables: done
Writing inode tables: done
Writing superblocks and filesystem accounting information: done

user@debian:~/foo$
Из этой всей фигни нас будет интересовать одна строчка:

Shell

fs_types for mke2fs.conf resolution: 'ext2'
Просто запомним её. А откуда берутся все параметры (я ведь никакой параметр явно не указал)? А они берутся из файла mke2fs.conf:

Shell

man mke2fs
...
The defaults of the parameters for the newly created filesystem, if not overridden by the options listed below, are controlled by the /etc/mke2fs.conf configuration file. See the mke2fs.conf(5) manual page for more details.
Я много что читал там и ничё не понял, откуда берутся там параметры, в нашем случае для ext2. Там есть один момент, мне кажется, который должен всё объяснить. Привожу только один абзац (хотя и остальное читал и man mke2fs тоже)
If mke2fs started with a program name of mke2fs.ext4, then the filesystem type of ext4 will be used. If the filesystem is smaller than 3 megabytes, and no usage type is specified, then mke2fs will use a default usage type of floppy. This results in an fs_types list of "ext4, floppy". Both the ext4 subsection and the floppy subsection define an inode_size relation, but since the later entries in the fs_types list supersede earlier ones, the configuration parameter for fs_types.floppy.inode_size will be used, so the filesystem will have an inode size of 128
.
Offtopic
Вот сразу, почему они "use a default usage type of floppy"? Почему не другие пункты (small, big, huge) Если использование floppy жёско прошито в случае "If the filesystem is smaller than 3 megabytes, and no usage type is specified" тогда этот абзац воообще ничего не объясняет, а другие и подавно

Вот мой файл mke2fs.conf
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

[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
}


Коль скоро я указал файловую систему ext2, значит мы должны пойты не в stanza [default], а в stanza [fs_types]:

Shell

Each tag in the [fs_types] stanza names a filesystem type or usage type which can be specified via the -t or -T options to mke2fs(8), respectively.
и там найти соответствующую файловую систему (ext2 в моём случае) и, наверное, использовать прописанные там параметры.
Offtopic
Вот тут важный момент, котоорый упустили создатели mana. В другом месте:
[fs_types] Contains relations which define defaults that should be used for specific filesystem types. The filesystem type can be specified explicitly using the -T option to mke2fs(8).
То есть из одного отрывка следует, что мы идём в [fs_types] если у нас задействована опция -t или -T. А из другого ТОЛЬКО ЕСЛИ -T. А я наоборот как раз задействую только -t. Может, я зря лезу в stanza [fs_types]?
Но как бы то ни было. Я указываю -t ext2, лезу, понимаешь в stanza [fs_types] и наблюдаю такую картину: ext3, ext4, ext4dev, small, floppy, big, huge, news, largefile, largefile4, hurd

А ext2 отсутствует (тут вспоминаем строчку fs_types for mke2fs.conf resolution: 'ext2'). Откуда же берутся параметры для файловой системы, которая ext2? В этот перечень так и просится пункт default, но его нет.

В общем, как это всё работает, я так и не понял. Может, кто мои рассуждения поправит? Спасибо, кто откликнется. Debian 7.
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu
Контактная информация:

Re: Как работает конфигурационный файл mke2fs.conf

Сообщение serzh-z »

Берутся параметры defaults, потом fs_types.<-t>, потом fs_types.<-T>, если они есть. Все параметры, кроме features, заменяют собою предыдущие. Параметры features (битовая маска) либо добавляются к предыдущим (base_features и features), либо заменяют состояние соответствующего бита.
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2
Контактная информация:

Re: Как работает конфигурационный файл mke2fs.conf

Сообщение Hephaestus »

жучара писал(а):
11.01.2020 20:29
Вот сразу, почему они "use a default usage type of floppy"? Почему не другие пункты (small, big, huge)
Потому что речь идет о
жучара писал(а):
11.01.2020 20:29
If the filesystem is smaller than 3 megabytes
файловая система "меньше 3 мегабайт" в нормальной ситуации может быть только на floppy,
на других носителях не имеет смысла.
Добавлено (10:42):
жучара писал(а):
11.01.2020 20:29
А ext2 отсутствует
Ext2 отдельно может и не присутствовать.
Ext2 - это та же ext3, только без журналирования.
Для ext3 в Вашем конфиге указано только "features = has_journal", всё остальное - defaults.
Стало быть, для ext2 будет то же самое, что и для ext3, но за вычетом "features = has_journal", то есть
в сухом остатке получаем defaults.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 950
ОС: астралинукс

Re: Как работает конфигурационный файл mke2fs.conf

Сообщение жучара »

Я бы сам сроду не догадался.
Теперь немного не в тему (а, может, в тему) вопрос, дабы не плодить тем, как грибов. Создаю ext2 систему, размером 1G метров. Она будет default (последнее предложение):

Shell

man mke2fs
...
-T usage-type[,...]
...
If this option is is not specified, mke2fs will pick a single default usage type based on the size of the filesystem to be created. If the filesystem size is less than or equal to 3 megabytes, mke2fs will use the filesystem type floppy. If the filesystem size is greater than 3 but less than or equal to 512 megabytes, mke2fs(8) will use the filesystem type small. If the filesystem size is greater than or equal to 4 terabytes but less than 16 terabytes, mke2fs(8) will use the filesystem type big. If the filesystem size is greater than or equal to 16 terabytes, mke2fs(8) will use the filesystem type huge. Otherwise, mke2fs(8) will use the default filesystem type default.
И размеры там будут соответствующие:
[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_size интересует, он почему 256-то? То есть он может быть, конечно, 256:

Shell

man mke2fs
...
-I inode-size
Specify the size of each inode in bytes. mke2fs creates 256-byte inodes by default.
....
Но на практике смотрим struct ext2_inode, файл linux-5.4.11/fs/ext2/ext2.h, вот исходники ядра:
тут struct ext2_inode

Код: Выделить всё

struct ext2_inode {
	__le16	i_mode;		/* File mode */
	__le16	i_uid;		/* Low 16 bits of Owner Uid */
	__le32	i_size;		/* Size in bytes */
	__le32	i_atime;	/* Access time */
	__le32	i_ctime;	/* Creation time */
	__le32	i_mtime;	/* Modification time */
	__le32	i_dtime;	/* Deletion Time */
	__le16	i_gid;		/* Low 16 bits of Group Id */
	__le16	i_links_count;	/* Links count */
	__le32	i_blocks;	/* Blocks count */
	__le32	i_flags;	/* File flags */
	union {
		struct {
			__le32  l_i_reserved1;
		} linux1;
		struct {
			__le32  h_i_translator;
		} hurd1;
		struct {
			__le32  m_i_reserved1;
		} masix1;
	} osd1;				/* OS dependent 1 */
	__le32	i_block[EXT2_N_BLOCKS];/* Pointers to blocks */
	__le32	i_generation;	/* File version (for NFS) */
	__le32	i_file_acl;	/* File ACL */
	__le32	i_dir_acl;	/* Directory ACL */
	__le32	i_faddr;	/* Fragment address */
	union {
		struct {
			__u8	l_i_frag;	/* Fragment number */
			__u8	l_i_fsize;	/* Fragment size */
			__u16	i_pad1;
			__le16	l_i_uid_high;	/* these 2 fields    */
			__le16	l_i_gid_high;	/* were reserved2[0] */
			__u32	l_i_reserved2;
		} linux2;
		struct {
			__u8	h_i_frag;	/* Fragment number */
			__u8	h_i_fsize;	/* Fragment size */
			__le16	h_i_mode_high;
			__le16	h_i_uid_high;
			__le16	h_i_gid_high;
			__le32	h_i_author;
		} hurd2;
		struct {
			__u8	m_i_frag;	/* Fragment number */
			__u8	m_i_fsize;	/* Fragment size */
			__u16	m_pad1;
			__u32	m_i_reserved2[2];
		} masix2;
	} osd2;				/* OS dependent 2 */
};
Структура struct ext2_inode занимает 128 байт. Откуда ещё 128? По-хорошему должна быть ещё одна подобная структура для инода, размер которой занимает 256 элементов

Shell

man mke2fs
...
-I inode-size
Extended attributes stored in large inodes are not visible with older kernels,.
...
Но структуры для inod, чей размер занимал бы 256 байт, нет. А иноды такого размера есть. Создаём файл bar

Shell

user@debian:~/foo$ rm -f bar
user@debian:~/foo$ dd of=bar bs=1M seek=1024 count=0
0+0 записей считано
0+0 записей написано
скопировано 0 байт (0 B), 6,8559e-05 c, 0,0 kB/c
user@debian:~/foo$
user@debian:~/foo$ ls -ls bar
0 -rw-r--r-- 1 user user 1073741824 Янв 13 19:27 bar
user@debian:~/foo$
создаём на файле систему ext2:

Shell

user@debian:~/foo$ sudo mke2fs -t ext2 -F -v bar
mke2fs 1.42.5 (29-Jul-2012)
fs_types for mke2fs.conf resolution: 'ext2'
Discarding device blocks: done
Discard succeeded and will return 0s - skipping inode table wipe
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65536 inodes, 262144 blocks
13107 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376

Allocating group tables: done
Writing inode tables: done
Writing superblocks and filesystem accounting information: done

user@debian:~/foo$
смотрим размер инода:

Shell

user@debian:~/foo$ sudo dumpe2fs -h bar | grep "Inode size:"
dumpe2fs 1.42.5 (29-Jul-2012)
Inode size: 256
user@debian:~/foo$
вот, собсно, и вопрос. Почему инод получается 256 байт, хотя должен быть 128?
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20791
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как работает конфигурационный файл mke2fs.conf

Сообщение Bizdelnick »

man mke2fs писал(а):In kernels after 2.6.10 and some earlier vendor kernels it is possible to utilize inodes larger than 128 bytes to store extended attributes for improved performance. Extended attributes stored in large inodes are not visible with older kernels, and such filesystems will not be mountable with 2.4 kernels at all.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 950
ОС: астралинукс

Re: Как работает конфигурационный файл mke2fs.conf

Сообщение жучара »

Bizdelnick, так я это читал. Структуры-то, которая соответствовала бы иноду-256 нет. А сам инод есть. Как так?
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu
Контактная информация:

Re: Как работает конфигурационный файл mke2fs.conf

Сообщение serzh-z »

жучара
There are two places where extended attributes can be found. The first place is between the end of each inode entry and the beginning of the next inode entry. For example, if inode.i_extra_isize = 28 and sb.inode_size = 256, then there are 256 - (128 + 28) = 100 bytes available for in-inode extended attribute storage. The second place where extended attributes can be found is in the block pointed to by inode.i_file_acl.
В случае inode размером 256 байт место между ext2_inode заполнено ext2_xattr_header и ext2_xattr_entry.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20791
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как работает конфигурационный файл mke2fs.conf

Сообщение Bizdelnick »

жучара писал(а):
13.01.2020 19:31
Структуры-то, которая соответствовала бы иноду-256 нет. А сам инод есть. Как так?
Представление inode в памяти не обязано в точности повторять его представление на диске.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 950
ОС: астралинукс

Re: Как работает конфигурационный файл mke2fs.conf

Сообщение жучара »

serzh-z, а вы это где прочли?
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 950
ОС: астралинукс

Re: Как работает конфигурационный файл mke2fs.conf

Сообщение жучара »

Bizdelnick писал:
13.01.2020 20:01
жучара писал(а):
13.01.2020 19:31
Структуры-то, которая соответствовала бы иноду-256 нет. А сам инод есть. Как так?
Представление inode в памяти не обязано в точности повторять его представление на диске.
а документации оно должно соответствовать?
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu
Контактная информация:

Re: Как работает конфигурационный файл mke2fs.conf

Сообщение serzh-z »

жучара писал(а):
13.01.2020 20:03
serzh-z, а вы это где прочли?
https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 950
ОС: астралинукс

Re: Как работает конфигурационный файл mke2fs.conf

Сообщение жучара »

serzh-z писал:
13.01.2020 20:07
жучара писал(а):
13.01.2020 20:03
serzh-z, а вы это где прочли?
https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout
да, но у меня-то ext2. Для ext2 ничего такого нет.
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20791
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как работает конфигурационный файл mke2fs.conf

Сообщение Bizdelnick »

Ну хорошо, если Вам так будет проще, считайте, что это размер не inode, а поля таблицы inode. А авторы документации бессовестнейшим образом вводят Вас в заблуждение, с целью чего, определённо, вступили в преступный заговор.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 950
ОС: астралинукс

Re: Как работает конфигурационный файл mke2fs.conf

Сообщение жучара »

Bizdelnick писал:
13.01.2020 20:12
Ну хорошо, если Вам так будет проще, считайте, что это размер не inode, а поля таблицы inode. А авторы документации бессовестнейшим образом вводят Вас в заблуждение, с целью чего, определённо, вступили в преступный заговор.
мне так не проще. Вопрос открыт.
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu
Контактная информация:

Re: Как работает конфигурационный файл mke2fs.conf

Сообщение serzh-z »

жучара писал(а):
13.01.2020 20:12
Для ext2 ничего такого нет.
Все там есть. О чем даже указано в первом абзаце по ссылке.
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 950
ОС: астралинукс

Re: Как работает конфигурационный файл mke2fs.conf

Сообщение жучара »

serzh-z писал:
13.01.2020 20:23
жучара писал(а):
13.01.2020 20:12
Для ext2 ничего такого нет.
Все там есть. О чем даже указано в первом абзаце по ссылке.
Вот ссылка
https://www.kernel.org/doc/html/latest/filesystems/ext4/index.html

тут написано ext4, но не ext2, увы.
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu
Контактная информация:

Re: Как работает конфигурационный файл mke2fs.conf

Сообщение serzh-z »

жучара писал(а):
13.01.2020 20:28
тут написано ext4, но не ext2, увы.
Я не понимаю смысла этого сообщения.

Файловые системы семейства Ext так или иначе совместимы между собою. Если вопрос касается того, что хранится в таблице индексных узлов, помимо оригинальной структуры ext2_inode, то выше уже есть объяснения.
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 950
ОС: астралинукс

Re: Как работает конфигурационный файл mke2fs.conf

Сообщение жучара »

serzh-z писал:
13.01.2020 22:30
жучара писал(а):
13.01.2020 20:28
тут написано ext4, но не ext2, увы.
Я не понимаю смысла этого сообщения.
чё тут понятного? Вы даёте ссылку на документацию по ext4, а когда я это указываю, вам это непонятно. Ну непонятно так непонятно. Жду возражений в стиле "там всё есть", что-то давно их не было.
serzh-z писал:
13.01.2020 22:30
Файловые системы семейства Ext так или иначе совместимы между собою. Если вопрос касается того, что хранится в таблице индексных узлов, помимо оригинальной структуры ext2_inode, то выше уже есть объяснения.
Они именно что так или иначе совместимы меж собой. В нашем случае что вижу: реализовали возможность увеличения размера инода в ext2, а документировали аж в ext4 (или в ext3, не проверял). Это совместимость так или совместимость иначе? По-моему ни то, ни другое. Хотелось бы выяснить, почему так, может, я где что пропустил, читая. Документацию для ext4 вы приводили уже, это не то.
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu
Контактная информация:

Re: Как работает конфигурационный файл mke2fs.conf

Сообщение serzh-z »

жучара
Мне непонятно о чем эта тема.

Если о формате Ext, то драйвер ext4 умеет хранить расширенные атрибуты в индексном узле за границей первых 128 байт. Драйвер ext2 эти данные игнорирует и работает лишь с первыми 128 байтами: выше я ошибся про ext2_xattr_* - там ext4_xattr_*. Драйвер ext2, похоже, умеет читать расширенные атрибуты лишь за пределами таблицы индексных узлов.

Все файловый системы Ext - это ext2 плюс новые фичи и структуры.

Если же эта тема про качество документации и неверное название статьи, то попробуйте написать в Госдуму, пусть какой-нибудь закон примут.
Последний раз редактировалось serzh-z 13.01.2020 23:29, всего редактировалось 1 раз.
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 950
ОС: астралинукс

Re: Как работает конфигурационный файл mke2fs.conf

Сообщение жучара »

Bizdelnick писал:
13.01.2020 20:12
Ну хорошо, если Вам так будет проще, считайте, что это размер не inode, а поля таблицы inode. А авторы документации бессовестнейшим образом вводят Вас в заблуждение, с целью чего, определённо, вступили в преступный заговор.
inode суть поле таблицы inode. Размер инода суть размер поля таблицы inode. Представлять ничего не нужно. Оттого, что мы кипяток горячей водой назовём, а сено сухой травой, ничего не изменится.
...Да так вот, про таблицу инодов.
http://www.nongnu.org/ext2-doc/ext2.html#inode-table

Там всё, что вы и так знаете. Структура inoda ой, простите поля таблицы inode, которая равна 128 байт и нигде намёка нет на то, что раз- и она может быть 256. Где-то же должно быть написано, вторые 128 байт под что выделяются. Наверное, я плохо ищу, надеюсь на помощь товарищей тык скыть.
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu
Контактная информация:

Re: Как работает конфигурационный файл mke2fs.conf

Сообщение serzh-z »

жучара писал(а):
13.01.2020 23:28
Где-то же должно быть написано, вторые 128 байт под что выделяются. Наверное, я плохо ищу, надеюсь на помощь товарищей тык скыть.
https://www.kernel.org/doc/html/latest/filesystems/ext4/dynamic.html#inode-size

Хотелось бы мне верить, что вы шутите.
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 950
ОС: астралинукс

Re: Как работает конфигурационный файл mke2fs.conf

Сообщение жучара »

serzh-z писал:
13.01.2020 23:26
жучара
Мне непонятно о чем эта тема.

Если о формате Ext, то драйвер ext4 умеет хранить расширенные атрибуты в индексном узле за границей первых 128 байт. Драйвер ext2 эти данные игнорирует и работает лишь с первыми 128 байтами: выше я ошибся про ext2_xattr_* - там ext4_xattr_*. Драйвер ext2, похоже, умеет читать расширенные атрибуты лишь за пределами таблицы индексных узлов.

Все файловый системы Ext - это ext2 плюс новые фичи и структуры.

Если же эта тема про качество документации и неверное название статьи, то попробуйте написать в Госдуму, пусть какой-нибудь закон примут.
ну я извинился, что немного не в тему написал ВТОРОЙ вопрос. Я спрашиваю про ext2. Отвечая, вы зачем-то даёте ссыль на документацию по ext4 и потом спрашиваете- не про ext4 ли вопрос.

Нет, не про ext4. И вопроса по формат ext (без цифры) я не могу себе позволить.
Вы не давайте ссыль на то, что не нужно и путаться не будете.

Про госдуму оценил шутку. Не можете в чём-то помочь- проходите мимо, зачем измываться-то? Я считаю, это всё-таки товарищеский форум.
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 950
ОС: астралинукс

Re: Как работает конфигурационный файл mke2fs.conf

Сообщение жучара »

serzh-z писал:
13.01.2020 23:33
жучара писал(а):
13.01.2020 23:28
Где-то же должно быть написано, вторые 128 байт под что выделяются. Наверное, я плохо ищу, надеюсь на помощь товарищей тык скыть.
https://www.kernel.org/doc/html/latest/filesystems/ext4/dynamic.html#inode-size

Хотелось бы мне верить, что вы шутите.
ну вы опять дали ссыль на ext4. Вам капслоком написать, что у меня не ext4, а ext2?
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20791
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как работает конфигурационный файл mke2fs.conf

Сообщение Bizdelnick »

жучара писал(а):
13.01.2020 23:28
inode суть поле таблицы inode.
Структура inode — это то, что Вы нам тут тычете, размером 128 байт. А поле может быть большего размера. Извиняйте, если что не так.
жучара писал(а):
13.01.2020 23:28
Где-то же должно быть написано, вторые 128 байт под что выделяются. Наверное, я плохо ищу, надеюсь на помощь товарищей тык скыть.
Попробуйте поискать не в документации, написанной в 2002 году, когда ещё не додумались хранить там расширенные атрибуты, а в чём-нибудь посвежее. Нет, искать за Вас я не буду. Ваше хамство меня уже порядком достало.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu
Контактная информация:

Re: Как работает конфигурационный файл mke2fs.conf

Сообщение serzh-z »

жучара
Я и в самом деле не пойму - вы прикалываетесь или правда не понимаете: не существует никаких ext2, ext3 или ext4. Есть файловая система ext с кучей расширений.

Различные варианты драйвера ext умеют работать с определенными из них, а остальные расширения, в лучшем случае, просто игнорируют. Для mke2fs существует файловая система ext с разными профилями, ext4 отличается от ext2 лишь включенными расширениями, которые поддерживает драйвер ext4. Текущая документация по ext - это ext4 и она так или иначе включает в себя описание всех предыдущих расширений.
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 950
ОС: астралинукс

Re: Как работает конфигурационный файл mke2fs.conf

Сообщение жучара »

Bizdelnick писал:
13.01.2020 23:58
жучара писал(а):
13.01.2020 23:28
inode суть поле таблицы inode.
Структура inode — это то, что Вы нам тут тычете, размером 128 байт. А поле может быть большего размера. Извиняйте, если что не так.
я вам снова нахамлю. Так вот, если бы я где-нибудь прочёл, что "поле может быть большего размера", касаемо ext2 это и был бы ответ на вопрос. Пока же я читаю это только у вас. Извините уж меня, хама такого.
serzh-z писал:
14.01.2020 00:05
жучара
Я и в самом деле не пойму - вы прикалываетесь или правда не понимаете: не существует никаких ext2, ext3 или ext4. Есть файловая система ext с кучей расширений.
ладно, перейдём на ваши термины. Итак, файловой системы ext2 не существует, а существует файловая система система ext c расширением 2. Чё меняет? Документация найдётся сразу?
serzh-z писал:
14.01.2020 00:05
Текущая документация по ext - это ext4 и она так или иначе включает в себя описание всех предыдущих расширений.

Bizdelnick писал:
13.01.2020 23:58
Попробуйте поискать не в документации, написанной в 2002 году, когда ещё не додумались хранить там расширенные атрибуты, а в чём-нибудь посвежее.
ну то есть то, что вижу и уже описал. Реализовали в файловой системе ext2, ой, простите в файловой системе ext с расширением 2, аж не понять когда, а документировали в ext4

Вас самих-то устроило бы такое объяснение? Меня нет.
Bizdelnick писал:
13.01.2020 23:58
Нет, искать за Вас я не буду. Ваше хамство меня уже порядком достало.
да вы уж поищите, чё. Всё равно ж хам, так чтоб не зря уж.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

А ещё ситуацию ещё больше запутывает (для знающих проясняет, для меня запутывает) тот факт, что

Shell

man mke2fs
...
-I inode-size
...
The inode-size value must be a power of 2 larger or equal to 128.
...

Может, они как раз и имеют ввиду, что инод пусть будет 128 байт, но к нему можно прицепить хвостик и не по недоразумению, а нарочно. Я это и раньше видел, но объяснения зачем этот хвостик нужен- нет. То есть в структуре инода каждое поле описано. А тут просто прибавляем хвостик. И не просто хвостик, а хвостище, например 1024:

Shell

user@astra:~foo$ rm -f bar
user@astra:~foo$ dd of=bar bs=1M seek=1024 count=0
0+0 записей считано
0+0 записей написано
скопировано 0 байт (0 B), 1,3689e-05 c, 0,0 kB/c
user@astra:~foo$
user@astra:~foo$ sudo mke2fs -t ext2 -F -I 1024 -v bar
mke2fs 1.42.5 (29-Jul-2012)
fs_types for mke2fs.conf resolution: 'ext2'
Discarding device blocks: done
Discard succeeded and will return 0s - skipping inode table wipe
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65536 inodes, 262144 blocks
13107 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376

Allocating group tables: done
Writing inode tables: done
Writing superblocks and filesystem accounting information: done

user@astra:~foo$ sudo dumpe2fs -h bar | grep "Inode size:"
dumpe2fs 1.42.5 (29-Jul-2012)
Inode size: 1024
user@astra:~foo$
Без объяснения (а нет объяснения, просто можно прицепить и всё тут), зачем такой хвостик нужен, выглядит как недосмотр. Не обидел я тебя, начальник?
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5288
ОС: Gentoo

Re: Как работает конфигурационный файл mke2fs.conf

Сообщение /dev/random »

жучара писал(а):
14.01.2020 08:38
файловая система система ext c расширением 2
Нет у неё такого расширения - 2. Есть 64bit, has_journal, extent, huge_file, inline_data и т.д. Всего несколько десятков. Каждое можно включать и выключать индивидуально. Некоторые, однажды включив, нельзя выключить, некоторые - можно. Если включить расширение, которое не поддерживается драйвером, то этот драйвер с этой файловой системой работать не сможет. Ну а "ext2", ext3", "ext4" - это, если смотреть со стороны ядра, 3 поколения _драйвера_ этой файловой системы (при желании в ядро можно включить все 3, но большинство дистрибутивов включает только последний), а если смотреть со стороны утилит - 3 разных рекомендованных набора опций создания ФС (в т.ч. и включённых расширений): рекомендованный во времена драйвера ext2, рекомендованный во времена драйвера ext3 и рекомендованный сейчас.
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu
Контактная информация:

Re: Как работает конфигурационный файл mke2fs.conf

Сообщение serzh-z »

жучара писал(а):
14.01.2020 08:38
То есть в структуре инода каждое поле описано.
Драйвер ext2 умел работать лишь со структурой в 128 байт. Он и сейчас так делает. Для него не существует никакого хвостика. И хвостища даже нет.
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 950
ОС: астралинукс

Re: Как работает конфигурационный файл mke2fs.conf

Сообщение жучара »

serzh-z писал:
14.01.2020 14:04
жучара писал(а):
14.01.2020 08:38
То есть в структуре инода каждое поле описано.
Драйвер ext2 умел работать лишь со структурой в 128 байт. Он и сейчас так делает. Для него не существует никакого хвостика. И хвостища даже нет.
тогда простой вопрос возникает- зачем предусмотрена возможность добавления хвостика в ext2 если драйвер ext2 его не видит.
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu
Контактная информация:

Re: Как работает конфигурационный файл mke2fs.conf

Сообщение serzh-z »

жучара писал(а):
14.01.2020 20:13
зачем
Затем, что для mke2fs существует лишь один тип файловой системы и разные профили в конфигурационном файле. ext2 - это просто название профиля, не имеющее отношения к структурам на диске.

Переименуй ext2 в ext10 или указывайте тип "-t myfs" - ничего не изменится.
Спасибо сказали:
Ответить