2015-12-10 2 views
0

1.Когда я использую команду mkfs в linux, мне интересно, когда я устанавливаю разные --type, что будет с диском.Как хранится информация о файловой системе?

2.Когда я использую fdisk -l, он покажет мне тип файловой системы каждого раздела. Поэтому я предполагаю, что на диске должна быть записана некоторая информация, которая будет предоставлена ​​для идентификации. Я прав? Если да, то где находится информация? В каком формате?

+1

Кажется, что информация хранится в MBR и EBR. Правильно ли это? –

+0

Да, см. Https://en.wikipedia.org/wiki/Partition_type#List_of_partition_IDs – xmojmr

+0

@xmojmr Спасибо! Помимо этого, как Linux распознает конкретный тип файловой системы, такой как ext4, fat и т. Д., Чей номер типа файловой системы в MBR одинаковый? –

ответ

1

Информация о разделе в MBR и EBR не используется Linux для идентификации файловой системы, хранящейся в разделе. Причина этого в том, что MBR имеет только место для одного 8-битного значения для типа файловой системы, и это, как известно, ненадежно. Нет единого реестра, который присваивает идентификаторы типов разделов, и если бы они были, учитывая, что MBR использовался большим количеством операционных систем через годы (от MS-DOS, до Windows, до Xenix, ко многим BSD, до SCO Unix, Linux), 256 различных типов разделов Just Is Not Enough.

Так что происходит, что файловые системы имеют «магические числа», которые хранятся в разных местах, почти всегда в первых 32 к или около того раздела (и чаще всего в первых 4-8k раздела). Когда ядро ​​Linux монтирует корневую файловую систему, оно просто пробует несколько разных типов файловой системы, пока не будет успешно установлено. В файле/etc/fstab указан тип файловой системы, который должен использоваться для конкретного блочного устройства, поэтому ядру не нужно угадывать или слепо попробовать разные типы файловой системы.

Если вы не представляете, какая файловая система может находиться в конкретной таблице разделов, существуют такие программы, как blkid, которые будут использовать hueristics, как правило, с помощью набора волшебных чисел, управляемых таблицами, для определения типа файловой системы. Одна из таких таблиц можно найти здесь:

https://git.kernel.org/cgit/fs/ext2/e2fsprogs.git/tree/lib/blkid/probe.c?h=v1.43.1#n1411

Тот факт, что магические числа могут быть найдены в нескольких местах делает звук страшно, потому что вы можете получить разные ответы в зависимости от того, что вы пытаетесь зондировании для магических чисел , Но, к счастью, большинство инструментов mkfs достаточно умны, чтобы обнулить другие части диска, где магические числа из файловых систем, которые ранее использовались в этом разделе, и на практике они работают достаточно хорошо, если вы обнуляете первые 32k и последние 32k в разделе.

Смежные вопросы