lxc: running virtualbox inside a container
lxc: запуск virtualbox внутри контейнера
Хочется пользовать virtualbox (нужна кросплатформенность).
Не хочется работать с командной строкой.
Не хочется нарушать лицензионное соглашение, для работы через web.
Не хочется тянуть на хост desktop.
Virtualbox 6.0 стоит на хосте
user@lxd:~$ ls -la /dev | grep vbox
crw-rw---- 1 root vboxusers 10, 55 ноя 25 10:00 vboxdrv
crw-rw-rw- 1 root root 10, 54 ноя 25 10:00 vboxdrvu
crw-rw---- 1 root vboxusers 10, 53 ноя 25 10:00 vboxnetctl
drwxr-x--- 3 root vboxusers 60 ноя 25 10:00 vboxusb
$ lxc launch ubuntu:18.04 vbx
$ lxc exec test /bin/bash
## passwd
# adduser user
# usermod -aG sudo user
# apt update
# apt upgrade
## apt install qemu-user-static -y
# apt install mc samba sudo ssh wget -y
# dpkg-reconfigure locales
## Выбираем ru_RU.UTF-8 ru_RU.UTF-8 UTF-8
# locale -a
## timedatectl set-timezone Europe/Moscow
# dpkg-reconfigure tzdata
## apt install keyboard-configuration
# dpkg-reconfigure keyboard-configuration
# nano /etc/ssh/sshd_config
PasswordAuthentication yes
Сохранить.
# systemctl reload sshd
#apt install tasksel
# tasksel --list-tasks
# tasksel install xubuntu-core
# apt install xrdp
# systemctl enable xrdp
## apt install x2goserver x2goserver-xsession
# reboot
На хосте:
user@lxd:~$ ls -la /dev | grep vbox
crw-rw---- 1 root vboxusers 10, 55 ноя 25 10:00 vboxdrv
crw-rw-rw- 1 root root 10, 54 ноя 25 10:00 vboxdrvu
crw-rw---- 1 root vboxusers 10, 53 ноя 25 10:00 vboxnetctl
drwxr-x--- 3 root vboxusers 60 ноя 25 10:00 vboxusb
$ lxc start vbox
$ lxc config device add vbox vboxdrv unix-char path=/dev/vboxdrv mode=0777
$ lxc config device add vbox vboxdrvu unix-char path=/dev/vboxdrvu mode=0777
$ lxc config device add vbox vboxnetctl unix-char path=/dev/vboxnetctl mode=0777
#$ lxc config set vbox linux.kernel_modules overlay
$ lxc config set vbox security.privileged true
##$ printf 'lxc.cgroup.devices.allow = c 10:53 rwm' | lxc config set vbox raw.lxc -
$ lxc config edit vbox
raw.lxc:
lxc.cgroup.devices.allow = c 10:53 rwm
lxc.cgroup.devices.allow = c 10:54 rwm
lxc.cgroup.devices.allow = c 10:55 rwm
$ lxc restart vbox
В контейнере:
Установка virtualbox в контейнере:
$ sudo sh -c 'echo "deb [arch=amd64] http://download.virtualbox.org/virtualbox/debian $(lsb_release -sc) contrib" >> /etc/apt/sources.list.d/virtualbox.list'
$ wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
$ sudo apt update
$ sudo apt install virtualbox-6.0
#$ sudo apt autoremove --purge virtualbox-6.0
$ sudo usermod -a -G vboxusers $USER
Не надо:
##$ sudo mknod -m 600 /dev/vboxdrv c 10 55
##$ sudo mknod -m 600 /dev/vboxdrvu c 10 54
##$ sudo mknod -m 600 /dev/vboxnetctl c 10 53
##$ sudo /sbin/vboxconfig
$ sudo reboot
Отдельная тема проброс hasp, пока не нужно.
$ lxc config edit vbox
### Это представление конфигурации в формате YAML.
### Любая строка начинающаяся с '#' будет игнорироваться.
###
### Пример конфигурации:
### name: container1
### profiles:
### - default
### config:
### volatile.eth0.hwaddr: 00:16:3e:e9:f8:7f
### devices:
### homedir:
### path: /extra
### source: /home/user
### type: disk
### ephemeral: false
###
### Обратите внимание, что имя отображается, но не может быть изменено
architecture: x86_64
config:
image.architecture: amd64
image.description: ubuntu 18.04 LTS amd64 (release) (20191114)
image.label: release
image.os: ubuntu
image.release: bionic
image.serial: "20191114"
image.version: "18.04"
linux.kernel_modules: overlay
raw.lxc: lxc.cgroup.devices.allow = c 10:53 rwm lxc.cgroup.devices.allow = c 10:54
rwm lxc.cgroup.devices.allow = c 10:55 rwm
security.privileged: "false"
volatile.base_image: 028d045b1cfcfc8a69cc68674557bd86e015c0ba4bb5c3d6851043f785963728
volatile.eth0.hwaddr: 00:16:3e:bd:b1:04
volatile.idmap.base: "0"
volatile.idmap.next: '[{"Isuid":true,"Isgid":false,"Hostid":100000,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":tru$
volatile.last_state.idmap: '[{"Isuid":true,"Isgid":false,"Hostid":100000,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgi$
volatile.last_state.power: RUNNING
devices:
vboxdrv:
mode: "0777"
path: /dev/vboxdrv
type: unix-char
vboxdrvu:
mode: "0777"
path: /dev/vboxdrvu
type: unix-char
vboxnetctl:
mode: "0777"
path: /dev/vboxnetctl
type: unix-char
ephemeral: false
profiles:
user@lxd:~$ lxc copy vbox vbox-cop
user@lxd:~$ lxc snapshot vbox backup
user@lxd:~$ lxc publish vbox/backup --alias vbox-backup
Контейнер публикуется с отпечатком: 4cc93c869cbc7686c61eabed84579b8386f4633ac1e0f7b7493c87274d000815
user@lxd:~$ lxc image export vbox-backup vbox
Восстановление на другом компьютере:
$ lxc image import vbox --alias vbox-backup
Образ, импортирован с снимком: 4cc93c869cbc7686c61eabed84579b8386f4633ac1e0f7b7493c87274d000815
$ lxc launch vbox-backup vbox
lxc: запуск virtualbox внутри контейнера
Хочется пользовать virtualbox (нужна кросплатформенность).
Не хочется работать с командной строкой.
Не хочется нарушать лицензионное соглашение, для работы через web.
Не хочется тянуть на хост desktop.
Virtualbox 6.0 стоит на хосте
user@lxd:~$ ls -la /dev | grep vbox
crw-rw---- 1 root vboxusers 10, 55 ноя 25 10:00 vboxdrv
crw-rw-rw- 1 root root 10, 54 ноя 25 10:00 vboxdrvu
crw-rw---- 1 root vboxusers 10, 53 ноя 25 10:00 vboxnetctl
drwxr-x--- 3 root vboxusers 60 ноя 25 10:00 vboxusb
$ lxc launch ubuntu:18.04 vbx
$ lxc exec test /bin/bash
## passwd
# adduser user
# usermod -aG sudo user
# apt update
# apt upgrade
## apt install qemu-user-static -y
# apt install mc samba sudo ssh wget -y
# dpkg-reconfigure locales
## Выбираем ru_RU.UTF-8 ru_RU.UTF-8 UTF-8
# locale -a
## timedatectl set-timezone Europe/Moscow
# dpkg-reconfigure tzdata
## apt install keyboard-configuration
# dpkg-reconfigure keyboard-configuration
# nano /etc/ssh/sshd_config
PasswordAuthentication yes
Сохранить.
# systemctl reload sshd
#apt install tasksel
# tasksel --list-tasks
# tasksel install xubuntu-core
# apt install xrdp
# systemctl enable xrdp
## apt install x2goserver x2goserver-xsession
# reboot
На хосте:
user@lxd:~$ ls -la /dev | grep vbox
crw-rw---- 1 root vboxusers 10, 55 ноя 25 10:00 vboxdrv
crw-rw-rw- 1 root root 10, 54 ноя 25 10:00 vboxdrvu
crw-rw---- 1 root vboxusers 10, 53 ноя 25 10:00 vboxnetctl
drwxr-x--- 3 root vboxusers 60 ноя 25 10:00 vboxusb
$ lxc start vbox
$ lxc config device add vbox vboxdrv unix-char path=/dev/vboxdrv mode=0777
$ lxc config device add vbox vboxdrvu unix-char path=/dev/vboxdrvu mode=0777
$ lxc config device add vbox vboxnetctl unix-char path=/dev/vboxnetctl mode=0777
#$ lxc config set vbox linux.kernel_modules overlay
$ lxc config set vbox security.privileged true
##$ printf 'lxc.cgroup.devices.allow = c 10:53 rwm' | lxc config set vbox raw.lxc -
$ lxc config edit vbox
raw.lxc:
lxc.cgroup.devices.allow = c 10:53 rwm
lxc.cgroup.devices.allow = c 10:54 rwm
lxc.cgroup.devices.allow = c 10:55 rwm
$ lxc restart vbox
В контейнере:
Установка virtualbox в контейнере:
$ sudo sh -c 'echo "deb [arch=amd64] http://download.virtualbox.org/virtualbox/debian $(lsb_release -sc) contrib" >> /etc/apt/sources.list.d/virtualbox.list'
$ wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
$ sudo apt update
$ sudo apt install virtualbox-6.0
#$ sudo apt autoremove --purge virtualbox-6.0
$ sudo usermod -a -G vboxusers $USER
Не надо:
##$ sudo mknod -m 600 /dev/vboxdrv c 10 55
##$ sudo mknod -m 600 /dev/vboxdrvu c 10 54
##$ sudo mknod -m 600 /dev/vboxnetctl c 10 53
##$ sudo /sbin/vboxconfig
$ sudo reboot
Отдельная тема проброс hasp, пока не нужно.
$ lxc config edit vbox
### Это представление конфигурации в формате YAML.
### Любая строка начинающаяся с '#' будет игнорироваться.
###
### Пример конфигурации:
### name: container1
### profiles:
### - default
### config:
### volatile.eth0.hwaddr: 00:16:3e:e9:f8:7f
### devices:
### homedir:
### path: /extra
### source: /home/user
### type: disk
### ephemeral: false
###
### Обратите внимание, что имя отображается, но не может быть изменено
architecture: x86_64
config:
image.architecture: amd64
image.description: ubuntu 18.04 LTS amd64 (release) (20191114)
image.label: release
image.os: ubuntu
image.release: bionic
image.serial: "20191114"
image.version: "18.04"
linux.kernel_modules: overlay
raw.lxc: lxc.cgroup.devices.allow = c 10:53 rwm lxc.cgroup.devices.allow = c 10:54
rwm lxc.cgroup.devices.allow = c 10:55 rwm
security.privileged: "false"
volatile.base_image: 028d045b1cfcfc8a69cc68674557bd86e015c0ba4bb5c3d6851043f785963728
volatile.eth0.hwaddr: 00:16:3e:bd:b1:04
volatile.idmap.base: "0"
volatile.idmap.next: '[{"Isuid":true,"Isgid":false,"Hostid":100000,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":tru$
volatile.last_state.idmap: '[{"Isuid":true,"Isgid":false,"Hostid":100000,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgi$
volatile.last_state.power: RUNNING
devices:
vboxdrv:
mode: "0777"
path: /dev/vboxdrv
type: unix-char
vboxdrvu:
mode: "0777"
path: /dev/vboxdrvu
type: unix-char
vboxnetctl:
mode: "0777"
path: /dev/vboxnetctl
type: unix-char
ephemeral: false
profiles:
user@lxd:~$ lxc copy vbox vbox-cop
user@lxd:~$ lxc snapshot vbox backup
user@lxd:~$ lxc publish vbox/backup --alias vbox-backup
Контейнер публикуется с отпечатком: 4cc93c869cbc7686c61eabed84579b8386f4633ac1e0f7b7493c87274d000815
user@lxd:~$ lxc image export vbox-backup vbox
Восстановление на другом компьютере:
$ lxc image import vbox --alias vbox-backup
Образ, импортирован с снимком: 4cc93c869cbc7686c61eabed84579b8386f4633ac1e0f7b7493c87274d000815
$ lxc launch vbox-backup vbox
Комментариев нет:
Отправить комментарий