Я пытаюсь создать образ NetBSD, который будет использоваться в моем облаке opennebula, и для его контекстуализации мне нужно найти диск с надписью «КОНТЕКСТ», на самом деле это компакт-диск, обычно на debian я ищу его на / dev / disk / by-label, но в NetBSD все по-другому, и я попытался использовать disklabel, но нашел только «фиктивную» метку на компакт-диске:
NetBSDImage# disklabel /dev/cd0
# /dev/cd0d:
type: ATAPI
disk: iso partition
label: fictitious
flags: removable
bytes/sector: 2048
sectors/track: 100
tracks/cylinder: 1
sectors/cylinder: 100
cylinders: 2
total sectors: 181
rpm: 300
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0 # microseconds
track-to-track seek: 0 # microseconds
drivedata: 0
4 partitions:
# size offset fstype [fsize bsize cpg/sgs]
a: 181 0 ISO9660 0 # (Cyl. 0 - 1*)
d: 181 0 UDF # (Cyl. 0 - 1*)
disklabel: boot block size 0
disklabel: super block size 0
disklabel: partitions a and d overlap
Я не понимаю, как я могу сделать то же самое в NetBSD, проверяя, есть ли диск с именем «CONTEXT» для его монтирования. План Б - просто смонтировать компакт-диск, если он доступен, и проверить, есть ли файл с именем context.sh, но я бы предпочел сделать это правильно, проверив имя диска.
Вы можете использовать файл (1) на устройстве CD-ROM.
Например, у меня в приводе компакт-дисков стоит ISO-образ NetBSD 7:
$ sudo file -s /dev/cd0d
/dev/cd0d: # ISO 9660 CD-ROM filesystem data 'NETBSD_70_BETA' (bootable)
Идентификатор тома здесь - NETBSD_70_BETA.
Вы также можете установить isoinfo из pkgsrc (sysutils / cdrtools) и sed / grep с нужными вам данными:
$ sudo isoinfo -d -i /dev/cd0d
CD-ROM is in ISO 9660 format
System id: NetBSD
Volume id: NETBSD_70_BETA
Volume set id:
Publisher id: THE_NETBSD_PROJECT
...
Более подробную информацию можно найти в вики.