Назад | Перейти на главную страницу

Различия между / dev / sda и / dev / sda1

Я знаю, что / dev / sda - это необработанное устройство, а / dev / sda1 - это раздел или виртуальное устройство.

Но я немного смущен тем, почему sda # появляется только в некоторых случаях или только в определенных системах. Что вызывает это? Возможно, диски sda # не появляются, когда они не разбиты на разделы? Или, может быть, это не то же самое для оборудования?

И почему я могу установить оба? (иногда) Разве раздел не должен быть монтируемым?

Мы будем благодарны за любые ресурсы или цвет, которые вы можете дать. Заранее спасибо.

В современной системе устройство раздела появляется только в том случае, если раздел действительно существует.

На диске с таблицей разделов MBR номера разделов с 1 по 4 соответствуют четырем слотам в таблице разделов, которые называются «первичными» разделами. Их необязательно заполнять последовательно, поэтому можно, например, иметь sda2, но не sda1. Номера разделов 5 и выше соответствуют «логическим дискам» в расширенном разделе, и они всегда нумеруются последовательно, поэтому у вас не может быть sda6 без sda5.

На диске с таблицей разделов GPT может быть намного больше (обычно до 128) разделов, и все они являются «первичными». Например, у вас может быть диск, единственный раздел которого - sda9.

Если на диске нет таблицы разделов, то, конечно же, на нем не будет устройств с разделами.

В более старых системах - в которых используется статический / dev, а не управляемый udev - обычно есть узлы устройств для всех возможных номеров разделов, независимо от того, существуют ли разделы на самом деле. (Попытка открыть файл устройства для несуществующего раздела, конечно, не удастся.)


Можно отказаться от разбиения и поместить файловую систему прямо на диск. Когда вы монтируете блочное устройство, драйвер файловой системы обычно ищет суперблок с заранее заданным смещением от начала устройства, и, поскольку начало раздела не является началом самого диска, суперблок для файловой системы в разделе расположен в другом месте на диске, чем суперблок файловой системы, созданной на устройстве «весь диск».

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

Однако на самом деле небезопасно монтировать и использовать обе файловые системы, поскольку они перекрываются на диске. Один может иметь важные бухгалтерские данные в том, что другой считает свободным местом. Вот почему рекомендуется обнулить начало блочного устройства, удалить любые нежелательные суперблоки, если вы хотите заменить необработанный диск на разбитый на разделы или наоборот, или изменить тип файловой системы, используемой в разделе, и т. Д. .

Насколько мне известно, когда ядро ​​обнаруживает новое блочное устройство на scsi-подобной (включая sata) шине, помимо добавления узла в /dev для всего диска, например /dev/sda он попытается увидеть, есть ли таблица разделов. Если есть читаемые разделы, он затем создаст узлы разделов, пронумерованные в зависимости от того, являются ли они физическими или логическими разделами (я считаю, что логические разделы начинаются с # 5).

Если вы видите узел диска, но без узлов разделов, это означает, что разделы не обнаружены. Я не знаю ни одного случая, когда вы могли бы смонтировать физическое устройство, поскольку это означало бы, что файловая система напрямую записывается на физическое устройство без какой-либо таблицы разделов. Может случиться так, что в случае, когда есть только одно разделение, mount интерпретирует mount /dev/sda команда как значение /dev/sda1, но я это никогда не проверял.

/ dev / sda - сырое устройство

/ dev / sda1 - «виртуальное» устройство, например раздел.

Одно интересное отличие состоит в том, что если на устройстве есть разделы (есть данные MBR или что-то подобное), вы не можете читать данные MBR с любого из виртуальных устройств, поскольку данные MBR находятся вне каких-либо разделов на устройстве. MBR находится в первом секторе устройства (CHS: 0 0 1). Рекомендуется создать первый раздел размером 1 МБ после начала устройства.

Чтобы прочитать данные MBR, вы должны использовать необработанное устройство (/ dev / sda), то есть:

dd if=/dev/sda of=mbr.bin bs=512 count=1

Ах, таблицы разделов и имена устройств. Будьте готовы запутаться с ними.

У вас есть сервер HP с RAID-контроллером Compaq? Нет / dev / sda, поздоровайся с / dev / ccsis.

У вас старый настольный компьютер со старым интерфейсом IDE? Нет / dev / sda, поздоровайся с / dev / hda.

У вас есть современный сервер, на котором написано, что вы / dev / sda, но после установки вы его почти не видите? Поздоровайтесь с LVM, ваша установка ОС сделала ваш / dev / sda физическим томом LVM, внутри него была создана группа томов, а внутри нее - логический том.

Итак ... если вы не видите ничего похожего на / dev / sda1, возможно, вы используете LVM или аналогичный, который создал свои собственные «разделы».

Вы получили ответ на свой вопрос?