26 апреля 2005 г
Как известно, образы для записи CD- и DVD-дисков во всех Linux'ах и BSD'ях создаются посредством утилиты mkisofs. После чего и записываются тем или иным образом:-) (cdrecord там, или burncd). Однако нередко, прежде чем портить болванку, возникает желание посмотреть - а то ли собрано в образ, что нужно?
В Linux'ах это делается посредством монтирования loop-устройства. Во FreeBSD 5-й ветки - с помощью доступа к универсальному устройству md (Memory Disk), как это было описано ранее. DragonFly же унаследовал от FreeBSD 4-й ветки понятие псевдоустройства vn (Virtual Node). Поскольку многие уже могли забыть, что это такое (а начинающие пользователи - и не знать никогда), позволю им (и себе не в последнюю очерерь) вкратце напомнить, как это делается.
Для начала нужно обеспечить поддержку псевдоустройтсва vn. Она может быть встроена в ядро - по умолчанию в ядре GENERIC ее нет, - для чего из файла /usr/src/sys/i386/conf/LINT в файл конфигурации текущего ядра нужно перетащить строку
pseudo-device vn #Vnode driver (turns a file into a device)
и выполнить пересборку, как это было описано здесь.
Однако делать это отнюдь не обязательно - псевдоустройство vn поддерживается и модульно, а все возможные модули в DragonFly собраны по умолчанию. Так что достаточно подгрузить нужный
S kldload vn
чтобы поддержка Virtual Nodes стала реальностью. После чего остается только поставить в соответствие определенному /dev/vn# файл ранее созданного образа диска. Это делается специальной утилитой
$ vnconfig /dev/vn0 /path_to/filename.iso
где /dev/vn0 - имя файла псевдоустройства (очевидно, что в качестве номера может быть использован любой наличный в каталоге /dev и ранее не задействованный). Каковое и монтируется самым обычным образом:
$ mount -t cd9660 /dev/vn0 /mnt/iso
Теперь состав собранного образа можно просмотреть командами типа ls или в любом файловом менеджере. И, убедившись в правильности сборки, размонтировать
$ umount /mnt/iso
и отправить на запись.

