Немного предыстории ...
Я думаю, что это должен быть общий вопрос, связанный с ядром 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, но я бы очень постарался избежать этого решения, так как оно может привести к множеству новых проблем.