Одновременное использование нескольких операционых систем при помощи colinux, Virtual PC и утилиты Desktops

    Преамбула:


    Последнее время, мне приходится писать немного кода, и есть необходимость тестировать результаты его работы под разными платформами. Естественно я использую виртуальные машины.
    Так как, кроме меня, моим ноутбуком пользуется еще и жена то основная ОС на нем winxp. Мне в принципе все равно с чем работать поэтому пусть будет windows…

    Раньше, когда у меня в качестве оконного менеджера использовался IceWM, мне нравилось то что я могу использовать несколько «рабочих столов», для запуска различных тематических приложений в отдельно отведенном для них месте. Под windows такая возможность тоже есть, но те утилиты которые я пробовал, имели те или иные недостатки, поэтому рано или поздно мне приходилось от них отказываться… В конце концов я остановился на Desktops (от sysinternals) она тоже не лишена недостатков, но стабильность ее работы и небольшой размер перевесили все «минусы».

    Цель:


    Чего мы пытаемся добиться:
    • запустить на каждом из «рабочих столов» по отдельной операционной системе
    • сделать переключение между ними максимально удобным и быстрым




    Нам понадобится:


    coLinux скачать можно здесь (необходим для запуска ядра linux под ОС windows)
    Virtual PC скачать можно здесь (необходим для запуска ОС windows под ОС windows :) ). Можно использовать и другие виртуальные машины (дома я использую VirtualBox, на работе Virtual PC) это не принципиально, но в статье пойдет речь о Virtual PC.
    дистрибутив linux (далее будет рассказано о Slackware 12.2, т.к. я использую именно его)
    Putty скачать можно здесь для захода на нашу виртуальную машину через ssh
    Xming скачать здесь, нужен для запуска графических linux приложений через протокол X11.

    Собственно установка


    Desktops

    Для начала установим Desktops, с ним все просто и понятно — скачиваем, распаковываем, запускаем

    image

    Мне показалось, что удобнее всего для переключения между «столами» в качестве горячей клавиши установить win-цифра.

    Virtual PC

    Сам процесс установки также прост: скачиваем, запускаем инсталлятор, далее устанавливаем нужную операционную систему внутри Virtual PC. Есть только один нюанс на который я хотел обратить внимание… Чтобы win-цифра не перехватывалась гостевой системой, необходимо настроить параметры клавиатуры как показано на скриншотах.

    Virtual PC Console… пункт меню File\Options

    image

    Далее выбираем секцию Keyboard

    image

    После установки данных настроек мы сможем без труда переключаться из гостевой системы по win-цифра на нужный «рабочий стол»

    Установка coLinux

    Переходим к более сложной теме — установке дистрибутива linux внутри coLinux.
    Для начала необходимо установить сам coLinux и.
    Во время установки coLinux нужно будет убрать флажок Root Filesystem image (Download), так как нужный образ мы скачаем позже. coLinux необходимо установить в c:\colinux Далее потребуется образ дистрибутива Linux Slackware 12.2. Его можно взять по одному из рабочих «зеркал» (http://slackware.com/getslack/), необходимо скачать dvd образ и поместить его в директорию c:\colinux\linux\ задав имя файла slack12.iso.
    Далее необходимо создать пустые файлы для подключения их в качестве дисков.
    c:\>fsutil.exe file createnew c:\colinux\linux\hda.img 7000000000
    c:\>fsutil.exe file createnew c:\colinux\linux\hdb.img 3000000000
    c:\>fsutil.exe file createnew c:\colinux\linux\swap.img 300000000

    Теперь нужно создать файл с опциями запуска coLinux в каталоге c:\colinux\ — для непосредственной установки Slackware install.conf
    kernel=vmlinux
    hda=c:\coLinux\linux\hda.img
    hde=c:\coLinux\linux\swap.img
    hdd=c:\coLinux\linux\slack12.iso
    root=/dev/ram load_ramdisk=1 prompt_ramdisk=0 ramdisk_size=10000
    initrd=initrd.img
    mem=256

    Для последующей инсталляции Slackware, во время первого запуска coLinux, потребуется файл initrd.img, он находится внутри скаченного образа дистрибутива. Чтобы его от туда извлечь можно воспользоваться архиватором 7zip либо winrar. Распаковать его необходимо в каталог c:\coLinux\linux\

    Установка Slackware

    После того как все подготовлено, необходимо запустить установку linux. Из каталога c:\coLinux\ выполняем следующую команду:
    colinux-daemon.exe -t nt install.conf

    Появится предложение выбрать раскладку клавиатуры и ввести имя пользователя, можно нажать 2 раза enter. Далее подключаем диск с дистрибутивом linux
    mount /dev/hdd /floppy

    Подключаем swap раздел
    mkswap /dev/hde
    swapon /dev/hde

    Форматируем и подключаем основной раздел для установки linux.
    mkfs.ext2 -j /dev/hda

    на вопрос Proceed anyway? (y,n) необходимо ответить y
    mount /dev/hda /mnt

    Далее необходимо установить нужные пакеты
    cd /floppy/slackware
    installpkg -root /mnt ./a/*.tgz ./ap/*.tgz ./d/*.tgz ./f/*.tgz ./l/*.tgz ./n/*.tgz

    После установки всех пакетов необходимо отредактировать файл /mnt/etc/fstab чтобы при последующей загрузке все разделы подключились правильно.
    Отредактировать файл можно так
    nano /mnt/etc/fstab

    вставив следующие строки
    /dev/hda    /                   ext3      ro,noatime 2 2
    /dev/hdb    /home               ext3      rw,noatime 2 2
    /dev/hdd    /media/dvd          iso9660   defaults   0 0
    /dev/hde    swap                swap      defaults   0 0
    proc        /proc               proc      defaults   0 0
    devpts      /dev/pts            devpts    gid=5,mode=620 0 0


    После сохранения файла необходимо выключить виртуальную машину командой:
    poweroff


    Запуск coLinux в качестве службы

    Теперь необходимо создать файл с опциями стандартного запуска coLinux в каталоге c:\colinux\
    slack.conf
    kernel=vmlinux
    hda=c:\coLinux\linux\hda.img
    hdb=c:\coLinux\linux\hdb.img
    hdd=c:\coLinux\linux\slack12.iso
    hde=c:\coLinux\linux\swap.img
    root=/dev/hda
    ro
    initrd=initrd.gz
    mem=128
    cocon=120x40
    eth0=tuntap

    Далее запускаем установленную Slackware в первый раз
    colinux-daemon.exe -t nt slack.conf

    Если все прошло удачно и ОС загрузилась необходимо поместить в конец файла /etc/profile следующую строку.
    export LANG=ru_RU.UTF-8

    чтобы в качестве локали у нас использовалась UTF-8.
    Также необходимо настроить ip адрес гостевой системы, в файле /etc/rc.d/rc.inet1.conf нужно задать IP адрес, маску и шлюз по умолчанию.

    IPADDR[0]="192.168.0.2"
    NETMASK[0]="255.255.255.0"
    GATEWAY="192.168.0.1"
    


    Перезагружаемся
    reboot

    и запускаем установленную Slackware в качестве службы windows
    cd c:\colinux
    colinux-daemon.exe --install-service colinux slack.conf
    net start colinux

    Если у вас получилось подключиться к гостевой машине через ssh — значит можно двигаться дальше…

    Установка X сервера Xming


    Установка и настройка Xming довольно таки проста, но есть ряд не очевидных моментов на которых я бы хотел остановиться…
    • Первый момент это опции запуска X-сервера
    • Второе — подключение шрифтов


    Теперь подробнее...


    Подключение шрифтов

    Если вы, также как и я, хотите видеть и иметь возможность вводить русский текст, то вам понадобится установить кириллические шрифты. Сделать это довольно просто, достаточно запустить в каталоге со шрифтами:
    mkfontdir
    mkfontscale

    вышеуказанные утилиты можно взять из комплекта cigwin, а можно просто скопировать весь каталог со шрифтами на машину с linux и выполнить эти команды там.
    Каталоги с шрифтами нужно прописать в файле C:\Program Files\Xming\font-dirs

    Создание подключения к X-серверу

    Чтобы указать какие раскладки клавиатуры будет использоваться и как переключаться между ними, необходимо задать их в качестве параметров.
    Если нужны 2 раскладки клавиатуры — русская и английская, а переключение по Alt-Shift, то опции будут такими:
    -xkblayout us,ru -xkbvariant basic,winkeys -xkboptions grp:alt_shift_toggle

    На скриншотах показано как запустить на отдельном «рабочем столе» X-сервер
    image
    image
    image
    image
    image
    Сохраняем файл настроек Xming и делаем для запуска ярлычок на рабочем столе.

    Соединяем все вместе...


    Итак у нас есть 4 «рабочих стола»
    • на первом будем запускать «родные» приложения
    • на втором у нас будет развернута во весь экран гостевая виртуальная ОС windows (мне нужна для всяческих бесчеловечных экспериментов)
    • на третьем развернутый во весь экран X-сервер с linux

    После загрузки машины переключаемся на второй «рабочий стол» (нажимаем win-2), запускаем Virtual PC во весь экран. Далее переключаемся на третий «рабочий стол» (нажимаем win-3) и запускаем ярлык подключения к lixux через Xming…
    Теперь чтобы переключиться с windows окружения на linux достаточно нажать сочетание win-3, чтобы попасть на гостевую машину с windows нажимаем win-2, чтобы вернуться к основной работе жмем win-1. При этом все работает параллельно и можно в любой момент вернуться к нужной ОС.

    Вот так это выглядит у меня:
    (первый и третий «рабочие столы»)
    Free Image Hosting at FunkyIMG.comFree Image Hosting at FunkyIMG.com

    PS:

    О том как настроить putty в качестве туннеля для X11 можно прочесть вот здесь вполне доходчиво и понятно изложено…

    UPD: вместо Desktops воспользоваться VirtuaWin
    Поделиться публикацией

    Комментарии 40

      +1
      Статья ок но нету слова «Амбула», есть только «Фабула»
        +2
        ну должна же в статье быть хоть капля неформальности… мне просто нравится это несуществующее слово :)
          0
          Эх мечта а не система, жаль только что автор не указал на каком железа и от себя пару строк как оно по производительности.

          P.S. Ждем окончательного этапа портирования KDE на Windows, вот где поиграться можно будет в волю. :)

        0
        Какой у вас суровый линукс :)
          +3
          обычный линукс… «русских физиков» ™ :)
          +1
          забыл указать на последнем скриншоте используется шрифт terminus, его можно скачать здесь
          очень приятный моноширинный шрифт для написания кода.
            +3
            пока смотрел скриншот — сломал глаза.
            +1
            Залог семейного счастья — число компов по членам семьи плюс один(для кошки). В принципе кошка может и рутаком обойтись — он тоже теплый.
              0
              да компьютеров хватает… ноутбуков маловато…
              0
              На ноуте стоит Windows 7. Ubuntu 9.10 под VMWare питается инетом от винды. Все счастливы и довольны ))).
              Хотя идея с несколькими рабочими столами понравилась. Оригинальный подход ;). Но геморроя больше. В производительности выигрыши есть?
                +1
                линукс под coLinux и линукс под VmWare — две большие разницы (с)
                разница вида невооруженным глазом.
                  +2
                  если под тем же VirtualBox или VmWare запущена гостевая система то температура процессора ниже 65С не опускается при включенном вентиляторе, под coLinux поднимается до 53 после включения вентилятора опускается до 50. Ну и по быстродействию тоже…
                    0
                    А можно тогда линух из vmware скопировать в colinux? Загорелось что-то… да и выходные надо чем-то занять.

                    Спасибо за разъяснение.
                    0
                    все намного проще если хост-система Linux + VirtualBox + compiz.
                    на страиваем переключение между столами на жесты мышкой
                    и вуаля: www.youtube.com/watch?v=S1-jWveRheU
                      +2
                      да все понятно, но статья немого не о том… почему не линукс в качестве основой системы я написал в первых строках… кроме того до XP дома стоял линь, лет 5 наверное, так что как сделать это же самое под лиуксом я в курсе…
                      0
                      Так смешнее смотрится. И понятнее смысл происходящего.
                      pic.ipicture.ru/uploads/091106/x68BTXuo2j.png
                      0
                      У меня у одного такое ощущение, что автор расставил запятые рендомом?
                        0
                        да есть малёха, извините.
                      • НЛО прилетело и опубликовало эту надпись здесь
                          0
                          Если вернут карму, могу накатать аналогичный пост про то, как получить полностью интегрированный desktop.
                            0
                            Вы напишите в песочницу, а там уже и с кармой подтянутся :)
                              0
                              Что-то я не понимаю, как набрать кармы в песочнице.
                              Разве туда можно постить авторизованным пользователям?
                            0
                            А вот мне интересно, есть ли такие VM для запуска реально установленной ОС, а не в образе?
                              0
                              Большинство VM поддерживают возможность записка реально установленой операционки, правда придется немного побить в бубен
                            0
                            А вот у меня Desktops не пашет. Ни разу еще не заработала. Как переключишься на другой стол, система виснет намертво.
                            Больше нравится VirtualWin
                              0
                              Сделал то же самое, но слегка наоборот: Linux основной системой, Винда в VmWare, на третьем десктопе в полный экран. Переключение между десктопами по Win+номер десктопа. Описание процесса установки и настройки заняло бы ~10% от объёма текущей статьи ;)
                                0
                                Да, насчёт выполняемых задач: в Винде крутится Eclipse для разработки под Blackberry (с эмулятором девайса и всеми делами). Сами понимаете, особой лёгкостью Eclipse не отличается, но работать в данной конфигурации мне вполне комфортно (а уж я до тормозов чрезвычайно привиредлив).
                                0
                                Что-то у меня Desktops не хочет работать толком. При попытке переключиться на другой десктоп часто валит ошибку «Error creating desktop: Not enough storage is available to process this command.». Иногда переключает, но при этом подвисает таскбар. Даже если переключусь на второй десктоп, то: а) 3 и 4 100% не удасться создать; б) при клике по иконке в трее превьюха второго десктопа не рисутеся(все та же надпись «Press to create desktop»).
                                Может быть кто знает, в чем может быть проблема? Автор, Вы описываете ее как наиболее стабильную, подскажите.
                                  0
                                  а как вам VirtualWin, выше ссылка, попробовал его, пока ощущения неплохие…
                                    0
                                    Да, поставил. Там много всего, нужно некоторое время, чтобы все фичи изучить. А пока таки да, ощущения неплохие.
                                  0
                                  А почему hda форматируется в ext2, а в fstab прописывается ext3?
                                    0
                                    ну вы наверное не заметили ключ -j

                                    из мана для mkfs.ext2
                                           -j     Create the filesystem with an ext3 journal.  If the -J option is
                                                  not  specified,  the  default journal parameters will be used to
                                                  create an appropriately sized journal (given  the  size  of  the
                                                  filesystem) stored within the filesystem.  Note that you must be
                                                  using a kernel which has ext3 support in order to actually  make
                                                  use of the journal.
                                    
                                      0
                                      Извините за оффтоп, но не могли бы объяснить начинающему, чем ext2 с журналом от ext3 лучше, чем ext3? :)
                                        0
                                        ну ext3 это ext2 + журнал (это если грубо)
                                    0
                                    А Ubuntu в coLinux будет работать? Быстрее чем под виртуально машиной?
                                      0
                                      >А Ubuntu в coLinux будет работать?
                                      да, однозначно.

                                      >Быстрее чем под виртуально машиной?
                                      быстрее чем под вмварью или виртуалбоксом точно.

                                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                    Самое читаемое