Запуск virtualbox в скрытом режиме

Как запустить виртуальную машину virtualbox из командной строки

Введение

Цель данной статьи –  познакомить Вас с бесплатной утилитой VBoxHeadlessTray, позволяющей упростить и ускорить работу пользователя с платформой виртуализации Oracle VM VirtualBox.

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

Утилита распространяется компанией «TOPTENSOFTWARE» с бесплатной лицензией Noncommercial-Share License. Помимо бесплатного распространения, пользователи вправе модифицировать исходный код утилиты, как описано на сайте производителя «to Remix — to adapt the work».

Исходные ресурсы приложения доступны для скачивания на сайте GitHub.com. Более подробно с продуктами компании «TOPTENSOFTWARE» можно на странице PRODUCTS.

Ознакомиться с платформой Oracle VM VirtualBox Вы можете в статьях, представленных на нашем сайте:

  • Установка и настройка платформы виртуализации Oracle VM VirtualBox ;
  • Настройка сети на платформе виртуализации Oracle VM VirtualBox;

а также на отдельном сайте разработчика (компании Sun Microsystems), посвященном данной платформе Welcome to VirtualBox.org!.

pyenv-virtualenv

Если вы хотите использовать virtualenv для управления виртуальными окружениями, а также управлять несколькими версиями Python, вам может подойти pyenv-virtualenv.

Не используйте pyenv (или любой другой инструмент управления версиями Python), если вы не уверены, что он вам действительно нужен.

pyenv не предназначен для управления виртуальными окружениями. Он управляет версиями Python. Другими словами, чтобы понять, сможет ли pyenv решить какие-либо из ваших проблем, сперва оцените свои потребности и возможности самого pyenv.

Установка pyenv-virtualenv

pyenv-virtualenv – это плагин для pyenv, поэтому его необходимо установить.

Для этого следуйте или используйте автоматический установщик. Автоматический установщик – это просто .

pyenv не работает в Windows. Существует форк pyenv для Windows. Однако, похоже, он несовместим с плагинами pyenv, такими как pyenv-virtualenv.

Взаимодействие с виртуальным окружением с помощью pyenv-virtualenv

Чтобы создать новое виртуальное окружение с помощью pyenv-virtualenv, выполните следующую команду:

pyenv virtualenv 3.8.5 venv38

Это создаст виртуальное окружение в текущем каталоге. Версия Python в окружении будет 3.8.5, а окружение будет иметь псевдоним .

Если вы не уверены, какие версии Python доступны для использования pyenv:

pyenv versions

и/или:

pyenv install --list

После того, как вы успешно создали виртуальное окружение, оно должно появиться в списке:

pyenv virtualenvs

Виртуальные окружения имеют по две записи: длинные и более короткие псевдонимы.

Чтобы активировать виртуальное окружение вручную, можно использовать короткий псевдоним:

pyenv activate venv38

Отключение виртуального окружения:

pyenv deactivate

Обратите внимание, что pyenv-virtualenv предлагает дополнительную функцию, которая автоматически активирует виртуальные окружения, когда вы переходите в каталог с файлом , который содержит имя допустимого виртуального окружения. Это может быть достоинством, а может и раздражать — в зависимости от ваших личных шаблонов работы

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

Находясь в активированном виртуальном окружении, вы можете устанавливать пакеты с помощью , как указано в инструкциях выше.

Вы можете найти справку с помощью и .

Список существующих ВМ

Список виртуальных машин можно получить, с помощью команды
list с опцией vms

list vms|runningvms|ostypes|hostdvds|hostfloppies|
intnets|bridgedifs|hostonlyifs|natnets|dhcpservers|
hostinfo|hostcpuids|hddbackends|hdds|dvds|floppies|
usbhost|usbfilters|systemproperties|extpacks|
groups|webcams|screenshotformats|cloudproviders|
cloudprofiles|cloudnets

VBoxManage list vms

Если вы только начали работу с VirtualBox этот список пуст

Если какие-то виртуальные машины установлены, он будет выглядеть примерно так

«ubuntu» {9ec5b764-4dce-488b-813a-ede712e2eb38}
«ubuntu2» {c59d88dc-d203-4c3c-a3da-4fd6b8b22559}
«CeOS7-DNS-149» {0ba8f8cf-359c-4362-b523-8452511a8ade}
«CeOS7-min-nat2-192-168-15-4» {65b04638-5681-4a3f-8680-2c040e53878b}
«CeOS7-net-acc-tgt__ROUTER__181» {cca3202c-2e82-40d9-9332-7b7cf83a45a2}
«CeOS7_XRDP_Postgres_master-109» {e8be14a7-7d00-4a11-8417-7dbb15072f2e}
«w10pr-115» {47af8e29-ec5f-46f4-8b31-1e55561bee02}
«NatNetwork1-Host» {4d186d5c-ab59-48a9-8f87-ff3ad3e7dd25}
«server1-186» {8296a18c-432d-46a1-88c4-d5131b5c99e7}

Start the Virtualbox VM with UUID.

Remember, I mentioned managing the VM’s with name and UUID ?.

We have already taken a look at how you can manage the VM’s using the VM’s name. Let’s do the same thing with the UUID.

To get the UUID, you can type the list VM’s command again, and after the name, you should be able to see the UUID.

I have an Opnsense firewall VM with the UUID start with e1c and ends with 9c8.

"OPNSENSE-FW" {e1c7c4b8-ea50-41f9-a32b-1e932f5de9c8}

Let’s start the VM using the UUID, and you should see the VM has started. Since we have not used the headless mode, the VM should open up in a VirtualBox GUI if you have GUI access.

C:\Program Files\Oracle\VirtualBox>vboxmanage startvm "e1c7c4b8-ea50-41f9-a32b-1e932f5de9c8"
Waiting for VM "e1c7c4b8-ea50-41f9-a32b-1e932f5de9c8" to power on...
VM "e1c7c4b8-ea50-41f9-a32b-1e932f5de9c8" has been successfully started.

I entered the command list running VMS, and I can see the Opnsense firewall VM has been started and running now.

C:\Program Files\Oracle\VirtualBox>vboxmanage list runningvms
"pfSense-fw" {b6627666-ec04-4f47-be31-3556a6b4a10b}
"Ubuntu-Web Server1" {105025b5-714c-42a8-81b9-b75b9f0adf63}
"OPNSENSE-FW" {e1c7c4b8-ea50-41f9-a32b-1e932f5de9c8}
C:\Program Files\Oracle\VirtualBox>

Используйте встроенный venv

Примечание: команда является «надмножеством» собственной команды , описанной в этом разделе. Фактически, если вам нужна скорость и дополнительные функции virtualenv, просто замените везде на .

К счастью, модуль venv и обычно поставляются вместе с Python. Чтобы создать виртуальную среду в каталоге , попробуйте следующее:

python -m venv .venv

Давайте разберём это подробнее. Мы используем исполняемый файл Python для версии Python, которую хотим использовать в виртуальном окружении. Это может быть python, как указано выше, или python3, python3.8, python3.9 и даже pypy3.

Затем мы указываем python выполнить модуль . Следом пишем имя каталога, в котором хотим разместить виртуальное окружение. Как видно выше, я обычно использую имя или, для большей наглядности, .

После некоторой паузы будет создан новый каталог с именем , который вы можете увидеть, выполнив команду или . (На Mac и Linux из-за точки в начале имени файл будет скрыт. Чтобы увидеть его в списке файлов, используйте команду ). Вы можете указать любое имя каталога вместо .

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

Активация виртуального окружения

Теперь вы можете активировать виртуальное окружение с помощью следующей команды:

source ./.venv/bin/activate

или в Windows:

.\venv\Scripts\Activate.ps1

Если вы не используете Bash или Powershell, вы можете заглянуть в каталог или , чтобы увидеть другие параметры для CMD, fish или csh.

После активации предложение командной строки должно измениться: в нем появится имя каталога виртуального окружения. Что-то вроде:

(.venv)  $

Это (или другое выбранное вами имя каталога) является признаком того, что вы активировали свое виртуальное окружение. Она не останется активной после перезагрузки компьютера или запуска другой оболочки или открытия новой вкладки терминала. Привыкайте запускать скрипт активации.

Редакторы/IDE иногда могут управлять виртуальным окружением и даже автоматически активировать его. Есть инструкции VSCode, плагины для Atom, для Vim, для Sublime и, конечно же, PyCharm.

После активации вы сможете попробовать сделать так:

(.venv) $ python
>>> import sys
>>> sys.executable
'/home/my_username/sample_python/.venv/bin/python'

Как видите, исполняемый файл находится в каталоге вашего виртуального окружения. Если виртуальное окружение не активно, должен читать что-то вроде или .

Выполнение скриптов Python в виртуальном окружении

Вы можете выполнять скрипты Python двумя способами:

  1. Активировав виртуальное окружение, можно выполнить
  2. Запустить скрипт можно и без активации виртуального окружения, но тогда нужно писать, например,

Деактивация виртуального окружения

Чтобы выйти из виртуального окружения, отключите его. Это можно сделать так:

(.venv) $ deactivate

Для повторной активации повторите приведенные выше инструкции.

Установка пакетов

Повторно активируйте виртуальную среду и установите что-нибудь с помощью :

(.venv) $ pip install arrow

Сначала пакеты и зависимости нужно установить. После этого вы сможете импортировать и использовать эти пакеты.

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

Уничтожение виртуального окружения

«Мое виртуальное окружение не подлежит ремонту», – скажете вы? Такое случается. Это безопасность использования виртуальных окружений. Что делать?

Сжечь дотла.

rm -r .venv

Всё ушло. Надеюсь, вы помните список пакетов (вы же сначала выполнили или , чтобы получить список, верно?).

Затем воссоздайте виртуальное окружение, как описано выше.

Работа с фоновыми заданиями

В Windows PowerShell есть возможность запускать задачи в фоновом режиме, для того чтобы, не дожидаясь окончания работы команды (для случаев, когда задача выполняется долго), продолжать работать в текущей сессии. Для работы с фоновыми заданиями в PowerShell есть следующие командлеты:

  • Start-Job – запустить фоновую задачу;
  • Stop-Job – остановить фоновую задачу
  • Get-Job – посмотреть список фоновых задач;
  • Receive-Job – посмотреть результат выполнения фоновой задачи;
  • Remove-Job – удалить фоновую задачу;
  • Wait-Job – перевести фоновую задачу на передний план, для того чтобы дожидаться ее окончания.

Настройка VirtualBox

Создание новой гостевой ОС

Для создания Вашей первой виртуальной ОС щелкните кнопку «Создать». Запустить мастер создания новой виртуальной машины. Следуя его инструкциям нужно будет выбрать семейство будущей виртуальной операционной системы и ее версию, а также, ввести ее имя.

Создание новой виртуальной машины в VirtualBox

Далее, загрузчик попросит нас указать объем оперативной памяти доступной виртуальной ОС:

Выделение ОЗУ виртуальной операционной системе

512 Мб для большинства ОС уже достаточно, но я выделил 1 Гб.
Далее нужно будет создать новый жесткий диск, это довольно простая процедура, нужно просто следовать инструкциям мастера создания новых жестких дисков. В итоге у Вас должно получится что-то подобное:

Завершающий этап создания гостевой ОС в VirtualBox

Настройка оборудования гостевой ОС в VirtualBox

Определить аппаратную часть созданной гостевой системы можно в ее «Свойствах». Для этого, выбрав нужную гостевую ОС, вызываем команду Свойства командной панели. После этого появляется окно свойств. Слева в этом окне будут указаны разделы настроек, а в центре окна их установки. Все настройки интуитивно понятны и имеют подсказки.

Параметры гостевой ОС

Далее я не буду расписывать и так понятные истины, а затрону лишь самые специфические настройки и параметры (с остальными Вы и сами разберетесь с помощью подсказок).

Вкладка Общие — Дополнительно

  • Папка для снимков — путь к папке, где будут хранится образы дисков гостевой ОС. Для снимка требуется большой объем дискового пространства, поэтому здесь лучше указать на диск, где достаточно для этого места
  • Общий буфер обмена — настройка использования буфера обмена между host-системой и гостевой ОС
  • Мини тулбар — консоль для управления виртуальной машиной

Вкладка Система — Материнская плата

  • Порядок загрузки — определяет порядок загрузки гостевой ОС. Советую после установки изменять этот порядок и поставить жесткий диск на первое место (если конечно загрузка с других носителей не так важна для Вас)
  • Выключить IO APIC — расширенный контроллер прерываний используемый в процессорах от Intel. Полностью поддерживается ОС Windows.
  • Включить EFI — EFI определяет «загрузочные сервисы», которые включают поддержку текстовой и графической консоли на различных устройствах, шин, блоков и файловых сервисов, и runtime-сервисы, например дата, время и энергонезависимая память. Используется рядом ОС для загрузки.

Вкладка Система — Процессор

Процессор(ы) — настроить количество процессоров используемых виртуальной машиной

«Обратите внимание, что это опция будет доступна только при условии поддержки аппаратной виртуализации AMD-V или VT-x вкладка Система — Ускорение, а также включенной опции OI APIC на вкладке Система — Материнская плата.

Включить PAE/NX — режим работы встроенного блока управления памятью x86-совместимых процессоров, в котором используются 64-битные элементы таблиц страниц (из которых для адресации используются только 36 бит), c помощью которых процессор может адресовать 64 ГБ физической памяти (вместо 4 ГБ, адресуемых при использовании 32-разрядных таблиц).. Вкладка Система — Ускорение

Вкладка Система — Ускорение

  • Включить VTx/AMD-V — использование аппаратной виртуализации основного процессора (Ваш процессор должен поддерживать эти режимы или их нужно включить в BIOS)
  • Включить Nested Paging — Nested Paging обеспечивает транслирование физических адресов памяти гостевой ОС в физические адреса памяти основной ОС

Вкладка Носители

В данной вкладке можно настроить использование внешних носителей и CD/DVD-дисков. Замечу, что Вы можете использовать виртуальные диски при установке гостевой ОС. Это очень удобно. Добавить их можно через Менеджер виртуальных носителей в котором можно хранить большое количество разных образов и переключаться между ними во время сеанса работы в гостевой системе. Вызвать этот менеджер можно следующим образом:

Менеджер виртуальных дисков в VirtualBox

Вкладка Сеть

Настройки сети будут рассмотрены в отдельной статье; В Windows XP существуют драйверы только для Pcnet-Fast III (Am79C973), поэтому его и нужно выбрать.

Вкладка COM-порты

На этой вкладке можно насторить использование COM-портов. Сейчас они редко используются, поэтому вряд ли кому-то нужно будет их настраивать

Вкладка USB

Здесь нужно добавить в список те USB-контроллеры, которые будут использоваться виртуальными системами. Будьте осторожны, при запуске виртуальной системы, указанные USB-устройства перестают работать в основной (по крайней мере у меня так было)

Вкладка Общие папки

Общие папки предназначены для обмена файлами между основной и гостевой ОС

Запуск ВМ и установка операционной системы

Теперь вы знаете, как настроить VirtualBox и созданную ВМ. Далее посмотрим, как установить на нее операционную систему. Процедура установки ОС на Виртуалбокс практически ничем не отличается от ее установки на физический компьютер, разве что вместо загрузочной флешки или DVD-диска здесь используется установочный образ ISO. Запустите созданную виртуальную машину и укажите в открывшемся окошке путь к загрузочному ISO-образу с системой.

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

Гостевая операционная система установлена, но некоторые функции, в частности, общие папки и буфер обмена, работать не будут, пока вы не установите специальный плагин – дополнения гостевой ОС. Кроме того, без этих дополнений вы не сможете настраивать разрешение экрана, подключать к виртуальной машине флешки и т.д. Скачивать, к счастью, ничего не нужно, дополнения гостевой ОС поставляются вместе с VirtualBox. Всё, что вам необходимо сделать, это выбрать в меню виртуальной операционной системы опцию Устройства – Подключить образ диска дополнений гостевой ОС.

Перейдите в раздел «Этот компьютер» в виртуальной ОС, откройте дисковод VirtualBox Guest Additions и, если система не предложит этого сделать сама, запустите исполняемый файл VBoxWindowsAdditions.exe.

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

Гостевая система готова к использованию, осталось только проверить работу сети. Останавливаться подробно на том, как настроить интернет в VirtualBox мы не будем. Если вы выбрали NAT, ВМ подключится к интернету автоматически. С другими типами подключений, скорее всего, придется немного повозиться. Помните главное, если IP-адрес для вашего основного компьютера выдается роутером автоматически, те же самые настройки должны быть выставлены в параметрах сетевого адаптера виртуальной системы. Если настройки назначаются вручную, то и в параметрах сетевого адаптера гостевой системы они также должны быть назначены вручную.

Приложения для виртуальных машин Linux

Когда виртуализация включена, пора взглянуть на выбор приложений Linux VM.

1. VirtualBox

Предлагая универсальную виртуализацию, VirtualBox может создать виртуальную машину практически с любой операционной системой (кроме устройств ARM). Он также предоставляет программное и аппаратное обеспечение виртуального помощника и хранит виртуальные машины в виде образов дисков. Это упрощает их резервное копирование или перенос на компьютеры или другие приложения виртуальных машин.

VirtualBox особенно хорош для работы с 32-битными и 64-битными дистрибутивами Linux, а также Windows. Также можно запустить macOS на VirtualBox -Возможно, чтобы протестировать его перед настройкой вашего компьютера как Hackintosh.

Скачать: VirtualBox (Бесплатно)

2. Запустите виртуальную машину Linux с QEMU.

Если вы хотите использовать операционную систему ARM в качестве компьютера Linux по умолчанию, QEMU — лучший вариант. Подходит для виртуальных машин с ОС Android, Raspbian или не-Linux RISC, этот параметр на основе командной строки быстро настраивается.

Сокращенно от «Quick Emulator», работать с QEMU немного сложно, поскольку он полагается на командную строку, а не на интерфейс, управляемый мышью. Чтобы сэкономить время, некоторые гостевые операционные системы можно загрузить со встроенным QEMU. Взгляните на Запуск Raspbian Pi OS в QEMU для введения в реализацию виртуальной машины Linux.

Хотя безакронимированное название QEMU — «Быстрый эмулятор», на самом деле это гипервизор, приложение для управления виртуальными машинами. Вы можете установить QEMU, используя:

sudo apt install qemu qemu-kvm libvirt-bin

Как уже отмечалось, для запуска QEMU используется интерфейс командной строки Терминала. Это может быть проблемой для новых пользователей Linux, но, к счастью, есть решения. Некоторые из этих конкурентов QEMU добавляют графический интерфейс пользователя (GUI), чтобы вы могли запускать виртуальную машину Linux без необходимости вводить команды:

  • QtEmu
  • АКЭМУ
  • JavaQuemu

Эти проекты находятся на разных стадиях разработки — для достижения наилучших результатов попробуйте QtEmu.

3. Проигрыватель рабочих станций VMware

VMware — ведущее в отрасли приложение для виртуализации настольных компьютеров и серверов, которым пользуются тысячи корпоративных клиентов. К счастью, есть бесплатная версия для более узконаправленных вариантов использования.

Скачать: Проигрыватель рабочей станции VMware

Благодаря поддержке всех основных операционных систем Linux и более 200 гостевых операционных систем, VMware Workstation Player представляет собой интеллектуальное решение для виртуальных машин Linux

Обратите внимание, что в отличие от QEMU, VMware Workstation Player не может запускать операционные системы ARM

Команды управления виртуальными машинами

Команда Description
Краткая справка.
Просмотр всех виртуальных машин.
Вывести файл конфигурации XML для заданной виртуальной машины.
Создать виртуальную машину из файла конфигурации XML и ее запуск.
Запустить неактивную виртуальную машину.
Принудительно остановить работу виртуальной машины.
Определяет файл конфигурации XML для заданной виртуальной машины.
Просмотр идентификатора виртуальной машины.
Просмотр UUID виртуальной машины.
Просмотр сведений о виртуальной машине.
Просмотр имени виртуальной машины.
Просмотр состояния виртуальной машины.
Закрыть интерактивный терминал.
Перезагрузить виртуальную машину.
Восстановить сохраненную в файле виртуальную машину.
Возобновить работу приостановленной виртуальной машины.
Сохранить состояние виртуальной машины в файл.
Корректно завершить работу виртуальной машины.
Приостановить работу виртуальной машины.
Удалить все файлы виртуальной машины.
Перенести виртуальную машину на другой узел.

Какое приложение для Linux по умолчанию вам следует использовать?

Итак, мы рассмотрели три приложения для виртуальных машин. Но что использовать?

Это тяжело. Если вам нужна простая и понятная виртуализация с открытым исходным кодом, выберите VirtualBox. Если открытый исходный код не вызывает беспокойства, VMware может предложить большую стабильность, особенно на новых компьютерах.

А пока, если вы хотите запустить операционную систему ARM на своей виртуальной машине Linux, выберите QEMU. Используйте графический интерфейс, если вам не нравится тратить много времени на Терминал. узнай меня Лучшие легкие дистрибутивы Linux для новой жизни вашему старому ПК.

Источник

Немного терминологии

Прежде чем приступить к работе, было бы полезно определить, что и есть и как они взаимодействуют. означает Виртуальная машина ядра, и это модуль ядра Linux, который позволяет программе получать доступ и использовать возможности виртуализации современных процессоров, открывая интерфейс / dev / kvm. вместо этого представляет собой программное обеспечение, которое фактически выполняет эмуляцию ОС. Это эмулятор машины и виртуализатор с открытым исходным кодом, которые могут использовать функцию ускорения, предоставляемую при запуске эмулируемой машины с той же архитектурой, что и хост.

Создайте новую виртуальную машину

Теперь, когда мы установили и запустили сервис, мы можем использовать команда для настройки нашей виртуальной машины. Синтаксис программы действительно прост. Следующие команда linux должен выполняться как root, или, если вы хотите запустить его как обычный пользователь, как член группа. Синтаксис программы следующий:

# virt-install --name = linuxconfig-vm \ --vcpus = 1 \ --memory = 1024 \ --cdrom = / tmp / debian-9.0.0-amd64-netinst.iso \ - размер диска = 5 \ --os-option = debian8.

Давайте проанализируем приведенную выше команду:

Прежде всего мы использовали опция: это обязательно и используется для присвоения имени новой виртуальной машине.

Следующий вариант — это один. Мы используем его, чтобы указать количество настроить для гостя.

В опция используется для выбора объема памяти, зарезервированной для гостевой машины в и позволяет нам указать путь к файлу или устройству, которое будет использоваться в качестве виртуального CD-ROM: это может быть образ ISO, устройство CDROM или URL-адрес, с которого можно получить доступ к загрузочному ISO-образу.

В Флаг используется для настройки хранилища мультимедиа для гостя. Можно указать различные параметры, разделенные запятыми, например: который используется для указания размера виртуального диска в ГБ и который используется для указания пути к диску (он будет создан, если он еще не существует). Если этот параметр указан, вы должны убедиться, что целевой путь доступен и имеет правильный контекст SELinux (чтобы узнать больше о SELinux, вы можете прочитать это статья).

Если опция не указана, диск будет создан в если команда выполняется от имени обычного пользователя (член группы kvm) или в / var / lib / libvirt / images при запуске от имени пользователя root.

Затем мы прошли вариант. Хотя это не обязательно, настоятельно рекомендуется использовать его, так как это может улучшить производительность виртуальной машины. Опция попытается точно настроить гостя на конкретную версию ОС. Если параметр не указан, программа попытается автоматически определить правильное значение с установочного носителя. Чтобы получить список всех поддерживаемых систем, вы можете запустить:

$ osinfo-query os

Если все пойдет хорошо и пакет установлен, появится окно с установщиком гостевой ОС.

Понравилась статья? Поделиться с друзьями:
Wi-Fi Роутер
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: