netbsd: как читать метки cdrom
Я пытаюсь создать образ NetBSD для использования в моем облаке opennebula, и для его контекстуализации мне нужно найти диск с надписью "CONTEXT", на самом деле это компакт-диск, обычно в Debian, я бы искал его в /dev/disk/by-label, но в NetBSD история кажется другой, и я попытался использовать метку диска, но я нашел только "фиктивный" ярлык на диске:
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" для его монтирования. План B состоит в том, чтобы просто смонтировать компакт-диск, если он доступен, и проверить, существует ли файл context.sh, но я бы предпочел сделать это правильно, проверив имя диска.
1 ответ
Вы можете использовать команду file(1) на устройстве CD-ROM.
Например, у меня в приводе CD-ROM есть NetBSD 7 iso:
$ 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
...
Больше информации можно найти в вики.