VolgogradLUG : CooperativeLinux

Инсталляция и настройка coLinux


Оглавление документа

Вводная


Cooperative Linux это порт ядра Linux позволяющий запускать его одновременно с другой ОС на одной и той же машине. Например можно запустить Linux на Win2K/XP. Внутри coLinux есть виртуальный сетевой адаптер, так что если запустить MySQL в coLinux то можно пользоваться им через TCP/IP из Windows. С этой точки зрения coLinux выглядит как еще одна машина в сети.

Иногда бывает сложно поставить Linux на машину. Например нет подходящего видеодрайвера или драйвера сетевой карты или что-нибудь такое. Или, например, рабочий день проходит под виндой по причинам от вас не зависящим и постоянно перегружаться из Windows в Linux не хочется. Ну а VMWare тяжеловат для вашей машинки.

Инсталляция


Скачать coLinux можно с сайта http://www.coLinux.org. Нужен файл coLinux-0.6.0.exe или более поздняя версия (весит около двух мегабайт). Более поздняя и предпочтительная версия 0.6.3 весит около пяти мегабайт.

После скачивания инсталлируем coLinux – это обычный графический инсталлятор. Можно инсталлировать куда угодно (я предпочитаю c:\colinux), назовем этот каталог – $COLINUX – проще с конфигурацией.

Для инсталляции необходимо иметь административные права в винде, потому что coLinux заставляет Windows использовать низкоуровневый драйвер.

Теперь нужно инсталлировать драйвер эмулятора сетевой карты TAP. (0.6.3 устанавливает автоматически. Ничего делать не нужно).

Для работы coLinux нужен дистрибутив — говорят он работает и с обычными дистрибутивами, но я качнул специально подготовленный образ диска с предустановленным дистрибутивом Debian (файл Debian-3.0r0.ext3.1gz.bz2 – весит 17 мегабайт, но ВНИМАНИЕ! разворачивается на 1 гигабайт, так что нужно иметь достаточно места на винчестере ). Если у вас уже есть инсталлированный Linux, то скорее всего вполне можно загрузить coLinux и с него.

Теперь разворачиваем bz2-архив с Debianом – bz2 архивы разжимает и WinZip и WinRAR, положить развернутый файл можно куда угодно, но для простоты в $COLINUX.

Теперь необходимо сказать coLinuxу где лежит файл (или раздел) с корневой файловой системой — открываем в любимом текстовом редакторе файл $COLINUX\default.colinux.xml, находим текст
<block_device index="0" path="\DosDevices\<<<<<<<< вот здесь вставляем путь к нашей root-fs
Итак – вот она самая магия – если вы используете *файл образа* раздела винчестера (такой как Debian-3.0r0.ext3.1gb) то сюда нужно добавить путь к этому образу – в нашем примере – $COLINUX/Debian-3.0r0.ext3.1gb.
Если вы хотите грузиться с уже существующего раздела – пишите сюда что-то вроде path="\Device\HarddiskVolume1" enabled="true" (внимание! жесткие диски в Windows нумеруются с 1, все остальное с 0).
Чтобы появилась возможность монтировать/грузиться с CD добавляем path="\Device\Cdrom0".

root НЕ МЕНЯЕМ!

Все перечисленные здесь устройства будут доступны как /dev/cobd# в coLinux.

Настройка

Своп

Ок. Следующий этап – скачать и подмонтировать своп – а как же без него? Впрочем, его можно сделать и самому при помощи программы dd командой
dd if=/dev/zero of=swap-file bz=1000k count=256
Но я просто качнул пустой файл нужного мне размера с http://gniarf.nerim.net/colinux/swap/. Затем нужно объявить этот файл как виртуальный раздел в default.colinux.xml, например как я:
<block_device index="1" path="\DosDevice\$COLINUX\swap-file" enabled="true"></block_device>
Теперь грузимся в coLinux и добавляем этот раздел в /etc/fstab:
/dev/cobd1 swap swap defaults 0 0
Теперь его нужно инициализировать:
mkswap /dev/cobd1
Ну и включить:
swapon -a

DVD/CD-ROM

Самое главное – устройство не должно использоваться из какой-то виндовой программы во время использования в coLinux.
В config.xml необходимо добавить следующую строку:
<block_device index="2" path="\Device\Cdrom0" enabled="true"/>
внимательно отнеситесь к атрибуту index – он не должен пересекаться с индексами других устройств.
Замонтировать можно так:
mount -t iso9660 /dev/cobd2 /cdrom
Обратите внимание: здесь имя устройства (/dev/cobd2) использует индекс, указанный в конфигурационном файле.
Чтобы не избежать заморочек с монтированием в дальнейшем – стоит добавить в fstab следующее:
/dev/cobd2 /cdrom iso9660 defaults,noauto
Теперь можно просто писать mount /cdrom и umount /cdrom.

После того, как CD-ROM правильно сконфигурирован в fstabе, становится возможным зарегистрировать его в системе APT и устанавливать с него программное обеспечение.
Чтобы автоматически добавить конкрентый CD-ROM в sources.list его нужно вставить в привод и выполнить команду:
apt-cdrom add

Сеть


Я описываю то, что сработало для меня (WinXP Home Edition). У вас могут сработать и другие настройки – уточните в документации coLinux как это сделать (и обязательно добавьте сюда описание).

Сеть можно настроить через NAT и через Native/Bridged Networking. Native/Bridged лучше, потому что NAT не пропускает некоторые протоколы и становится тяжело на colinux запускать доступные извне сервисы.

Просто выбираем «Панель Управления->Сетевые соединения->Затем выбираем сетевой интерфейс, который будет использоваться для доступа к сети, затем выбираем TAP интерфейс так чтобы оба были выбраны одновременно (этого можно добиться кликнув на них удерживая клавишу Ctrl) далее – нажимаем правую кнопку мышки и в меню выбираем – “Bridge Connections”.

Грузимся в coLinux и добавляем сетевой интерфейс (для Debianа нужно отредактировать файл /etc/network/interfaces):

iface eth0 inet static
address 192.168.0.40
gateway 192.168.0.1
netmask 255.255.255.0

затем в /etc/resolv.conf добавляем DNS адрес провайдера.

Можно использовать DHCP: в Debian должен быть установлен пакет dhcp3-client, в /etc/network/interfaces должно быть следующее:
iface eth0 inet dhcp


Добавить loopback интерфейс. В Debianе это делается так – в файле /etc/network/interfaces необходимо добавить текст
iface lo inet loopback
а в /etc/hosts – 127.0.0.1 localhost.localdomain localhost

X Window System

Пока что нельзя пускать X server прямо из coLinux, но можно использовать X server запущенный прямо из Windows. Можно качнуть Cygwin X (нужный пакет называется XFree86-base), и openssh отуда же чтобы делать X Forwarding. А можно воспользоваться (несвободным) X-WIN32 с сайта http://www.starnet.com/. Плюсом X-WIN32 является возможность копировать текст из Windows в coLinux и обратно. Также, можно воспользоваться VNC сервером в coLinux и VNC клиентом в Windows. Чтобы инсталлировать необходимую часть ядра иксов в самом coLinux без всякой ненужной муры, можно воспользоваться следующей командой: apt-get install xterm

Запуск

Теперь можно попробовать загрузиться – для этого запускаем программу $COLINIUX/colinux-daemon.exe.

Проблемы и их устранение

В релизе 0.6.0 по умолчанию запускается FLTK-консоль. К сожалению в ней не видно курсора. Чтобы избежать этой проблемы можно просто запусткать coLinux и при настроенной сети войти в машину удаленно с помщью ssh. Второй спопоб – не требует настроенного сетевого подключения, нужно использовать обычную NT консоль вместо FLTK консоли указав параметр -t nt во время запуска colinux-daemon.exe.

Как оно работает

Для исполнения ядра линукс в привилегированном режиме используется драйвер ведущей операционной системы. Он постоянно переключает состояние машины между системами, так что coLinux имеет полный контроль над аппаратурой. coLinux работает в своем собственном адресном пространстве почти как родное ядро, получая почти такую же производительность что и обычное ядро Linux, которое выполняется на этой машине без ограничений. coLinux использует тот же двоичный формат для исполняемых файлов что и обыный Linux, так что в нем можно запустить уже существующий дистрибутив одновременно с ведущей ОС.

Заключение

Инсталляция coLinux проста и доступна даже для пользователя средней руки имеющего небольшой опыт инсталляции обычных дистрибутивов Linux. Не стоит ставить coLinux на важный компьютер – программа находится на ранней стадии разработки и всякое ожет случиться. Ну а те, кто терпеливо дочитал до этого места могут порадоваться на скриншот с моей машины (60 килобайт).
[ Библиотека | Windows ]