2

В процессе загрузки Linux у нас есть initrd который является корневой файловой системой и монтируется до того, как настоящая корневая файловая система готова к монтированию. Какая процедура монтажа? Что должно произойти, чтобы мы могли сказать, что файловая система смонтирована? И почему мы говорим "корневая файловая система" вместо просто "файловая система"?

2 ответа2

3

Он говорит "корневая файловая система", потому что может быть много других файловых систем, которые монтируются во время загрузки. Root или / как C-Drive в Windows. Файловая система монтируется, когда она доступна системным функциям более высокого уровня через точку монтирования.

О процессе монтажа ... Я не знаю, какой технический ответ вы хотите, поэтому, пожалуйста, не обижайтесь на это чрезмерное упрощение. Вот как я бы объяснил это своим клиентам: подключив Flashdrive.

  1. Пользователь подключает USB Flashdrive
  2. ОС обнаруживает «что-то» подключенное к USB-порту X
  3. ОС прощупывает порт и обнаруживает, что есть флешка
  4. ОС назначает устройству узел устройства (скажем, /dev/sdb)
  5. ОС проверяет /dev/sdb и находит таблицу разделов на основном разделе
  6. ОС назначает узел устройства разделу (скажем, /dev/sdb1)
  7. ОС проверяет /dev/sdb1 и распознает файловую систему FAT32
  8. ОС монтирует файловую систему в /dev/sdb1 к новой точке монтирования (например, /media/pendrive/)
  9. Содержимое файловой системы доступно для системы и, следовательно, для пользователя.

Содержимое устройства (необработанные данные) - это просто набор нулей и единиц. При монтировании устройства система добавляет что-то вроде «фильтра чтения / записи» поверх этих нулей и единиц, который переводит нули и единицы в реальные файлы и наоборот.

Например: когда вы сохраняете "Hello World" в текстовый файл в /media/pendrive , тогда фильтр преобразует это в соответствии с правилами файловой системы и, в конце концов, серию нулей и единиц и записывает в /dev/sdb1 .

1

* Для систем nix файловая система должна находиться в / , также называемой корневой. С initrd корень является виртуальной файловой системой в initrd. Система должна выполнить "pivot mount", при котором настоящая файловая система монтируется в корень, а файловая система initrd перемонтируется под нее.

Фактический процесс монтирования просто регистрирует файловую систему с VFS внутри ядра, чтобы он знал, где искать, чтобы найти файлы в определенном каталоге.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .