1) скачивается образ отсюда
cd $HOME/Downloads/iso; wget
https://downloads.openwrt.org/chaos_calmer/15.05.1/x86/kvm_guest/openwrt-15.05.1-x86-kvm_guest-combined-ext4.img.gz; gunzip openwrt-15.05.1-x86-kvm_guest-combined-ext4.img.gz
2) запускается витруальный сетевой интерфейс
sudo virsh net-start default
который можно погасить командой
sudo virsh net-destroy default
посмотреть запущенный вирт.сетевые интерфейсы можно командой
sudo virsh net-list
сами настройки виртуального дефолтного сетевого интерфейса находится в файле
/etc/libvirt/qemu/networks/default.xml
и представляют собой запись
default
можно создать свой вирт. сетевой интерфейс, со своими настройками, напр:
sudo nano /etc/libvirt/qemu/networks/def1.xml
def1
затем
sudo virsh net-create /etc/libvirt/qemu/networks/def1.xml
3) В
Virtual Machine Manager выбирается "Импорт существующего диска" и ставится чекбокс "изменить настройки перед установкой".
В Видео выбирается модель VGA, добавляется несколько виртуальных сетевых интерфейсов и выбирается модель virtio, также желательно добавить дополнительный виртуальный жёсткий диск, 300 - 500 Мб более чем достаточно
4) после загрузки необходимо сконфигурировать выход в сеть, для этого необходимо внести правку в файл /etc/config/network
поскольку в запущенном ранее дефолтном витр. сетевом интерфейсе ip address="192.168.122.1" то и настройки будут соответствующие
vi /etc/config/network
config interface 'eth1'
option ifname 'eth1'
option proto 'static'
option ipaddr '192.168.122.5'
option netmask '255.255.255.0'
option gateway '192.168.122.1'
option dns '8.8.8.8 8.8.4.4'
чтобы применить изменения необходимо выполнить команду
/etc/init.d/network restart
чтоб не забыть, команды vi
gg перейти в начало файла
G перейти в конец файла
i режим вставки
ESC перейти в режим просмотра
dd вырезать (удалить) строку
4dd - удалить 4 строки
3x - удалить 3 символа
cc удалить и начать редактирование
yy копировать строку
p вставить из буфера обмена
:set paste вставить длинную строку
v выделить (стрелка вправо или лево)
ctrl+v вылелить вертикальный блок
V выделить строку (стрелка вверх или вниз - несколько строк)
ggVG выделить весь файл
Vu Перевести строку в нижний регистр
VU Перевести строку в верхний регистр
g~~ Инвертировать регистр
ggguG Перевести весь текст в нижний регистр
:%!sort отсортировать весь файл
u, :u[ndo] отмена предыдущего действия (undo)
CTR-R, :red[o] отмена отмены предыдущего действия (redo)
/ начало шаблона прямого поиска (например /ufs)
n следующее совпадение
N предыдущее совпадение
:
перейти на строку #n
:set number включить нумерацию строк
:set nonumber отключить нумерацию строк
:tabs вывести список табов
:tabs вывести список табов
:tabn следующий таб
:tabp предыдущий таб
gt перейти на таб #n
e ++enc=<имя кодировки> Редактирование файла в ??? кодировке
w ++enc=<имя кодировки> Сохранить файл в новой кодировке
:set fileencodings Список кодировок
:syntax on включить подсветку синтаксиса
:syntax off выключить подсветку (по умолчанию)
:set list Отображать табуляцию и переводы строк
:e . Открыть встроенный файл-менеджер
:!pwd Выполнить команду pwd и вернуться
!!pwd Выполнить команду pwd и вставить результат в редактор
:sh Открыть шелл
$exit Вернуться в редактор из шелла
:q! выйти из редактора, не сохраняя изменения
:wq сохранить изменения и выйти из редактора
5) после всего этого в OpenWRT можно получить доступ через телнет
telnet 192.168.122.5 или открыв в браузере адрес http://192.168.122.5
в случае успеха обновить пакеты
opkg update
или поставить mc
opkg install mc
Для правильной работы MC, перед запуском нужно выполнить:
export TERMINFO="/usr/share/terminfo"
export TERM="xterm"
mc
Но что бы каждый раз не писать эти строчки перед запуском, то лучше прописать их в файле profile:
vi /etc/profile
export TERMINFO=/usr/share/terminfo
export TERM=xterm
opkg list покажет всё что можно установить ещё
после всех этих действий необходимо сменить пароль командой passwd
если, после неоднократных экспериментов, возникнет ошибка
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! то
ssh-keygen -f "$HOME/.ssh/known_hosts" -R 192.168.122.5
Прочие действия:
если возникнет необходимость увеличить файл образа, то
truncate --size=+50M Download/iso/openwrt-15.05.1-x86-kvm_guest-combined-ext4.img
затем нужно добавить раздел, в увеличенную область (при увеличении существующей будут ошибки)
sudo parted Download/iso/openwrt-15.05.1-x86-kvm_guest-combined-ext4.img
но удобней сделать так:
sudo losetup -f Download/iso/openwrt-15.05.1-x86-kvm_guest-combined-ext4.img
sudo losetup -a Download/iso/openwrt-15.05.1-x86-kvm_guest-combined-ext4.img
sudo gparted /dev/loop0
sudo losetup -d /dev/loop0
после манипуляций, завустить и зайти по ssh
ssh root@192.168.122.5
и установить нужное
opkg update ; opkg install block-mount kmod-fs-ext4 kmod-usb-storage-extras kmod-usb-core parted
затем сгенерировать fstab
block detect > /etc/config/fstab; \
sed -i s/option$'\t'enabled$'\t'\'0\'/option$'\t'enabled$'\t'\'1\'/ /etc/config/fstab; \
sed -i s#/mnt/sda1#/overlay# /etc/config/fstab; \
cat /etc/config/fstab;
отредактировать fstab
vi /etc/config/fstab
config 'global'
option anon_swap '0'
option anon_mount '0'
option auto_swap '1'
option auto_mount '1'
option delay_root '5'
option check_fs '0'
config 'mount'
option target '/overlay'
option uuid '57f8f4bc-abf4-655f-bf67-946fc0f9f25b'
option enabled '1'
config 'mount'
option target '/mnt/sda2'
option uuid '57f8f4bc-abf4-655f-bf67-946fc0f9f25b'
option enabled '1'
config 'mount'
option target '/mnt/sda3'
option uuid 'db3d5a79-917c-4675-bfd7-baff792e19f5'
option enabled '1'
(это тоже пригодится)
mkswap -f -L swap /dev/sda2
mkfs.ext4 -L over /dev/sda1
-L присвоение label
"swap" - метка для /dev/sda2
"over" - метка назначается разделу /dev/sda1
reboot
после перезагрузки
mkdir -p /mnt/sda3/python3.4 /mnt/sda3/python2.7; ln -s /mnt/sda3/python3.4 /usr/lib/python3.4; ln -s /mnt/sda3/python2.7 /usr/lib/python2.7
установка pip
wget --no-check-certificate https://bootstrap.pypa.io/get-pip.py
ошибка
wget: can't execute 'openssl': No such file or directory
opkg install ca-certificates openssl-util libustream-openssl
python3 get-pip.py
ошибка
distutils.errors.DistutilsPlatformError: invalid Python installation: unable to open /usr/lib/python3.4/config-3.4/Makefile (No such file or directory)
этот способ работает:
cd /tmp; wget http://download.rsdev.16mb.com/OpenWrt/Scripts/installPIP.sh; chmod +x ./installPIP.sh; ./installPIP.sh
если возникает ошибка
OSError: [Errno 28] No space left on device
то
cd /tmp/; rm -r *
установка всех вышеперечисленных пакетов одной командой:
opkg update; opkg install block-mount kmod-fs-ext4 kmod-usb-storage-extras kmod-usb-core kmod-nls-utf8 mc ca-certificates openssl-util blkid
PS
помучившись с кучей косяков (utf8, шрифты в консоли и тд), понял, что лучше так:
https://lede-project.org/
cd $HOME/Downloads/iso; wget https://downloads.lede-project.org/releases/17.01.4/targets/x86/generic/lede-17.01.4-x86-generic-combined-ext4.img.gz; gunzip lede-17.01.4-x86-generic-combined-ext4.img.gz
запускаем и настраиваем, затем ставим python и pip
opkg update; opkg install libopenssl libustream-openssl mc python3
wget https://bootstrap.pypa.io/get-pip.py
настройка vlan
Как устанавливать пакеты приложений?
OpenWRT(с OpenVPN) на TL-WR740N. Как добавить vlan.
Команды операционной системы OpenWRT
PPS
в случае с древними версиями openwrt, например attitude_adjustment в которой есть пакет openswan, нужный ради старых настроек ipsec, необходимо кроме настроек интернета, также разрешить порты iptables, по умолчанию в котором всё блокировано, настроим интернет
vi /etc/config/network
config interface wan
option ifname eth1
option proto static
option ipaddr 192.168.122.30
option netmask 255.255.255.0
option gateway 192.168.122.1
option dns 8.8.8.8
/etc/init.d/network restart
затем фрайвол
vi /etc/firewall.user
WAN='eth1'
iptables -A input_rule -i $WAN -p tcp --dport 80 -j ACCEPT
iptables -A input_rule -i $WAN -p tcp --dport 22 -j ACCEPT
/etc/init.d/firewall restart
в QEMU (и virt-manager соответственно) при использовании старых релизов openwrt, в настройках виртуальных сетевых интерфейсов вместо модели virtio выбирается pcnet или ne2k_pci, драйверов virtio в них нет
https://wiki.openwrt.org/doc/howto/wget-ssl-certs
https://forum.arduino.cc/index.php?topic=347224.15
https://wiki.openwrt.org/ru/doc/uci/fstab
https://www.stableit.ru/2012/06/kvm-ext4.html
https://wiki.openwrt.org/ru/doc/howto/extroot
http://cyber-place.ru/showthread.php?t=371&page=3
Настройка сети в OpenWRT
Открытие доступа на openwrt из интернета
Управление виртуальными машинами с помощью virsh
Создаем изолированную сеть для виртуальных машин KVM
Работа с KVM в Debian или Ubuntu из командной строки
uzverss работа с сетевыми интерфейсами