Персональный | |
VMware2 и образы компактных дисков
18.03.2002
Летом 2001 года я захотел поэкспериментировать с загрузочными CD-дисками,
в частности, с загрузочным диском NT.
Делать это на физических CD-RW дисках не хотелось и я решил
воспользоваться VMware.
Однако, существовавшая в то время VMware2 не умела работать
с образами CD, поэтому я научил устройство
Для того, чтобы VMware воспринимало устройство
Для того, что бы с диском можно было работать и загружаться,
нужно ещё два ioctl.
Первый, CDIOREADTOCHEADER, возвращает таблицу трэков (TOC),
Кроме того, NT периодически вызывает ioctl CDIOCREADSUBCHANNEL,
возвращающий информацию о подканале
Для того, что бы и пересобрать модуль# patch -d /usr/src < patch.vn_cd.txt vn.ko и vnconfig .
Для сборки модуля нужно перейти в каталог, где лежат объектные файлы ядра
и запустить make :
Переустанавливать всё не нужно, достаточно только скопировать модуль:# cd /usr/src/sys/compile/KERNEL # make Для сборки# cp modules/usr/src/sys/modules/vn/vn.ko /modules/vn.ko vnconfig
нужно перейти в каталог /usr/src/usr.sbin/vnconfig
и запустить make :
Собранный# cd /usr/src/usr.sbin/vnconfig # CFLAGS="${CFLAGS} -I /usr/src/sys/" make obj all vnconfig можно установить:
# make install
После всех этих действий в и с помощью# vnconfig -s cdrom -c vn0c image.iso cdcontrol можно попробовать
прочитать TOC имиджа:
В этой строке отображается информация, которую# cdcontrol -f /dev/vn0c info Starting track = 1, ending track = 1, TOC size = 18 bytes cdcontrol
получает через ioctl CDIOREADTOCHEADER.
Однако, в отличие от реального диска, в нашем случае
cdcontrol не может показать начало и длину треков,
так как вместо реализованного ioctl CDIOREADTOCENTRY, он использует
нереализованный ioctl CDIOREADTOCENTRYS, возвращающий начало нескольких треков.
В настройках VMware нужно указать, что CD-ROM находиться в устройстве
(C) Игорь Сысоев |