Я знаю о программе e2label and friends для прикрепления метки к разделу диска, например
e2label /dev/sda1 bla
Я хочу сделать что-то другое: я хочу создать ярлык для жесткого диска, то есть для / dev / sda, а не для раздела.
Это возможно и если да, то как?
РЕДАКТИРОВАТЬ: Справочная информация: В случае с несколькими отсеками HD, я хотел бы поместить (бумажные) метки на дверь физического отсека и логически поставить ту же самую метку на диск, который я там вставил.
РЕДАКТИРОВАТЬ 2: Это о сервере Ubuntu Linux 12.04.
EDIT3: В разделах GPT также есть разделительная метка, которую можно установить, например, с помощью parted. См. Https://serverfault.com/q/681088/76442.
Ответы:
На ваш первоначальный вопрос уже есть несколько хороших ответов, поэтому я сосредоточусь на фоне вашего вопроса, маркировке дисков.
Я использую серийный номер привода для печати этикеток для отсеков горячей замены - это лучший способ однозначно и последовательно идентифицировать диск. Он не изменится независимо от того, к какому отсеку или к какому контроллеру он подключен.
Вы не упоминаете, используете ли вы Linux или какой-либо другой Unix, но в Linux вы можете получить список дисков (и разделов, которые мы хотим исключить) с указанием их марки, модели и серийного номера, просмотрев / каталог dev / disk / by-id /. Я считаю следующий псевдоним bash полезным для этого:
(Соответствие for
scsi-*
находит все "scsi-подобные" диски, включая диски SATA и SAS. В системах с только дисками SATA такжеata-*
будет работать)например, на одной из моих систем ZFS-сервера он выдает такие данные:
Как видите, список / dev / disk / by-id включает в себя марку и номер модели каждого диска, а также серийный номер. Все они представляют собой диски SATA, подключенные к портам SATA или SAS на контроллере LSI SAS-2008.
Если бы у меня был подключен принтер этикеток, было бы достаточно легко печатать этикетки на основе результатов
list_disks
. Вместо этого я использовал старый ручной писатель этикеток, потому что это то, что у меня было. На напечатанных этикетках указан только серийный номер без марки / модели (этого достаточно для идентификации диска, когда мне это необходимо). Этикетки очень удобны, когда привод выходит из строя и требует замены.источник
alias list_disks='find /dev/disk/by-id/ -iname scsi-* -o -iname usb-* | grep -v -- -part | while read disk ; do echo $(basename $(readlink $disk)) $(basename $disk); done | sed -re "s/(usb|scsi)-// ; s/(SATA|Generic)_//" | sort'
. он также находит USB-диски и избавляется от посторонних данных в выводе.Если речь идет о Linux, то я думаю, что вы можете достичь того, что хотите, используя
udev
символическую ссылку на ваши устройства. Если вы посмотрите/etc/udev/rules.d
, есть файл с именем70-persistent-cd.rules
, содержимое которого имеет такие строки:Он создает символическую ссылку
/dev/cdrom
на устройство, идентифицированное по его шине PCI. Вы должны быть в состоянии выполнить то, что вы хотите, идентифицировав жесткий диск, используя его (номер отсека? Извините, нет опыта там) и используя синтаксис, аналогичный приведенному выше, для добавления символической ссылки/dev/bay1
, например. Следующая статья о написанииudev
правил может быть полезна:Написание правил Udev
Заметка
Благодаря ответу slm, обратите внимание, что это решение делает метки специфичными для отсеков для жестких дисков, а не для дисков внутри них. Таким образом, если вы используете метки
/dev/bay1
и у/dev/bay2
вас есть жесткий диск A в отсеке 1 и жесткий диск B в отсеке 2, то это/dev/bay1
относится к диску A и/dev/bay2
относится к диску B. Если по какой-то причине вы меняете местами диски A и B, вы получаете/dev/bay1
ссылку на диск B и/dev/bay2
ссылку на диск A. На ваш вопрос я полагаю, что это ваше намерение. Пожалуйста, поправьте меня, если я ошибаюсь.источник
Вы не e2label разделы, вы e2label файловых систем. Эти файловые системы могут быть на разделах в файлах, на целых дисках, на сетевых блочных устройствах ... это не имеет значения.
Так что да, если непосредственно включена файловая система ext2 / 3/4
/dev/sda
, вы можете пометить ее так же, как и ту, которая была бы включена/dev/sda1
.Теперь, если непосредственно нет файловой системы,
/dev/sda
но, например,/dev/sda
она разделена (с использованием GPT, MBR, LVM ...) на несколько разделов, то, очевидно, вы не сможете ее использоватьe2label /dev/sda
.В разделе GPT вы можете присваивать имена разделам, чтобы вы могли создать раздел с одним сектором, имя которого поможет идентифицировать ваш диск. Вы можете сделать это с помощью
c
командыgdisk
.источник
Чтобы ответить на ваш вопрос, если можно пометить диск, а не раздел, ответ - нет. Я не знаю ни одного способа сделать это.
Вы можете использовать метод, описанный @JosephR, но понимаете, что эта настройка зависит от системы, поэтому, если вы перенесете этот жесткий диск в другую систему, предложенная им «маркировка» будет потеряна. Он не имеет никакого отношения к диску.
Кстати, вы можете увидеть метки и UUID для разных дисков, используя
blkid
команду.пример
источник
blkid
похоже, перечисляет только разделы, а не устройства, а это не то, что интересует ОП./dev/disk/by-id
и вы можете сделать этоudev
-Style , как показано в этом ответе .Я предполагаю, что ваша главная цель - однозначно идентифицировать физический диск. К сожалению, я не верю, что существует стандартный способ маркировки диска так же, как вы можете маркировать файловую систему.
Одним из способов является использование модели диска и серийного номера. В Linux вы можете получить эти идентификаторы с помощью
hdparm -i /dev/sdX
. Приятно то, что серийный номер может быть напечатан на наклейке производителя. (Я предполагаю, что вы в основном заботитесь о Linux, поскольку вы упомянулиe2label
в своем вопросе. Если это так, пожалуйста, отредактируйте ваш вопрос и добавьте тег linux .)Если вы используете аппаратный RAID-контроллер, он
hdparm
может не сработать, и в этом случае вам придется обратиться к инструментам командной строки RAID-контроллера.Если вы хотите идентифицировать его по содержимому диска, вы можете использовать GUID диска, который хранится в заголовке таблицы разделов GPT ( байты 56-71 LBA 1 ). Это произвольная случайная строка, а не метка по вашему выбору, но она похожа на метку в том смысле, что она постоянна до тех пор, пока вы не решите засорять таблицу разделов. В Linux вы можете увидеть GUID диска, используя
gdisk -l /dev/sdX
.источник
Судя по ответам, которые я получил (спасибо, ребята!), Похоже, нет способа на самом деле пометить диски, а только разделы. Таким образом, ответ, вероятно, "НЕТ".
Я пойду с предложениями, предложенными @cas и @ 200_success: я приклею серийные номера дисков с наклейкой к дверям отсека.
Создание небольшого раздела на каждом диске просто для того, чтобы иметь возможность пометить этот раздел (как предложено @Stephane Chazelas), также является вариантом, но я думаю, что это будет слишком запутанным для кого-то другого, кому, возможно, придется обслуживать систему позднее. ,
источник
Создайте
udev
правило, используя гарантированный уникальный WWN диска (если он есть), в противном случае используйте комбинированный идентификатор поставщика и серийный номер:Получите необходимые значения:
Помассируйте эти значения,
udev
rules
такие как:udevadm trigger
Чтобы автоматически называть символическую ссылку, используя значения, данные
udevadm info -q all /dev/<YOUR-DEVICE>
, вы можете использовать:Также возможно создавать
ENV
переменные изATTRS
значений, чтобы получить более короткий уникальный идентификатор.источник
Если ты
ls /dev/disk-by-path/pci*
...Вы обязательно увидите путь PCI для каждого отсека для дисков. Вам просто нужно использовать 1 известный диск, чтобы убедиться, что вы правильно выбрали метки.
Используйте,
blkid /dev/disk-by-path/pci*
чтобы увидеть, какие разделы диска находятся на пути PCI.Вы также можете монтировать по этому пути.
источник
Мне нравится решение @cas, но вот мои 2 ¢
источник
Диск уже помечен как
sda
,sdb
,sdc
... Перегородки пометили затем, например , наsda
:sda1
,sda2
...Вы можете перечислить все метки для дисков и разделов с помощью
ls /dev/sd*
источник