Фишки пятой платформы: FreeNX
Дистрибутивы, Методические материалыАвтор: Владимир Черный
В каждый школьный дистрибутив (Юниор, Мастер и Легкий), а также в комплект Ковчег входит по умолчанию FreeNX сервер и клиент. Что это и что это нам дает?
FreeNX, по-простому, — «удалённый терминал». Основной идеей протокола NX является дифференциальное сжатие данных X-сервера и уменьшение количества передаваемых данных с помощью прокси-сервера. Идея дифференциального сжатия изначально была реализована в протоколе DXPC (Дифференциальный Компрессор X-Протокола), в 1995 году. На основе этих разработок компания NoMachine создала свой коммерческий (но в основной массе открытый) продукт. FreeNX является полностью свободным продуктом.
NX протокол обеспечивает быструю реакцию программ, даже на плохих каналах (dial-up и adsl), что позволяет комфортно работать с (графическими!) приложениями удаленного компьютера.
Таким образом, мы можем запускать удаленно графические программы, т.е. работать или управлять удаленным компьютером. Очень похоже на работу терминального сервера.
Использование FreeNX
Способ I
- Устанавливаем какой-то из дистрибутивов на сетевой компьютер.
- Запускаем с другого компьютера класса (даже с Windows) nx-client (Скачать клиента для Windows можно отсюда: http://www.nomachine.com/download-client-windows.php)
Окошко запущенного клиента:
Нажимаем на кнопочку [Configure…] и настраиваем подключение к NX-серверу на удаленной машине:
Здесь надо указать имя компьютера или его IP адрес и порт.
Если у вас компьютер скажем имеет адрес 192.168.1.20, то это и надо написать, а в окошечке порт 22 (порт ssh протокола, которым NX пользуется для авторизации).
При первом обращении к компьютеру выскочит окошко:
Достаточно просто согласиться.
Примечание. Я использовал сервер «снаружи» сети, поэтому у меня порт и адреса такие как на рисунке — использовался проброс портов через внешний интерфейс сервера. Это не нужно, если работать в классе внутри сети. - Пользуемся Linux в полном объеме
Способ II
Вкратце, это вариант I, но Десктоп с Linux работает, как виртуальная машина на сервере.
Тут возможны два варианта: через KVM или через OpenVZ
Вариант I KVM
Будем рассматривать вариант создания kvm-ной виртуальной машины.
Что нам для этого нужно?
- установленный Школьный сервер, на котором уже заведен пароль root (а еще лучше лежат ваши ssh-ключики). Назовем ее ham1
- Образ десктопа с Linux на сервере (или в сетевой доступности), для определенности, пусть это будет Юниор
- Свой (рабочий) компьютер (с Linux) с доступом по сети к серверу
Схема наших действий такова: устанавливаем в qemu (на сервере) дистрибутив, как будто мы его устанавливаем на реальном железе, делаем из него бандл (bundle) для виртуальной машины, устанавливаем эту виртуальную машину на сервер, узнаем IP и пользуемся по Способу I
Часть I. Создание в qemu образа рабочего десктопа.
1. Идем на сервер по ssh, но так, чтобы графика, выдаваемая qemu пробрасывалась к нам (ключик -Y), на рабочий компьютер.
ssh -Y root@ham1
Надеюсь, вы не забыли положить через веб-интерфейс свои ssh-ключики на сервер?
2. Идем в самый большой каталог на сервере (если ставили сервер на свободное место по умолчанию, то это /var)
cd /var
3. Убеждаемся, что места там «навалом»
df .
В ответ система выдаст что-то типа:
>>>>Filesystem Size Used Avail Use% Mounted on
>>>>/dev/md2 225G 174G 40G 82% /var
4. Создаем динамический образ жесткого диска будущего Юниора:
qemu-img create -f qcow2 junior-desktop.img 16G
>>>>Formatting 'junior-desktop.img', fmt=qcow2 size=17179869184 encryption=off cluster_size=0
Диск будет занимать ровно столько места, сколько нужно, а не все 16 гигабайт.
5. Мы хотим «общаться» со своей виртуальной машинкой, поэтому нам нужен сетевой интерфейс (бридж), через который и будет происходить общение. Скрипт для его создания придется сделать самим и положить в /etc/kvm
cat >/etc/kvm/breth0
#!/bin/sh
switch=breth0
/sbin/ip link set up $1
/sbin/brctl addif ${switch} $1
^D
Пояснения к коду. После того, как вы ввели первую строчку и нажали на [Enter] консоль продолжает ожидать ввод текста. Вводим все строчки текста, нажимаем комбинацию клавиш [CTRL]+[D] (отображено как ^D) и все, файл с нужным текстом создан.
6. Сделаем этот скрипт исполнимым:
chmod +x /etc/kvm/breth0
7. А теперь самый длительный процесс — установка Юниора в qemu:
kvm -cdrom /path_to_iso/ALT_Linux_5.0_School/altlinux-5.0.0-school-junior-i586-ru-install-dvd5.iso -drive "file=/var/junior-desktop.img,if=scsi,boot=on" -m 512 -net nic,vlan=0 -net tap,vlan=0,script=/etc/kvm/breth0
Пояснения
-cdrom /path_to_iso/ALT_Linux_5.0_School/altlinux-5.0.0-school-junior-i586-ru-install-dvd5.iso -это «привод» DVD с образом установочного диска. Не забудьте заменить /path_to_iso на реальный путь к вашему образу на сервере.
-drive «file=/var/junior-desktop.img,if=scsi,boot=on» — жесткий диск нашего «компьютера» созданный на шаге 4
-m 512 — память выделяемая под Юниор (в Мб)
-net nic,vlan=0 -net tap,vlan=0,script=/etc/kvm/breth0 — тот самый сетевой интерфейс, через который мы будем управлять этим «компьютером»
Процесс установки ничем не отличается от установки на реальную машину, единственный совет — не ставьте ничего дополнительного, пусть образ будет как можно меньше. Все, что будет нужно, можно доставить в уже готовую виртуальную машину.
Часть II Создаем бандл.
1. Нам необходим файл манифеста: info
[main]
hypervisor=kvm
version=0.0.1
vendor=ALT Linux
os=Linux
arch=i686
memory=512
ip=DHCP
[image]
image_path=junior-desktop.img
image_size=16G
image_bus=scsi
2. теперь пакуем
tar -cf kvm-junior.bun info junior-desktop.img
По поводу его содержания и подробности создания бандла см http://www.altlinux.org/Создание_профиля_KVM
3. Полученный бандл отправляем в место, где мы его сможем найти через веб-интерфейс
mv kvm-junior.bun /srv/share/bundles/
4. Идем в консоль управления сервером https://ham1:8080/ в раздел виртуальные машины
И жмем «Создать новую виртуальную машину». В ответ получим запрос на поиск виртуальных машин:
И в результате поиска получим список (хотя бы одну запись) бандлов.
Выбираем наш бандл и устанавливаем виртуальную машину.
После установки нам будет доступен IP адрес нашей виртуальной машины.
Процесс подсоединения описан выше. Запускаем nxclient, настраиваем, пользуемся
Вариант II OVZ
1. Для создания ovz бандла воспользуемся готовой kvm-ной машинкой, созданной в Варианте I п.7
Что такое ovz контейнер? Это, грубо говоря файловая система с установленным Linux, вот и сделаем tarbol из нее.
Запустим машину, — можно использовать ту же команду, что и при создании (см п.7), просто теперь, вместо установки загрузимся с «жесткого» диска.
Запустим консоль внутри qemu, и станем рутом (su -). убедимся, что из этой машины виден родительский сервер ham1 (просто пропингуйте его).
Далее скопируем все дерево каталогов от корня в какой-нибудь каталог сервера (например, /var/tmp/desktop/ — сделайте его заранее). Способов тому масса, предлагаю rsync
rsync / ham1:/var/tmp/desktop/
Скорее всего, с вас потребуют пароль root на сервере. Эта проблема решается или разрешением руту ходить по ssh по паролю (временно!) или положите ключики рута из виртуальной машинки на сервер.
Итак, у нас на сервере есть копия дерева файловой системы юниора.
2. Создаем бандл.
a) Сначала избавимся от «балласта». Виртуальной машине не нужно содержимое каталогов, динамически создаваемое при запуске: /proc и /sys, а также частично не нужно все содержимое каталога устройств /dev.
Удаляем все файлы из указанных каталогов, и копируем в /dev содержимое пакета dev-minimal (можно просто его распаковать и скопировать)
Вообще говоря, нам не нужны и скопированные сокеты, но их tar выкинет сам.
Пакуем файлы в тарбол.
cd /var/tmp/desktop
tar -cf /var/tmp/files.tar .
б) Создаем файл конфигурации ovz-машины по имени config
Такого содержания:
ONBOOT="no"
AVNUMPROC="8:8"
NUMPROC="650:650"
NUMTCPSOCK="800:800"
NUMOTHERSOCK="1600:1760"
VMGUARPAGES="6144:unlimited"
KMEMSIZE="67108864:83886080"
TCPSNDBUF="327680:532480"
TCPRCVBUF="6389760:10485760"
OTHERSOCKBUF="2641920:3368960"
DGRAMRCVBUF="132096:132096"
OOMGUARPAGES="6144:unlimited"
LOCKEDPAGES="32:32"
SHMPAGES="8192:8192"
PRIVVMPAGES="500000:520000"
NUMFILE="20480:20480"
NUMFLOCK="100:110"
NUMPTY="16:16"
NUMSIGINFO="256:256"
DCACHESIZE="7864320:8650750"
PHYSPAGES="0:unlimited"
NUMIPTENT="128:128"
DISKSPACE="16777216:18454944"
DISKINODES="20000000:22000000"
QUOTATIME="0"
CPUUNITS="1000"
OFFLINE_MANAGEMENT="yes"
MEMINFO="privvmpages:1"
CPUS="1"
Не все параметры здесь одинаково полезны, более того их можно «подкрутить» уже потом, например ONBOOT=»no» означает, что контейнер не будет стартовать при перезапуске сервера — это можно изменить из веб-интерфейса управления.
Что действительно важно, так это
DISKSPACE="16777216:18454944"
DISKINODES="20000000:22000000"
Первый параметр означает сколько места вы отводите на контейнер (16 гб), а второй сколько файлов в нем может быть. Если эти параметры будут меньше того, что вы пытаетесь установить — контейнер просто не развернется на сервере.
Запаковываем этот файл в тарбол
tar -xf conf.tar config
в) Создаем файл манифеста info
[image]
image_path=files.tar
[main]
hypervisor=openvz
vendor=ALT Linux
arch=i686
[openvz]
config=conf.tar
г) Упаковываем все в бандл
tar -xf junior-desktop.bun info conf.tar files.tar
Внимание: Порядок упаковки должен соответствовать размерам файлов — маленькие вперед!
г) копируем бандл в нужное место на сервере как в Варианте I
3. Идем на сервер и устанавливаем вирт. машину.
В отличие от KVM, от нас попросят указать адрес этой машины — укажем его из внутренней подсети класса. (у меня 192.168.0.90)
Машина установлена.
Тонкая настройка параметров машины делается из веб-интерфейса. Жмем «Дополнительные настройки»
И далее «Настройки ограничений системных ресурсов»
Все.
Заряжаем nx-client и идем на машинку. Параллельно неплохо зайти на машину рутом по неграфическому ssh и отслеживать лимиты:
cat /proc/user_beancounters
если каких-то ресурсов не хватило мы это увидим в колонке failcnt:
uid | resource | held | maxheld | barrier | limit | failcnt | |
---|---|---|---|---|---|---|---|
101: | kmemsize | 8632240 | 8704619 | 67108864 | 83886080 | 0 | |
tcprcvbuf | 0 | 646008 | 638976 | 1048576 | 5 | ||
othersockbuf | 264096 | 264096 | 264192 | 336896 | 535 | ||
dgramrcvbuf | 0 | 8720 | 132096 | 132096 | 0 | ||
numothersock | 183 | 184 | 1600 | 1760 | 78 |
Ноябрь 10, 2009, 6:25 пп
«…запускать удаленно графические программы, т.е. работать или управлять удаленным компьютером. Очень похоже на работу терминального сервера…»
Это похоже на ssh -X ? Если да, то в чём разница и чем это лучше ssh -X?
Ноябрь 10, 2009, 6:41 пп
derugu, вы ведь ничего не прочитали! В коротком комментарии аж две ошибки!
Во первых не ssh -X, а ssh -Y (и уже давно!)
А, во вторых, перечитайте описание FreeNX — там четко написано, что NX сжимает трафик от Х-ов.
Кроме того, NX умеет пробрасывать звук и печать.
Ноябрь 10, 2009, 7:29 пп
…Во первых не ssh -X, а ssh -Y (и уже давно!)…
Да? А у меня работает опция -Х… и трафик сжимал с помощью ещё какой-то опции, помню. На вики нашёл:»ssh…можно использовать…для удаленного запуска клиентов X Window System.» и ещё «… Чтобы уменьшить риск, возникающий при X11 forwarding, ssh -X теперь по умолчанию «намекает» X-серверу, что клиенты, приходящие поверх SSH, небезопасны. Если вы уверены в удаленном хосте, то можете явно запросить высокую степень доверия к X-клиентам с помощью опции ssh -Y вместо -X…»
Вот я и пишу, что удалённо запускал окна через ssh -X.
И Вы пишете: «…мы можем запускать удаленно графические программы…», перечитал ещё раз всё и…не понял разницы, тем более, что на альтвики указано, что ЭТО запускается поверх ssh. Кроме абалденного сжатия «…Обеспечивает реакцию запускаемых программ, сравнимую со временем их выполнения на локальной системе….», не понял разницы — и там удалённые окна, и в FreeNX окна.
Извините, если туплю, но хотелось бы понять, может ОНО мне нужно, т.к. давно хочу работать с удалёнными окошками, но дома только 3G, а это дорого через ssh -X и скорости у нас унылые…
Ноябрь 10, 2009, 7:42 пп
«…В коротком комментарии аж две ошибки!…»
Я бы это назвал точкой зрения или индивидуальной приязнью к некоторым опциям…
Ноябрь 10, 2009, 8:26 пп
Вот что за манера не дочитав, писать комменты….
Ну почитайте внимательно man ssh на предмет опций -X и -Y, Если вам так безразлична безопасность — вперед и с песней (ССЗБ, как говорится)…
Что касается ваших опасений слабого канала — они не обоснованы — пробуйте! NX протокол отлично работает на совсем дохлых и загруженных соединениях, именно благодаря умению сжимать трафик и посылать не весь, а только изменения.
Ноябрь 10, 2009, 8:37 пп
Попробую… Доложу об испытаниях. А локальный диск к удалённой системе смогу примонтировать через FreeNX?
Ноябрь 11, 2009, 12:28 пп
А локальный диск к удалённой системе смогу примонтировать через FreeNX?
В настройке клиента есть вкладочка сервисы, и там можно отметить печать и расшаривание файлов по SMB, а также печать через cups.
Если речь идет о nfs и есть сетевой доступ от удаленной машине к локальной (где шара), то монтируйте без NX.
Пробуйте
Ноябрь 17, 2009, 5:37 пп
По поводу freeNX.
Опробовали в реальной ситуации в начале года.
Удалённо работали с рабочими столами в 91-й школе г Перми,
школой в Соликамске и на компьютере Александра Поносова (с не очень шустрым каналом).
Правда механизм запуска был еще хитрее — так как в большинстве случаев у клиентов провайдер блокирует входящие соединения, то использовали проброс соединения через наш открытый порт…
Август 12, 2010, 1:27 пп
Пробую ставить контейнер. На пункте создания из iso выдаёт многочисленные ошибки
# kvm /etc/kvm/alt41.iso -drive \file=/var/alt-desktop41.img,if=scsi,boot=on\ -m 512 -net nic,vlan=0 -net tap,vlan=0,script=/etc/kvm/breth0
open /dev/kvm: No such file or directory
Could not initialize KVM, will disable KVM support
bridge breth0 does not exist!
/etc/kvm/breth0: could not launch network script
Could not initialize device ‘tap’
Ставил в Alt 5.0.1 Школьный Сервер. В Веб-интерфейсе Система->Системные службы->kvm остановлена почему-то и не желает запускаться. Что делать, куда копать?
Август 12, 2010, 2:32 пп
derugu, kvm не служба и запускается только тогда, когда нужно. Попробуйте просто запустить kvm без параметров — должно выскочить окно загрузки «компьютера» с руганью на отсутствие загрузочного устройства…
Что касается устройства…
[root@ham1 ~]# ll /dev/kvm
crw-rw—- 1 root vmusers 10, 232 Jul 16 12:23 /dev/kvm
Теперь посмотрим на вашу строчку:
видимо пропущен параметр
-cdrom
перед/etc/kvm/alt41.iso
Август 12, 2010, 2:53 пп
kvm -cdrom /etc/kvm/alt41.iso -drive «file=/var/alt-desktop41.img,if=scsi,boot=on» -m 512 -net nic,vlan=0 -net tap,vlan=0,script=/etc/kvm/breth0
open /dev/kvm: No such file or directory
Could not initialize KVM, will disable KVM support
bridge breth0 does not exist!
/etc/kvm/breth0: could not launch network script
Could not initialize device ‘tap’
Всё равно ругается, может, дело в том, что у меня проц. E4500, который не поддерживает аппаратную виртуализацию?
Август 12, 2010, 3:30 пп
Отсутствие аппаратной виртуализации скажется на скорости…
Проверьте, что у вас загружен модуль ядра kernel-modules-kvm-бла-бла…. Не просто наличие установленного модуля ядра, но и успешной его загрузки! (lsmod |grep kvm — что говорит?)
Август 13, 2010, 9:56 дп
>lsmod |grep kvm – что говорит?
Ничего не говорит
Август 13, 2010, 10:19 дп
Угу, я так и думал — у вас модуль, если и есть, то не загрузился.
Должно быть что-то вроде:
# lsmod |grep kvm
kvm_amd 48952 0
kvm 198224 1 kvm_amd
Посмотрите еще вывод dmesg — в рабочем случае так:
[root@ham1 ~]# dmesg |grep kvm
[49436.194130] kvm: emulating preempt notifiers; do not benchmark on this machine
[49436.194142] loaded kvm module (v2.6.27)
[327862.273175] kvm: 23749: cpu0 kvm_set_msr_common: MSR_IA32_MC0_STATUS 0x0, nop
[327863.446370] kvm: emulating exchange as write
[420009.140596] kvm: 12342: cpu0 kvm_set_msr_common: MSR_IA32_MC0_STATUS 0x0, nop
[564588.274105] kvm: 8813: cpu0 kvm_set_msr_common: MSR_IA32_MC0_STATUS 0x0, nop
[677719.681761] kvm: 31870: cpu0 kvm_set_msr_common: MSR_IA32_MC0_STATUS 0x0, nop
[1171434.312455] kvm: 32512: cpu0 kvm_set_msr_common: MSR_IA32_MC0_STATUS 0x0, nop
[1272742.839920] kvm: 21012: cpu0 kvm_set_msr_common: MSR_IA32_MC0_STATUS 0x0, nop
[2291955.099523] kvm: 19897: cpu0 kvm_set_msr_common: MSR_IA32_MC0_STATUS 0x0, nop
Думаю, в вашем случае «loaded kvm module» не будет.
Можете также попробовать modprobe kvm и увидите ругань
Короче, ваша машина не приспособлена для этих целей.
Август 13, 2010, 10:27 дп
>Короче, ваша машина не приспособлена для этих целей.
Буду пробовать на другой машине запускать kvm
Август 13, 2010, 10:30 дп
Успехов!
Август 16, 2010, 10:59 дп
На другой машинке есть прогресс:
[root@comp-Athlon-64-be4178 ~]# lsmod |grep kvm
kvm_amd 37536 0
kvm 169856 1 kvm_amd
[root@comp-Athlon-64-be4178 ~]# dmesg |grep kvm
[ 34.097395] kvm: emulating preempt notifiers; do not benchmark on this machine
[ 34.097404] loaded kvm module (v2.6.27)
Но при запуске скрипта выдаёт ошибку
[root@comp-Athlon-64-be4178 ~]# kvm -cdrom /var/al41.iso -drive «file=/var/alt41.img,if=scsi,boot=on» -m 512 -net nic,vlan=0 -net tap,vlan=0,script=/etc/kvm/breth0
bridge breth0 does not exist!
/etc/kvm/breth0: could not launch network script
Could not initialize device ‘tap’
Август 16, 2010, 11:42 дп
А что на вашей машине говорит ip a? И что там установлено? «bridge breth0 does not exist!» — очень странно. На сервере они должны автоматом создаваться.
Август 16, 2010, 11:45 дп
[root@comp-Athlon-64-be4178 kvm]# ip a
1: lo: mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
2: eth0: mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
link/ether 00:1f:c6:be:41:78 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.1/24 brd 192.168.0.255 scope global eth0
3: venet0: mtu 1500 qdisc noqueue state UNKNOWN
link/void
И сообщение bridge breth0 does not exist! пропало. Теперь так:
[root@comp-Athlon-64-be4178 kvm]# kvm -cdrom /var/alt41.iso -drive «file=/var/alt41.img,if=scsi,boot=on» -m 512 -net nic,vlan=0 -net tap, vlan=0,script=/etc/kvm/breth0
/etc/qemu-ifup: could not launch network script
Could not initialize device ‘tap’
Август 16, 2010, 11:54 дп
Да. установлена ШС 5.0.1, с одной сетевушкой.
Август 16, 2010, 12:50 пп
Попробуйте создать бридж самостоятельно. Примерное описание процесса тут: http://www.unixdoc.ru/index.php?mode=2&podmode=1&arcicle_id=35
Август 17, 2010, 9:13 пп
Всё заработало благодаря помощи Black! Спасибо! Инструкция установки ВМ абсолютно пошаговая, но могут случится недоразумения с командами по причине битого образа, как в моём случае. Внешне благополучно скачал iso ШС5.0.1, установил, и тут пошли косяки. Не организовался мост для виртуальных машин breth0 и дальше всё пошло вкось.
Поэтому советы:
1. Проверьте md5sum скачанных образов
# md5sum -c /путь/файл.iso
Будет напечатана сумма, которую сравните с суммой MD5SUM, она лежит в файле рядом с образом ОС(если нет файла суммы,, значит, вы не с http://ftp.altlinux.ru качаете)
(в моём случае оказались битыми оба образа — и сервер и виртуальная м. — бывает же такое везение! Второй раз перезакачал и проверил.)
2. Проверьте, поддерживается ли аппаратная виртуализация на вашем компе.
цитата
… Пользователи Linux могут проверить наличие аппаратной поддержки виртуализации с помощью команды
egrep -q ‘^flags.*(vmx|svm)’ /proc/cpuinfo && echo yes
Если команда в ответ сказала yes, то это значит, что виртуализация KVM поддерживается. Помните также, что поддержка виртуализации может быть выключена в BIOS….
http://docs.altlinux.org/archive/p5/school-server/#__33
3. Установка вирт. машины происходит в каталог рядом с файлом myimage.img, поэтому проверьте, есть ли место в этом каталоге. У меня при инсталляции ШС5.0.1 разбил диск 80 ГБ на 2+4+32+32 и каталог c img оказался на 4ГБ.
cd /var
df .
и если команда покажет больше 16 гигов свободного места — продолжайте. А я вручную разбивал диск на 2ГБ своп и 70 на корневой каталог.
4. Проверьте, существуют ли созданные автоматом при установке главной OC мосты
brctl show
или
ip a
если увидите интерфейс breth0 — хорошо, если нет, то не все потеряно, можно вручную создать мост.
Удачи! У меня получилось и у вас получится!
Август 18, 2010, 11:45 дп
Приятно помогать такому «упертому перцу»
Не зря же пословица гласит: «Уменье и труд все перетрут».
Ноябрь 7, 2011, 8:37 пп
все-таки странно себя ведет система:
localhost kvm]# kvm -cdrom /home/mikhail/xp/win-xp-sp2.iso -drive «file=/var/metrodisk.img,if-scsi,boot=on» -m 512 -net nic,vlan=0 -net tap,vlan=0,script=/etc/kvm/brext
Incorrect number of arguments for command
Usage: brctl addif add interface to bridge
/etc/kvm/brext: could not launch network script
Could not initialize device ‘tap’
наличие бриджа — гарантировано (ручками поднимал) все остальное тоже сделано вроде корректно.. БЛИН, НЕ РАБОТАЕТ. Где я ошибся?
Ноябрь 8, 2011, 10:31 дп
1. «Incorrect number of arguments for command» неправильное количество аргументов в команде… или где-то пробели или…
Да, вот: if=scsi а не «-»
2. «/etc/kvm/brext: could not launch network script» скрипт отсутствует или содержит ошибку
3. «Could not initialize device ‘tap’» Скорее всего не хватает прав на устройство.
Михаил, с этим вопросом на forum.altlinux.org пожалуйста! или в списки рассылки…