Библиотека сайта 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 свое имя входа в сеть.
Рис.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 не будет активен.
Рис.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)!
Рис.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
.
Назад | Оглавление | Вперед |