2013-11-22 2 views
0
$ cat /proc/partitions 
major minor #blocks name 

    8  0 976762584 sda 
    8  1 99998720 sda1 
    8  2   1 sda2 
    8  3 103561216 sda3 
    8  4 291514368 sda4 
    8  5 1998848 sda5 
    8  16 31506432 sdb 
    8  17 31505439 sdb1 

Я хочу провести различие между физическими дисками (/dev/sda) и логическими дисками (/dev/sda1) от /proc/partitions выхода./Proc/разделы мажорные и минорные номера для обнаружения физических дисков и разделов

  1. Один простой способ я вижу, чтобы проверить с каким-то регулярное выражение шаблон заканчивается ли это с целым или нет
  2. Как я вижу выход на моей машине sda имеет наименьшее второстепенное значение, чем все sdaN записей
  3. проверки для существование /sys/block/[NAME] Поэтому я буду стараться читать /sys/block/sdaN каталоги (которые могут выйти из строя) и /sys/block/sda (что получится)

Я не знаю, какой из них является надежным и есть ли другие способы?

Кроме того, как я могу надежно сделать древовидную структуру, как sda : {sda1, sda2, sda3, sda4, sda4}, sdb : {sdb1}

  1. только по имени
  2. незначительных номера
  3. снова смотреть в /sys/block
  4. положения (Это подтверждает, что sda1 будет всегда приходит после sda? Например, логическая запись раздела всегда появляется после записи физического диска?)
+0

Вы знаете, что все разделы для конкретного блочного устройства должны быть подкаталогами под родительским каталогом? – Petesh

+0

Попробуйте выполнить команду 'lsblk' – Peter

ответ

0

Похоже, что вы не различаете между первичными и вторичными разделами:

Перегородки обычно могут иметь тип первичный (максимум четыре), расширенный (максимальный) или логический (содержащийся в расширенном разделе). Каждый раздел имеет поле типа, содержащее код. Это определяет операционную систему компьютеров или файловую систему разделов.

Первичный (макс 4) 1-4, Extended (макс 1) 1-4, Логическое 5-

Когда дело доходит до именования разделов, вы обычно видите, что устройства жестких дисков называются/DEV/hdx или/dev/sdx с x в зависимости от конфигурации оборудования.

Номер раздела, начинающий отсчет в 1. Следовательно, четыре (возможных) первичных раздела пронумерованы с номерами от 1 до 4. Подсчет логических разделов всегда начинается с 5. Таким образом,/dev/hda2 является вторым разделом на первом жестком ATA дисковое устройство и/dev/hdb5 - это первый логический раздел на втором жестком диске ATA. То же самое для SCSI,/dev/sdb3 является третьим разделом на втором диске SCSI.

Для создания новых разделов на дисках fdisk всегда будет вашим другом, и вы просто добавите пробел, начиная с последнего взятого блока, где вы всегда можете проверить их либо через fdisk -l, либо #cat/proc/перегородки

Если вы не можете создавать устройства с помощью fdisk или разделенных инструментов, просто упомянули об этом ?!

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