LINUX.ORG.RU

Как зафиксировать имена жёстких дисков?(не дубликат)

 


0

2

Вообще странно, что диск, который есть в системе как /dev/sda, при подключенной флешке при перезагрузке становится /dev/sdb. Весьма логично было бы, чтобы всё именовалось исходя из интерфейсов. К примеру, все сата порты: /dev/sd1 - /dev/sd6, все подключенные через usb: /dev/usbX, Все m2 - /dev/m2X

Чем это неудобно? На уровне монтирования - тут всё хорошо. Можно по uuid, можно по label. Но есть такой кейс: Сижу я в системе, вставляю флешку. Hdd == /dev/sda, флешка == /dev/sdb

cd ~/media/install/iso/debian/12/
sudo dd if=debian-live-12.0.0-amd64-standard.iso of=/dev/sdb bs=4096 status=progress

Записал я такой флешку. Перегружаюсь. Делаю бекап /dev/sda1. Потом перегружаюсь. И делаю следующее:

C-r 12 --> cd ~/media/install/iso/debian/12/
C-r dd 12 --> sudo dd if=debian-live-12.0.0-amd64-standard.iso of=/dev/sdb bs=4096 status=progress

Жмакаю break и? И получаю epic fail. Потому что теперь hdd == /dev/sdb, а флешка == /dev/sda

Ясно, что ЛЮБЫЕ операции с дисками надо перепроверять, но тут же не 100500 дисков, которые постоянно меняются. А всего два. И логично было бы, если бы hdd всегда был /dev/sda, а любые подключаемые флешки были, если не /dev/usbX, то хотя бы не /dev/sda, а /dev/sdb+

Через что это реализовать? Пока что пошел гуглить. Может тут кто-то предложит более элегантный способ

★★★

более элегантный способ

Всегда используй ссылки из /dev/disk/by-*. Я предпочитаю by-id, но это не правило для всех: каждый выбирает для себя сам.

Весьма логично было бы, чтобы всё именовалось исходя из интерфейсов

/dev/disk/by-path

Можно по uuid, можно по label

Такие там тоже есть.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Когда ты вставляешь флешку, на которой записан другой образ, то ты не сможешь в dd вставить uuid, т.к uuid формируется на разделы

lsblk -f
sdb    iso9660 Joliet Extension Debian bookworm 20230610-08:51 2023-06-10-08-51-17-00
├─sdb1 iso9660 Joliet Extension Debian bookworm 20230610-08:51 2023-06-10-08-51-17-00
└─sdb2 vfat    FAT12                                           6484-3985
blkid  |grep sdb
/dev/sdb1: BLOCK_SIZE="2048" UUID="2023-06-10-08-51-17-00" LABEL="Debian bookworm 20230610-08:51" TYPE="iso9660" PARTUUID="9dc2c09d-01"
/dev/sdb2: SEC_TYPE="msdos" UUID="6484-3985" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="9dc2c09d-02"

И label нельзя повесить на /dev/sdb

serg002 ★★★
() автор топика
Последнее исправление: serg002 (всего исправлений: 1)
Ответ на: комментарий от serg002

Udev не дает переименовывать block device

А в статье и не говорится ничего о том, что udev позволяет менять имена блочных устройств. В статье говорится, что благодаря udev можно использовать постоянные имена устройств, и приводится несколько схем постоянных имён. Если Вы хотите что-то более удобное, то можно просто использовать симлинки на постоянные имена.

QsUPt7S
()
Ответ на: комментарий от serg002

Ты намеренно выбираешь способы идентификации хранилищ по их содержимому, такому как UUID разделов. Очевидно, что другой образ с другими UUID покажет те самые другие UUID. Чего ты вообще ожидал? Внезапной магии, которая будет твои мысли читать? Определись с задачей и ищи подходящий инструмент. Про by-path я тебе уже написал.

i-rinat ★★★★★
()

Весьма логично было бы, чтобы всё именовалось исходя из интерфейсов. К примеру, все сата порты: /dev/sd1 - /dev/sd6, все подключенные через usb: /dev/usbX, Все m2 - /dev/m2X

Эта идея и реализована в ‘by-path’. Выглядит она иначе, так как твой способ именования решает только твой конкретный юзкейс с подключением флэшки.

В большинстве ситуаций при работе с дисками удобнее всего использовать ‘by-id’. Там как раз первые символы - твой способ идентификации метода подключения, а по остальным можно отличить устройство на глаз. Да и табом добивать меньше.

Можно написать простой скрипт, который будет делать симлинки на устройства по твоей схеме. Но польза от этого не ясна.

altwazar ★★★★
()
Последнее исправление: altwazar (всего исправлений: 1)

Вот тебе элегантный способ: пиши в джоб, какой-нибудь джун смилостивится и занедорого тебе настроит. Но это неточно.

frob ★★★★★
()