The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Запуск win2k3 на freebsd под virtualbox без x11
Задача: запустить виртуальную машину с win2k3 на хосте с freebsd без установленого Х-сервера.

Имеем: 
   FreeBSD 7.2-RELEASE-p3, 
   virtualbox-3.0.51.r22226 (WITHOUT_QT4=true WITHOUT_DEBUG=true WITH_GUESTADDITIONS=true 
     WITHOUT_DBUS=true WITHOUT_PULSEAUDIO=true WITH_NLS=true)

Сразу хочу заметить, что поскольку протокол VRDP в virtualbox под freebsd пока не реализован, 
то для первоначальной инсталяции виртуальной машины нам все же понадобится другой хост 
с установленным окружением X11. Установка win2k3 в виртуальное окружение -
задача весьма тривиальная,
поэтому её описание я опущу...

Итак, мы имеем установленную виртуальную систему, которую нам необходимо пренести на 
другой хост и попытаться там запустить. Для этого экспортируем виртуальную машину на хосте, 
где мы ее устанавливали:

   VBoxManage export WIN2003STD -o ~/WIN2003STD.ovf

где WIN2003STD - имя виртуальной машины, 
~/WIN2003STD.ovf - файл, в котором будут храниться экспортируемые параметры виртуальной машины. 

В итоге имеем 3 файла, которые нам необходимо перенести на удаленный хост:

   WIN2003STD.mf - файл, содержащий контрольные суммы двух последующих файлов
   WIN2003STD.ovf - файл параметров экспортируемой машины
   WIN2003STD.vmdk - упакованный файл-образ жесткого диска виртуальной машины.

Повторюсь, что поскольку реализации протокола VRDP в virtualbox для freebsd нет, 
то изначально перед экспортом виртуальной машины нам необходимо будет дать удаленный доступ 
внутрь гостевого окружения с помощью RDP или VNC. В моем случае я сделал доступ через 
удаленный рабочий стол win2k3.

На удаленном хосте я создал для запуска виртуального окружения отдельного пользователя 
vbox с группой vboxusers, которому запретил вход через ssh. Файлы WIN2003STD.mf, WIN2003STD.ovf 
и WIN2003STD.vmdk я положил в его домашнюю директорию и сделал их владельцем пользователя vbox. 

Далее от пользователя vbox делаем импорт виртуальной машины:

   VBoxManage import ~/WIN2003STD.ovf

Далее нам необходимо пробросить внутрь виртуальной машины tcp-порт 3389 для
доступа к удаленному рабочему столу win2k3:

   VBoxManage setextradata WIN2003STD "VBoxInternal/Devices/pcnet/0/LUN#0/Config/RDP/HostPort" 3389
   VBoxManage setextradata WIN2003STD "VBoxInternal/Devices/pcnet/0/LUN#0/Config/RDP/GuestPort" 3389
   VBoxManage setextradata WIN2003STD "VBoxInternal/Devices/pcnet/0/LUN#0/Config/RDP/Protocol" tcp

Если в виртуальной машине при конфигурирации был выбран сетевой адаптер Intel,
то следует заменить в выше указанных строках pcnet на e1000.

Все, виртуальную машину можно запускать:

   VBoxManage startvm WIN2003STD --type headless

"--type headless" позволяет запутить виртуальную машину в фоновом режиме.

О том, что проброс tcp-порта выполнен свидетельствуют строки в логе вмртуальной машины и sockstat:

   $ grep -i nat ~/.VirtualBox/Machines/WIN2003STD/Logs/VBox.log

   00:00:00.535 Driver = "NAT" (cch=4)
   00:00:00.538 AIS - Alternate Instruction Set = 0 (1)
   00:00:00.942 NAT: ICMP/ping not available (could open ICMP socket, error VERR_ACCESS_DENIED)
   00:00:00.942 NAT: value of BindIP has been ignored
   00:00:35.141 NAT: set redirect TCP hp:3389 gp:3389
   00:01:05.062 NAT: old socket rcv size: 64KB
   00:01:05.062 NAT: old socket snd size: 64KB

  $ sockstat -4 -l | grep 3389

   vbox VBoxHeadle 982 32 tcp4 :3389 :*

Следует заметить, что icmp во внешний мир из виртуальной машины работать не
будет, это требует прав суперпользователя,
о чем нам сказано в логе - "00:00:00.942 NAT: ICMP/ping not available (could
open ICMP socket, error VERR_ACCESS_DENIED)",
поэтому проверять работоспособность сети внутри виртуального хоста с помощью
ping не стоит. Все, задачу можно считать выполненной.

P.S. После выключения удаленной виртуальной машины через сеанс RDP, система выпадает в BSOD и 
дальше возможен вход только в безопасном режиме, что в нашем случае уже не возможно. Беглый поиск 
в google дает нам такое решение - необходимо предварительно в ветке реестра 
   HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\intelppm\Start 
выставить значение 4.

P.P.S. Для автоматического старта виртуальной машины при старте системы я в
/usr/local/etc/rc.d/ создал скрипт вида:

   #!/bin/sh

   echo "Starting VirtualBox..."
   su vbox -c '/usr/local/bin/VBoxManage startvm WIN2003STD --type headless'
 
26.08.2009 , Автор: shurik , Источник: http://shurik.kiev.ua/blog/index.ph...
Ключи: virtualbox, windows, freebsd
Раздел:    Корень / Безопасность / Виртуализация - Xen, OpenVZ, KVM, Qemu

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, Alive (??), 18:23, 26/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А как оно по скорости получается? Если сравнивать с тем же ESX server-ом
     
  • 1.2, banan (??), 23:21, 26/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    эээ.. и зачем все это? в чем выхлоп?
     
  • 1.3, netc (ok), 09:40, 27/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    да действительно, статья хорошая ИМХО, пригодиться

    только вот вопрос в зачем Вы используете эту схему?

     
  • 1.4, shurik (??), 10:54, 27/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ну какбы есть у меня личный сервант на колокейшене на freebsd, хостит несколько доменов моих знакомых. А тут один из личных клиентов спросил можно ли на этом сервере организовать работу в 1с (2-3 человека), дабы не покупать железку в офис. Вот так и появилась идея опробовать это ибо  в qemu оно тормозит довольно ощутимо, а в виртуалбоксе работает практически без заметных тормозов. Конечно правильно было бы заюзать xen или kvm, но перебивать ради этого настроенную железку на линукс я не хочу, тем более фря мне как-то роднее :)
     
     
  • 2.5, netc (ok), 11:18, 27/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Ну какбы есть у меня личный сервант на колокейшене на freebsd, хостит
    >несколько доменов моих знакомых. А тут один из личных клиентов спросил
    >можно ли на этом сервере организовать работу в 1с (2-3 человека),
    >дабы не покупать железку в офис. Вот так и появилась идея
    >опробовать это ибо  в qemu оно тормозит довольно ощутимо, а
    >в виртуалбоксе работает практически без заметных тормозов. Конечно правильно было бы
    >заюзать xen или kvm, но перебивать ради этого настроенную железку на
    >линукс я не хочу, тем более фря мне как-то роднее :)
    >

    обидно только, то, что sun против нативной поддержки freebsd ;(

     
     
  • 3.8, Andrew Kolchoogin (?), 13:54, 27/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    > обидно только, то, что sun против нативной поддержки freebsd ;(

    Sun _против_? Каким образом Sun может быть против?

     
     
  • 4.10, netc (ok), 15:45, 27/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >> обидно только, то, что sun против нативной поддержки freebsd ;(
    >
    >Sun _против_? Каким образом Sun может быть против?

    ну это же символически было сказано!

     

  • 1.7, shadow_alone (ok), 12:44, 27/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\intelppm\Start
    вот за это спасибо.
     
  • 1.11, паро (?), 15:50, 27/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А можно под виндовым virtualbox создать образ, а потом во freebsd подпихнуть. будет работать?
     
     
  • 2.13, Стас (??), 16:36, 27/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Я так и сделал - всё ок =) Экспорт-импорт и готово
     
     
  • 3.20, anonymouse (?), 18:59, 27/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    экспорт импорт не нужен.достаточно образ диска и файл настроек поправленный.
     

  • 1.12, Стас (??), 16:35, 27/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А у меня так и не получилось отмапить порты для rdp. Сам virtualbox запускается, но вот порт 3389 не появляется при sockstat. Куда копать?
     
     
  • 2.14, shurik (??), 16:45, 27/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    А вы привидите пожалуйста результат выполнения VBoxManage showvminfo <your_vm_name>|grep -i nic и содержимое ~/.VirtualBox/Machines/<your_vm_name>/Logs/VBox.log
     
     
  • 3.15, Стас (??), 16:52, 27/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >А вы привидите пожалуйста результат выполнения VBoxManage showvminfo <your_vm_name>|grep -i nic и содержимое ~/.VirtualBox/Machines/<your_vm_name>/Logs/VBox.log

    NIC 1:           MAC: 080027F2E351, Attachment: NAT, Cable connected: on, Trace: off (file: none), Type: Am79C973, Reported speed: 0 Mbps
    остальные дизаблед

    VBox.log

    целиком кидать не буду
    присутствуют строки
    00:00:00.077 [/Devices/pcnet/0/LUN#0/] (level 4)
    00:00:00.077   Driver <string>  = "NAT" (cch=4)
    00:00:00.077
    00:00:00.077 [/Devices/pcnet/0/LUN#0/Config/RDP/] (level 6)
    00:00:00.077   GuestPort <integer> = 0x0000000000000d3d (3389)
    00:00:00.077   HostPort  <integer> = 0x0000000000000d3e (3389)
    00:00:00.077   Protocol  <string>  = "tcp" (cch=4)

     
     
  • 4.16, shurik (??), 17:09, 27/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Меня смущает вот это:
    >00:00:00.077   HostPort  <integer> = 0x0000000000000d3e (3389)

    d3e - это 3390, у меня в этой части выглядит так:
    00:00:00.535 [/Devices/pcnet/0/LUN#0/Config/RDP/] (level 6)
    00:00:00.535   GuestPort <integer> = 0x0000000000000d3d (3389)
    00:00:00.535   HostPort  <integer> = 0x0000000000000d3d (3389)
    00:00:00.535   Protocol  <string>  = "tcp" (cch=4)


     
     
  • 5.31, Стас (??), 14:33, 28/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Меня смущает вот это:
    >>00:00:00.077   HostPort  <integer> = 0x0000000000000d3e (3389)
    >
    >d3e - это 3390, у меня в этой части выглядит так:
    >00:00:00.535 [/Devices/pcnet/0/LUN#0/Config/RDP/] (level 6)
    >00:00:00.535   GuestPort <integer> = 0x0000000000000d3d (3389)
    >00:00:00.535   HostPort  <integer> = 0x0000000000000d3d (3389)
    >00:00:00.535   Protocol  <string>  = "tcp" (cch=4)

    Это я нечаянно исправил.

    Решение нашлось. Очень простое. Удаляем папку .VirtualBox (У меня /root/.VirtualBox)

    Импортим заново, прописываем три строки для запуска и запускаем виртуальную машину.
    Сокет появляется

     

  • 1.17, rootaxe (ok), 18:18, 27/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    спасибо. пригодилось
     
  • 1.18, SiD (??), 18:46, 27/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Пробую 2008 винду и вылетает с такой вот ошибкой:

    ERROR: Virtual machine '2008' has terminated unexpectedly during startup
    Details: code NS_ERROR_FAILURE (0x80004005), component Machine, interface IMachine, callee <NULL>

    сначало не был подгружен драйвер vboxdrv.ko, подгрузил kldstat:
    Id Refs Address    Size     Name
    1   12 0xc0400000 648544   kernel
    2    1 0xc0a49000 6a5d4    acpi.ko
    3    1 0xcc419000 3000     ng_tee.ko
    4    1 0xcd0ed000 4000     ng_pptpgre.ko
    5    1 0xcd1dd000 5000     ng_ksocket.ko
    6    1 0xccf81000 3000     ng_tcpmss.ko
    7    1 0xcd811000 26000    vboxdrv.ko

    смысл не поменялся - ошибка такая же ...
    может кто знает как лечить ? Google - не помог ...

     
  • 1.19, SiD (??), 18:50, 27/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Точнее вот полный вывод:

    su vbox -c 'VBoxManage startvm 2008 --type headless'
    VirtualBox Command Line Management Interface Version 3.0.51_OSE
    (C) 2005-2009 Sun Microsystems, Inc.
    All rights reserved.

    Waiting for the remote session to open...
    ERROR: Virtual machine '2008' has terminated unexpectedly during startup
    Details: code NS_ERROR_FAILURE (0x80004005), component Machine, interface IMachine, callee <NULL>

     
     
  • 2.21, shurik (??), 19:01, 27/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    А в обычном режиме (без headless) стартует нормально?
     

  • 1.22, SiD (??), 20:16, 27/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    нет, если без headless,то вот:

    VirtualBox Command Line Management Interface Version 3.0.51_OSE
    (C) 2005-2009 Sun Microsystems, Inc.
    All rights reserved.

    ERROR: Invalid session type: 'gui'
    Details: code NS_ERROR_INVALID_ARG (0x80070057), component Machine, interface IMachine, callee nsISupports
    Context: "OpenRemoteSession(a->session, uuid, sessionType, env, progress.asOutParam())" at line 532 of file VBoxManage.cpp

    я вот грешу на то, что я не настраивал в свойствах машины (когда ее создавал) "Удаленный дисплей"...
    у меня строка RemoteDisplay в файле ~/.VirtualBox/Machines/2008/2008.xml вот такого вида:
    <RemoteDisplay enabled="true" port="0" authType="Null" authTimeout="5000"/>

    если подставить в port 3389 - не помогает, но в виндовом VirtualBox опция authType может принимать 3 значения, а вот какие они, точнее какие значения они принимают в файле ? Может быть кинете мне эту строку сюда - попробую ... Просто машина, на которой все это делается - на работе и снова лить по Инету несколько Гб не очень прельщает ... Заранее благодарен!

     
  • 1.23, filya (?), 22:15, 27/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    authType="Null"
    authType="External"
    authType="Guest"
     
     
  • 2.24, SiD (??), 22:43, 27/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо, но не спасло ... =( таже самая ошибка ...
     
     
  • 3.25, filya (?), 04:46, 28/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Да, у меня такая же фигня. Win2003Ent.
     

  • 1.26, filya (?), 04:59, 28/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Кстати вот это выполнил?

    % mount -t procfs proc /proc
    % kldload vboxdrv

    у меня после этого вроде поперло

    Waiting for the remote session to open...
    Remote session has been successfully opened.

     
     
  • 2.29, SiD (??), 11:04, 28/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Да, вот про это то и забыли ... =)
     

  • 1.27, filya (ok), 07:30, 28/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вот такая лажа получается

    00:00:00.071 VirtualBox 3.0.51_OSE r22185 freebsd.x86 (Aug 27 2009 22:18:55) release log
    00:00:00.071 Log opened 2009-08-28T03:23:00.245725000Z
    00:00:00.071 OS Product: FreeBSD
    00:00:00.071 OS Release: 7.2-RELEASE-p3
    00:00:00.071 OS Version: FreeBSD 7.2-RELEASE-p3 #0:
    00:00:00.071 Host RAM: 1010MB RAM, available: 22MB
    00:00:00.071 Executable: /usr/local/lib/virtualbox/VBoxHeadless
    00:00:00.071 Process ID: 30491
    00:00:00.071 Package type: BSD_32BITS_GENERIC (OSE)
    00:00:00.082 pdmR3LoadR0U: pszName="VMMR0.r0" rc=VERR_NO_MEMORY
    00:00:00.082 ERROR [COM]: aRC=NS_ERROR_FAILURE (0x80004005) aIID={0a51994b-cbc6-4686-94eb-d4e4023280e2} aComponent={Console}

    aText={Failed to load VMMR0.r0 (VERR_NO_MEMORY).
    00:00:00.082 Unknown error creating VM (VERR_NO_MEMORY)} aWarning=false, preserve=false
    00:00:00.086 Power up failed (vrc=VERR_NO_MEMORY, rc=NS_ERROR_FAILURE (0X80004005))

     
     
  • 2.28, shurik (??), 10:24, 28/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    > 00:00:00.071 Host RAM: 1010MB RAM, available: 22MB

    Не маловато ли свободной памяти?

     

  • 1.30, filya (ok), 13:15, 28/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Блин, глянул, действительно из free memory все сьелось.
     
  • 1.32, SiD (??), 14:49, 28/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    у меня вот такое в логах:

    00:00:00.070 ******************** End of CPUID dump **********************
    00:00:00.072 REM: VBoxREM32
    00:00:00.088 TM: GIP - u32Mode=1 (SyncTSC) u32UpdateHz=100
    00:00:00.121 TM: cTSCTicksPerSecond=0x8abbe204 (2 327 568 900) fTSCVirtualized=true  fTSCUseRealTSC=false
    00:00:00.121 TM: fMaybeUseOffsettedHostTSC=true  TSCTiedToExecution=false TSCNotTiedToHalt=false
    00:00:00.121 CoreCode: R3=48cef000 R0=e7c45000 RC=a03b7000 Phys=000000001d7cc000 cb=0x2000
    00:00:00.127 AIO: Async I/O manager not supported (rc=VERR_NOT_SUPPORTED). Falling back to failsafe manager
    00:00:00.130 ERROR [COM]: aRC=NS_ERROR_FAILURE (0x80004005) aIID={0a51994b-cbc6-4686-94eb-d4e4023280e2} aComponent={Console} aText={Unknown error creating VM (VERR_CFGM_NOT_ENOUGH_SPACE)} aWarning=false, preserve=false
    00:00:00.131 Power up failed (vrc=VERR_CFGM_NOT_ENOUGH_SPACE, rc=NS_ERROR_FAILURE (0X80004005))

    хотя под виртуалку - 519 метров выделяется по конфигу, свободных 1390 ...

    есть идеи ?

     
     
  • 2.33, shurik (??), 16:02, 28/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    > 00:00:00.131 Power up failed (vrc=VERR_CFGM_NOT_ENOUGH_SPACE, rc=NS_ERROR_FAILURE (0X80004005))

    Вот что на этот счет в исходниках:
    /** The specified string / bytes buffer was to small. Specify a larger one and retry. */
    #define VERR_CFGM_NOT_ENOUGH_SPACE          (-2109)

    Покажите свой конфиг ВМ, может что увидим

     
     
  • 3.34, SiD (??), 17:30, 28/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    вот конфиг home vbox VirtualBox Machines 2008 cat 2008 xml ... текст свёрнут, показать
     

  • 1.35, Zenitur (?), 10:35, 29/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А скриншоты можно?
     
     
  • 2.36, SiD (??), 12:19, 29/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Скриншоты чего? Это все в логах и конфигах ...
     

  • 1.39, Daimeeo (??), 19:29, 02/09/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Странно у меня при импорте вылазит вот такая чепуха:

    ERROR: Could not create the clone hard disk '/home/vbox/.VirtualBox/HardDisks/2003R2.vmdk' (VERR_GENERAL_FAILURE)
    Details: code NS_ERROR_FAILURE (0x80004005), component Appliance, interface IAppliance, callee <NULL>
    Context: "ImportAppliance" at line 659 of file VBoxManageImport.cpp

     
     
  • 2.41, SiD (??), 21:16, 07/09/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Обновите статью, моя проблема решилась, решение описано в блоге оригинала.
     
     
  • 3.42, aless78 (?), 17:36, 17/09/2009 [^] [^^] [^^^] [ответить]  
  • +/
    а ссылочку на блог можно увидеть.
     
     
  • 4.43, antonov_ilyalist.ru (?), 22:29, 17/09/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >а ссылочку на блог можно увидеть.

    прямо как в анекдоте ... =)

    вот здесь все написано:
    http://shurik.kiev.ua/blog/index.php?/archives/10-Zapusk_win2k3_na_freebsd_po

    посмотрите под статьей - все ясно написано URL: ...

     
  • 4.44, SiD (??), 22:31, 17/09/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >а ссылочку на блог можно увидеть.

    прямо как в анекдоте ... =)

    вот здесь все написано:
    http://shurik.kiev.ua/blog/index.php?/archives/10-Zapusk_win2k3_na_freebsd_po

    посмотрите под статьей - все ясно написано URL: ...

     

  • 1.45, QuAzI (??), 18:03, 19/01/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Однако работает, самое смешное что в виртуалке вантуз корябается быстрее, чем на реальном железе. Но есть один прикол.
    При перезапуске он в какой-то момент виснет. Если "выключить" и потом снова запустить VM, то всё нормально, а если перезагружать гостевую ОС, то остаётся её только прибить по
    VBoxManage controlvm w2k3 poweroff
    и снова запустить.
     


     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Спонсоры:
    Слёрм
    Inferno Solutions
    Hosting by Ihor
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2019 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру