>>"eth0".."eth6" в Linux перепутываются постоянно даже с разными карточками, использующими >разные драйвера -- для FreeBSD такой случай исключён из практики правильной АРХИТЕКТУРОЙ.
>
>Это называется "ниасилить" :))) И это как раз про упоминавшихся уже хомячков
>:)
>В тех же RH-системах в /etc/sysconfig/network-scripts/ifcfg-бла-бла есть опция HWADDR, которая по-дефольту верно
>выставляется Анакондой. Товарищъ имел ввиду, что индексы к сетевым интерфесам вычисляются последовательно +1 c нуля, по мере обхода всего дерева шин-устройств c dev_probe()/dev_attach().
pcib1@pci0:1:0: class=0x060400 card=0x00008086 chip=0x29f18086 rev=0x01 hdr=0x01
pcib2@pci0:6:0: class=0x060400 card=0x00008086 chip=0x29f98086 rev=0x01 hdr=0x01
pcib3@pci0:28:0: class=0x060400 card=0x00000000 chip=0x29408086 rev=0x02 hdr=0x01
pcib5@pci0:28:2: class=0x060400 card=0x00000000 chip=0x29448086 rev=0x02 hdr=0x01
pcib6@pci0:28:3: class=0x060400 card=0x00000000 chip=0x29468086 rev=0x02 hdr=0x01
pcib7@pci0:28:4: class=0x060400 card=0x00000000 chip=0x29488086 rev=0x02 hdr=0x01
pcib8@pci0:28:5: class=0x060400 card=0x00000000 chip=0x294a8086 rev=0x02 hdr=0x01
...
uhci0@pci0:29:0: class=0x0c0300 card=0x31fe103c chip=0x29348086 rev=0x02 hdr=0x00
uhci1@pci0:29:1: class=0x0c0300 card=0x31fe103c chip=0x29358086 rev=0x02 hdr=0x00
uhci2@pci0:29:2: class=0x0c0300 card=0x31fe103c chip=0x29368086 rev=0x02 hdr=0x00
uhci3@pci0:29:3: class=0x0c0300 card=0x31fe103c chip=0x29398086 rev=0x02 hdr=0x00
..
bge0@pci3:4:0: class=0x020000 card=0x703e103c chip=0x167814e4 rev=0xa3 hdr=0x00
bge1@pci3:4:1: class=0x020000 card=0x703e103c chip=0x167814e4 rev=0xa3 hdr=0x00
Это универсальная логика для всех устройств, и для понимания просто где какой интерфейс нужно знать имя класса устройства, и его порядок данных устройств на шине при опросе.
Для PCI это по степени удаления слота от моста.
Добавил карту такого же класса на ту же шину перед существующей - подумай, сдвинь индекс +1 в настройках.
Автомагичность по hw-адресам - нафик-нафик... От лукавого это, лишнее. Змеи еще какие-то, анаконды...
Шинно-классово-древовидную топологию устройств придумали давно, если не изменяет память еще в Беркли в 80-x, писатели Linux kernel таки решили толи выпендрится, то ли от великого ума, и сделали именование network interfaces гм... другим.
>Встречный вопрос фряховодам: fstab(5) Linux,
Гм... После "фряховодам" отвечать не хочется... :|
Ответил - значит "фряховод" :) Хотя такой зоопарк иной раз в проекте бывал...
>Вопрос не праздный, и, хотя и с подколкой, ответ мне очень интересен,
>я бы хотела оказаться не правой и чего-то не осилевшей, так
>как приходится работать со фрей, но пока недостатки by design по
>нумерованию железок, простите, вижу не у Linux'а
Таки тебе недостатки искать, или работать? :)
# man glabel
...
This class also provides volume label detection for file systems. Those
labels cannot be set with glabel, but must be set with the appropriate
file system utility, e.g. for UFS the file system label is set with
tunefs(8). Currently supported file systems are:
· UFS1 volume names (directory /dev/ufs/).
· UFS2 volume names (directory /dev/ufs/).
· UFS1 file system IDs (directory /dev/ufsid/).
· UFS2 file system IDs (directory /dev/ufsid/).
· MSDOSFS (FAT12, FAT16, FAT32) (directory /dev/msdosfs/).
· CD ISO9660 (directory /dev/iso9660/).
· EXT2FS (directory /dev/ext2fs/).
· REISERFS (directory /dev/reiserfs/).
· NTFS (directory /dev/ntfs/).
Support for partition metadata is implemented for:
· GPT labels (directory /dev/gpt/).
· GPT UUIDs (directory /dev/gptid/).
Generic labels are created in the directory /dev/label/.
...
Собственно, этого более чем хватает что бы "пилевать" на шинную адресацию, SCSI LUN, ATA CH, USB ADDR, ... Опознание-отображение делается по все иерархии GEOM.
Указание корня при загрузке в соотв. glabel так же возможно, man loader. Естественно, даже если корень на другом физическом диске относительно загрузчика и считанного в память ядра.