/sbin/mkfs.fs действует как двоичный файл, даже несмотря на то, что это файл символьной ссылки

По поводу вашего вопроса 3. :

Попробуйте добавить собственные определения в /etc/magic. Он будет использоваться вместе с предварительно скомпилированным файлом magic.mgc.

Если это не работает, проверьте с помощью

file --version

В моей системе Ubuntu 16.04 он сообщает:

 файл-5.25
магический файл из /etc/magic:/usr/share/misc/magic
 

Таким образом, он использует как текстовый файл /etc/magic, так и предварительно скомпилированный файл /usr/share/misc/magic.mgc

.
0
08.08.2017, 14:45
2 ответа

См. функцию parse_fs_typeв mke2fs.c:

.
  • если тип файловой системы указан явно (с помощью -t), используйте это
  • если инструмент работает на Hurd, используйте «ext2»;
  • если имя программы mke3fs, используйте «ext3»;
  • если имя программы mke4fs, используйте «ext4»;
  • если имя программы начинается с mkfs., используйте суффикс;
  • в противном случае используйте значение по умолчанию, определенное в /etc/mke2fs.conf, если таковое имеется;
  • в противном случае используйте «ext2», если журнал не включен по умолчанию, и в этом случае используйте «ext3».

Результирующая текстовая строка используется для поиска определения файловой системы в /etc/mke2fs.conf(, за исключением «ext2», который обрабатывается внутри ).

Таким образом, ваш mkmkбудет использовать тип файловой системы ext2.

4
28.01.2020, 02:16
  • Опция -tбезоговорочно устанавливает тип файловой системы, и с этой опцией единственным эффектом любого имени программы является изменение того, какое имя программы выводится в диагностических сообщениях во время работы программы.
  • На Hurd в качестве типа файловой системы используется ext2, независимо от имени, под которым вызывается программа, что опять же влияет только на диагностические сообщения.
  • В противном случае проверяется базовое имя нулевого аргумента процесса :
    • При вызове с mke3fsв качестве базового имени будет создана файловая система ext3,с журналом, как если бы был указан -j.
    • При вызове с mke4fsв качестве базового имени будет создана файловая система ext4.
    • Если базовое имя начинается с 5 символов mkfs., оставшиеся символы будут использоваться в качестве типа файловой системы безоговорочно. Если базовое имя также оказывается mkfs.ext3, журнал создается так, как если бы было указано -j.
    • В противном случае, с любым другим именем, он просто действует как старый добрый mke2fs, беря тип файловой системы из файла конфигурации и меняя его с ext2 на ext3, если указана опция -j.

Большую часть этого можно найти в руководствах mke2fsи mke2fs.conf. См. объяснение fs _типа в последнем и раздел Описание в первом. Единственная часть, которая отсутствует в руководствах, это то, что нераспознанное имя эффективно mke2fs.

1
28.01.2020, 02:16

Теги

Похожие вопросы