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

Убедитесь, что USB-диск никогда не является sda, даже при загрузке с него

Немного предыстории ...

Я думаю, что это должен быть общий вопрос, связанный с ядром Linux (или модулем ядра), хотя я столкнулся с проблемой при предварительной загрузке debian для автоматической установки.

Каждый раз, когда я загружаю программу установки с USB-диска, он оказывается / dev / sda, но используемый мной файл preseed предполагает, что первый жесткий диск (в данном случае sata) должен быть / dev / sda. Я использую ту же систему для сетевой установки pxe, и я бы предпочел, чтобы они были согласованными. Я также опасаюсь, что если я напишу конфигурацию preseed, которая предполагает, что первым диском является sdb, то по какой-то причине его может не быть в какой-то момент.

Я попытался написать правила udev, которые изменяют имя устройства USB-диска на «INSTALLMEDIA», что, кажется, работает, однако это не приводит к тому, что диск SATA запускается с sda, они все равно запускаются с sdb.

Мои вопросы...

От чего зависит порядок обнаружения и именования дисков?

Что я могу сделать, чтобы контролировать это?

Если я не могу ничего сделать, чтобы управлять им, можно ли при загрузке с USB предположить, что USB-диск может быть более или менее гарантированно sda, а первым диском SATA всегда будет sdb?

Самый надежный ответ на этот вопрос, о котором я знаю, - это использовать новые символические ссылки, которые udev может создать для вас. Udev перечисляет дисковые накопители и создает несколько деревьев с устройствами, объясняя вам, что это за устройства.

Он находится в / dev / disk.

У вас по пути:

/dev/disk/by-path/pci-0000:00:1a.0-usb-0:1.5:1.0-scsi-0:0:0:0-part1
/dev/disk/by-path/pci-0000:00:1a.0-usb-0:1.5:1.0-scsi-0:0:0:0
/dev/disk/by-path/pci-0000:06:00.0-scsi-0:0:0:0
/dev/disk/by-path/pci-0000:00:1f.2-scsi-1:0:0:0-part2
/dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0-part2
/dev/disk/by-path/pci-0000:00:1f.2-scsi-1:0:0:0-part1
/dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0-part1
/dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0
/dev/disk/by-path/pci-0000:00:1f.2-scsi-1:0:0:0

Что ясно говорит вам, например, является ли устройство USB-устройством.

Другой вариант - создать свою собственную символическую ссылку (или даже файл устройства), если вы можете запустить какой-то сценарий до того, как вам действительно понадобится доступ к устройству. Что-то вроде

#!/bin/sh
for i in  /dev/sd? ; do 
  if detect installation drive somehow ; then ln -s $i /dev/install ; fi ; 
done ;

И в качестве крайнего решения вы можете «поменять местами» файлы устройств sda, sdb, ... в / dev, но я бы очень постарался избежать этого решения, так как оно может привести к множеству новых проблем.