Кажется, вы сбиты с толку.
/ boot
- это каталог. Можно поместить содержимое из / boot
в другой раздел, но / boot
сам по себе является обычным каталогом. На самом деле нет смысла говорить « / boot
- это раздел».
Обычно каталог с именем / dev
содержит «узлы устройств», такие как sda
, sda1
и так далее.Эти выглядят как файлы , но если вы откроете (скажем) / dev / sda
и прочитаете из него байты, вы увидите необработанные байты на первом жестком диске. И если вы пишете на него, байты записываются непосредственно на жесткий диск (тем самым уничтожая таблицу разделов вашего диска и другую информацию, так что на самом деле не пытайтесь это сделать!)
Есть и другие узлы устройства; например, если вы открываете файл / dev / zero
и читаете из него, независимо от того, сколько байтов вы просите прочитать, вы никогда не дойдете до конца файла, а байты всегда будут нулями. Это как если бы / dev / zero
- это файл, содержащий бесконечность байтов нулей!
Конечно, / dev / zero
не на самом деле содержит бесконечные байты. На самом деле это всего лишь небольшая заглушка с некоторыми магическими кодовыми числами, сообщающая ядру Linux, что нужно взаимодействовать с конкретным драйвером устройства. Аналогично, / dev / sda
указывает на другой драйвер (тот, что для жестких дисков), / dev / sr0
указывает на другой (драйвер CD-ROM) и так далее. (Вы можете найти / dev / soundcard
, / dev / tty3
и т. Д.)
Я думаю , что ваш вопрос, в основном, «Нам нужен / dev
для доступа к дискам, но / dev
хранится на диске, так что ... а?! "
Как только раздел, содержащий / dev
смонтирован, вы можете просто получить доступ к / dev
в обычном режиме. Но как нам вообще добраться до этой позиции? Что ж, это черная магия последовательности загрузки Linux.; -)
Старый способ заключался в том, чтобы написать параметр ядра Linux, который говорит что-то вроде root = (hd0,3)
, чтобы сказать монтировать раздел №3 на диск №0 в качестве корневой файловой системы, и продолжить оттуда. (В частности, ядро загружает / bin / init
как процесс №1.)
Новый способ заключается в использовании так называемого «начального RAM-диска» («initrd»). Еще более новый способ - это "initramfs", который немного отличается, и я не стану вас утомлять. В любом случае ваш загрузчик (обычно GRUB) загружает ядро Linux и initrd в память.
Обычно initrd содержит небольшую мини-версию вашей операционной системы; он содержит файлы, папки и прочее. В частности, он содержит сценарии загрузки, которые знают, где найти настоящий загрузочный раздел и смонтировать его для вас. Одна из вещей, содержащихся в initrd, - это папка / dev
, полная узлов устройств. В конце концов, когда сценарии загрузки сделают свое дело, вы обнаружите реальное загрузочное устройство и монтируете его поверх содержимого initrd. И оттуда вы можете получить доступ к своим реальным файлам в обычном режиме.