Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Приемы работы в Ubuntu.
Глава 9: Виртуализация и эмуляция

Оригинал: "Ubuntu Hacks: Chapter 9 - Virtualization and Emulation"
Авторы: Кайл Ранкин, Джонатан Оксер, Билл Чайлдерс (Kyle Rankin, Jonathan Oxer, Bill Childers)
Дата публикации: June 2006
Перевод: Н.Ромоданов
Дата перевода: октябрь 2010 г.

Совет # 89: Запускаем Ubuntu внутри Windows

Если вы хотите выйти за границы песочницы эмулятора, попробуйте coLinux и запустите Ubuntu как процесс, сосуществующий одновременно с Windows.

coLinux (Cooperative Linux — Кооперативный Linux), который можно получить из http://www.colinux.org/, использует уникальный подход к решению тех же самых проблем, что решаются с помощью эмуляторов. Вместо того, чтобы предлагать изолированную песочницу так, как это делается в Virtual PC или VMware, этот порт ядра Linux позволяет запускать Linux одновременно с Windows. Это означает, что вы не получите полностью эмулированной и/или виртуализированной среды персонального компьютера. Но у вас будет возможность запустить дистрибутив Linux в консольном режиме с сетевой поддержкой, а затем можно будет использовать SSH-туннель к системе coLinux и запускать приложения на сервере X11 в Windows. Вы можете воспользоваться отличным и бесплатным вариантом X11, имеющимся в Cygwin (http://www.cygwin.com), в котором также есть порты для Windows многих инструментальных средств и приложений. Благодаря комбинации coLinux и Cygwin, вы можете без дополнительных накладных расходов и сложной настройки, что случается в других случаях, заставить Ubuntu работать совместно с Windows; причем все будет работать достаточно быстро.

Для того, чтобы настроить Ubuntu и запустить его вместе с coLinux, сначала необходимо установить сам coLinux и выбрать минимальный образ диска Debian, который поставляется вместе с coLinux. С помощью некоторых трюков apt-get вы затем сможете превратить эту настройку Debian в систему Ubuntu.

Установка coLinux

Загрузите последнюю версию инсталлятора с веб-сайта coLinux и запустите его под Windows. Если у вас не установлен пакет WinPcap (http://winpcap.mirror.ethereal.com/install/default.htm), то необходимо его скачать и установить (не волнуйтесь, инсталлятор coLinux также напомнит вам об этом).

Когда вы запустите инсталлятор, он будет пытаться установить coLinux в директорий C:\\Program Files\\coLinux. Вы должны изменить его на директорий C:\\coLinux, поскольку конфигурационные файлы по умолчанию ожидают найти его там. Кроме того, пути, в которых нет пробелов, делают всех счастливее.

Когда появится запрос на выбор дистрибутива Linux, выберите инсталлятор Debian. В результате будет скачан небольшой сжатый файл, который, после того, как вы его разархивируете, увеличится до 1 ГБ. По ходу установки вы получите сообщение Windows об ошибке проверки на совместимость, относящееся к адаптеру TAP-Win32, который нужен, если вы хотите использовать сеть, так что вам потребуется нажать на кнопку Continue Anyway (Продолжить в любом случае) и позволить Windows установить его.

Когда установка будет завершена, вам будет предоставлена возможность просмотреть файл README. Я знаю, вы, как правило, никогда не делаете этого, но для сложного программного обеспечения, я думаю, это сделать следует.

Настройка образа Debian

Теперь, когда coLinux установлен, нужно выполнить еще несколько настроек. К этому моменту, я надеюсь, вы установили Cygwin, поскольку вам при настройке потребуется использовать его некоторые утилиты. Если нет, то установите его сейчас, и, когда вы будете готовы, откройте окно командной строки Windows, затем используйте команду cd чтобы перейти в директорий C:\\coLinux. Вам нужно разархивировать образ файловой системы, которую вы загрузили. Он, скорее всего, сжат с помощью bzip, поэтому вы для того, чтобы его распаковать, должны использовать утилиту bunzip2 из Cygwin:

C:\\coLinux>\\cygwin\\bin\\bunzip2 Debian-3.0r2.ext3-mit-backports.1gb.bz2

Подсказка

Прежде, чем его распаковывать, сделайте резервную копию этого файла просто на случай, что если во время работы с ним произойдет ужасная ошибка, у вас будет возможность начать с нового образа.

Далее, вам нужно создать файл подкачки. Для этой цели замечательно подходит команда dd, которая есть в Cygwin. В Windows есть утилита с названием fsutil, с помощью которой также можно создать файл подкачки, так что с помощью любой из этих команд создайте этот файл размером в 512 MB:

> fsutil file createnew swap_device 536870912
> c:\\cygwin\\bin\\dd if=/dev/zero of=swap_device bs=1M count=512

Теперь вам нужно работать с конфигурационным файлом. Скопируйте файл default.colinux.xml в файл colinux.xml и откройте последний в вашем любимом текстовом редакторе.

Отредактируйте этот файл - убедитесь, что пути к образу вашей файловой системы (по умолчанию - root_fs) и к устройству файла подкачки (по умолчанию - swap_device) являются правильными. Увеличьте объем вашей оперативной памяти для того, чтобы чувствовать себя комфортно (256 Мб - это хорошо, если, предположим, у вас более 512 Мб оперативной памяти и, пока работает ваша система coLinux, вы не планируете делать ничего такого, что потребует много памяти).

Теперь пришло время настроить подключение к сети. Перейдите по Control Panel → Network Connections (Панель управления → Сетевые подключения) и найдите адаптер TAP-Win32, выделенный на рис.9-16. Измените его имя, если вы хотите (по умолчанию будет нечто вроде "Подключение по локальной сети 5"), и добавьте в файл colinux.xml свое имя входа в сеть.

Ubuntu Hacks. Поиск адаптера TAP

Рис.9-15. Поиск в Windows адаптера TAP

Теперь вам нужно открыть доступ к подключению к сети интернет. Найдите в окне Network Connections (Сетевые подключения) ваше подключение к интернет, щелкните по нему правой кнопкой мыши и выберите Properties (Свойства). Перейдите на вкладку Advanced (Дополнительно), нажмите кнопку "Allow other network users to connect through this computer's Internet connection" ("Разрешить другим пользователям сети использовать данное подключение к сети интернет") и выберите адаптер TAP в выпадающем меню "Home networking connection" ("Подключение к домашней сети") так, как это показано на рис.9-17.

Подсказка

В Windows 2000 вам нужно сначала загрузить coLinux, а затем откройте сетевые настройки Local Area Connection (Подключение по локальной сети), выберите вкладку Properties (Свойства) и выберите "Enable Internet Connection Sharing for this Connection" ("Разрешить общий доступ к интернету через это соединение"). Это связано с тем, что Windows 2000 не позволит вам задать общий доступ если в этот момент интерфейс Tap не будет активен.

Ubuntu Hacks. Совместное использование подключения к интернет

Рис.9-17. Совместное использование подключения к интернет

Далее возвращаемся в командную строки и запускаем colinux как отдельный процесс. Вы можете запустить его как демон, но проще отладить его так, как есть. Параметр -t NT указывает использовать для удобства копирования и вставки в качестве консоли командную строку Windows, а параметр -c указывает имя конфигурационного файла:

C:\\coLinux>colinux-daemon.exe -t NT -c colinux.xml
Cooperative Linux Daemon, 0.6.3
Compiled on Sun Feb  5 20:25:03 2006

Linux version 2.6.11-co-0.6.3 (george@CoDebianDevel) (gcc version
3.4.4 20050314
 (prerelease) (Debian 3.4.3-13)) #1 Sun 384MB LOWMEM available.
 initrd enabled: start: 0xd7e10000  size: 0x001ef78a)
 On node 0 totalpages: 98304

Вы увидите обычный поток сообщений, а затем вам будет выдано приглашение войти в систему Войдите в систему с правами администратора root, и введите пароль root. На данный момент сеть не будет работать, поскольку в файле /etc/network/interfaces есть некоторые жестко (и неправильно) указанные значения. Запустите команду pump -i eth0 и проверьте вывод команды ifconfig, чтобы узнать, получили ли вы от Windows адрес IP для доступа к соединению. Если да, то вы можете отредактировать файл /etc/network/interfaces (для этого вам, возможно, потребуется выполнить команду apt-get update, а затем apt-get install vim или apt-get install emacs) и заменить:

iface eth0 inet static
 address 192.168.254.205
 netmask 255.255.255.0
 gateway 192.168.254.1

на:

iface eth0 inet dhcp

Подсказка

Если вы хотите использовать каждый раз один и тот же адрес, вы должны заменить адрес 192.168.254.205 на адрес, который вы получили от команды pump. Пока вы не будете запускать несколько экземпляров coLinux, вам не нужно беспокоиться о коллизиях адресов IP. Если вы запустили несколько экземпляров, вы всегда можете выбирать IP адреса из диапазона 192.168.0.0/24 таким образом, чтобы они не конфликтовали друг с другом.

Теперь вы можете внутри дистрибутива coLinux выполнить команду halt с тем, чтобы его остановить, а затем снова запустить coLinux и убедиться, что при загрузке системы сеть конфигурируется правильно. Теперь вы готовы к установке Ubuntu.

Предостережение

Если в вашей реальной сети используется тот же самый диапазон адресов, которые используются в Windows (192.268.0.0/24), у вас будут проблемы. Если это произойдет, вам нужно будет перенастроить вашу физическую сеть так, чтобы в ней использовался другой диапазон адресов.

Устанавливаем Ubuntu

Превратить Debian в Ubuntu сравнительно легко, но для гладкого перехода вы должны убедиться, что у вас самая последняя и лучшая версия системы Debian, так что выполните apt-get update; apt-get upgrade. Вам также потребуется сделать еще несколько обновлений, чтобы быть уверенным, что ваша система обновлена и можно устанавливать Ubuntu. Это делается следующим образом:

$ sudo apt-get install sed locales

Подсказка

Другой подход (не такой быстрый и более аккуратный) преобразования Debian в Ubuntu, смотрите в разделе "Преобразовываем систему Debian в систему Ubuntu" [Совет # 66].

Затем отредактируйте файл /etc/apt/sources.list, удалите все из него и вставьте следующие строки:

deb http://archive.ubuntu.com/ubuntu dapper main restricted 
deb-src http://archive.ubuntu.com/ubuntu dapper main restricted

deb http://archive.ubuntu.com/ubuntu dapper-updates main restricted
deb-src http://archive.ubuntu.com/ubuntu dapper-updates main restricted 

deb http://security.ubuntu.com/ubuntu dapper-security main restricted 
deb-src http://security.ubuntu.com/ubuntu dapper-security main restricted

Все остальное теперь, теоретически, должно пройти гладко, но, вероятно, это будет не так. Чтобы начать обновление, запустите команду apt-get update, а затем — команду apt-get dist-upgrade.

Подсказка

Если вы увидите сообщение о конфигурировании LILO, вы можете его игнорировать. coLinux не использует его.

Во время обновления, вы почти наверняка получите следующую ошибку:

E: This installation run will require temporarily removing the
essential package e2fsprogs due to a Conflicts/Pre-Depends loop.
This is often bad, but if you re ally want to do it, activate the
APT::Force-LoopBreak option.  
E: Internal Error, Could not early remove e2fsprogs

Если это произойдет, то добавьте параметр -o "APT::Force-Loopbreak=true" к команде apt-get dist-upgrade следующим образом:

$ sudo apt-get -o "APT::Force-Loopbreak=true" dist-upgrade

Если по-прежнему возникают ошибки, то, чтобы внести ясность, выполните следующую команду:

$ sudo apt-get -o "APT::Force-Loopbreak=true" -f install

Затем снова запустите команду apt-get dist-upgrade и она должна быть выполнена до конца.

Когда это будет сделано, вы должны запустить команду apt-get install ubuntu-keyring с тем, чтобы apt-get мог проверять сигнатуры пакетов. Теперь можете запускать команду apt-get тогда, когда это вам потребуется. Выберите несколько высокоуровневых приложений, т. к. для них нужно будет получить еще много других зависимостей. Я предлагаю выбрать, например, следующее:

$ sudo apt-get install firefox openoffice.org2 gnome-games

Постарайтесь предотвратить установку сервера X в системе Ubuntu, так как это может лишь осложнить ситуацию.

Включаем SSH

Если вы не хотите работать в консоли coLinux, вы можете входить в систему coLinux с помощью SSH. Во-первых, запустите apt-get install ssh, а затем используйте ifconfig eth0 для того, чтобы определить ваш IP адрес, используемый в частной сети, которую Windows использует для подключения к интернету, например, 192.168.0.143. Запустите PuTTY или openssh (есть в Cygwin) для подключения к этому адресу IP. Если вы используете Cygwin, вам, возможно, потребуется установить значение TERM, отличащееся от cygwin, например, равное ansi:

bjepson@thlon ~
$ ssh root@192.168.0.16
Password:
Last login: Fri Mar  3 23:00:31 2006 from thlon.mshome.net
Linux colinux 2.6.10-co-0.6.2 #5 Sat Feb 5 10:19:16 IST 2005 i686 GNU/Linux

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.
colinux:~#

Запускам приложения X11

Чтобы запустить какое-нибудь приложение X11, вам нужно из среды окружения Cygwin X1 с помощью ssh -X подключиться к вашей системе coLinux и оттуда запускать приложения. (Чтобы это заработало, вам, вероятно, понадобится включить в файле /etc/ssh/sshd_config перенаправление X11, имеющийся в Ubuntu, и с помощью команды /etc/init.d/sshd restart выполнить перезагрузку. Вам также нужно будет выполнить apt-get xauth.)

Теперь все готово для использования. Выполните команду adduser username для того, чтобы добавить пользователя mortal, после чего вы можете завершить сеанс в роли пользователя root.

Затем в системе Windows запустите оболочку Cygwin, а затем с помощью команды startxwin.sh запустите сервер Cygwin X. Когда откроется сеанс xterm, используйте команду ssh -X IP_ADDRESS чтобы войти в вашу систему coLinux. Замените IP_ADDRESS либо на назначенный вами фиксированный адрес частной сети, либо на последний адрес, полученный от DHCP (в системе Ubuntu используйте команду ifconfig для того, чтобы это выяснить). Как только вы войдете в систему, вы можете начать запускать ваши любимые программы (смотрите рис.9-18)!

Ubuntu Hacks. Гармония Windows и Linux

Рис.9-18. Абсолютная гармония Windows и Linux

Предостережение

Если вы получите сообщение об ошибке "xterm Xt error: Can't open display: xterm: DISPLAY is not set,"("Ошибка xterm Xt Не удается открыть дисплей: xterm: Значение DISPLAY не установлено"), вы должны выйти из системы, еще раз набрать ssh -X, но с параметром -v, что предоставит вам подробную информацию о вашей попытке соединения и должно пролить свет на ситуацию. Например, если вы увидели ошибку, связанную с xauth, то это означает, что вам нужно в системе coLinux Ubuntu выполнить команду apt-get xauth.


Назад Оглавление Вперед