Xen
From Wiki.cyring.fr
Contents |
Installation
Initialization
Context:
- Create a SSD partition, number 3, formatted with a 6 GB Ext4 file system.
- Attach an existing HDD partition named /vm to store the virtual machines.
Partitioning
fdisk /dev/sda
n 3 [enter] +6G
Formatting
mkfs.ext4 -E discard -L DEBIAN /dev/sda3
mount /dev/disk/by-label/DEBIAN /mnt
ArchLinux as a source
pacman -S abs
pacman -S base-devel
abs
mkdir /tmp/debootstrap
cd /tmp/debootstrap
wget https://aur.archlinux.org/packages/de/debootstrap/PKGBUILD
makepkg -s
pacman -U debootstrap*
Debian as a host
debootstrap --arch=amd64 wheezy /mnt http://ftp.fr.debian.org/debian
LANG=C chroot /mnt /bin/bash
export TERM=xterm-color
cd /dev
MAKEDEV generic
cd /
mkdir /vm
Configuration
Filesystems
nano /etc/fstab
# /etc/fstab # # <file system> <dir> <type> <options> <dump> <pass> /dev/disk/by-label/DEBIAN / ext4 discard,noatime,nodiratime,defaults 0 1 proc /proc proc defaults 0 0 devpts /dev/pts devpts defaults 0 0 shm /dev/shm tmpfs nodev,nosuid 0 0 tmpfs /tmp tmpfs size=2048M 0 0 tmpfs /var/log tmpfs size=64M 0 0 /dev/disk/by-label/VM /vm ext4 defaults 0 0
Network
nano /etc/network/interfaces
auto lo eth0 xenbr0 iface lo inet loopback iface eth0 inet static address 192.168.1.101 network 192.168.1.0 netmask 255.255.255.0 gateway 192.168.1.1 iface xenbr0 inet static bridge_ports none address 192.168.1.199 broadcast 192.168.1.255 netmask 255.255.255.0 gateway 192.168.1.1
nano /etc/resolv.conf
nameserver 192.168.1.1
echo XEN > /etc/hostname
nano /etc/hosts
127.0.0.1 localhost 127.0.0.1 XEN
Kernel
nano /etc/modprobe.d/blacklist.conf
blacklist pcspkr blacklist acpi_cpufreq blacklist bluetooth
Packages
nano /etc/apt/sources.list
deb http://ftp.fr.debian.org/debian wheezy main non-free
aptitude update
Localization
aptitude install locales
dpkg-reconfigure locales
aptitude install console-data
dpkg-reconfigure console-data
Defaults
Locale
nano /etc/default/locale
LANG=en_US.UTF-8
Keyboard
nano /etc/default/keyboard
XKBMODEL="pc105" XKBLAYOUT="fr"
tmp filesystem
nano /etc/default/tmpfs
RAMTMP=yes
HDD temperature
nano /etc/default/tmpfs
RUN_DAEMON="true" DISKS="/dev/sdb"
rcS
nano /etc/default/rcS
TMPTIME=-1
XEN
Deployment
aptitude install xen-linux-system-amd64
aptitude install xen-hypervisor-4.1-amd64
aptitude install xen-tools
Boot Manager
Files
exit
ln -s /usr/lib/syslinux/mboot.c32 /boot/syslinux/mboot.c32
mkdir /boot/Debian
cp /mnt/boot/xen-4.1-amd64.gz /boot/Debian/
cp /mnt/boot/vmlinuz-3.2.0-3-amd64 /boot/Debian/
cp /mnt/boot/initrd.img-3.2.0-3-amd64 /boot/Debian/
ln -s /boot/Debian/xen-4.1-amd64.gz /boot/Debian/xen.gz
ln -s /boot/Debian/vmlinuz-3.2.0-3-amd64 /boot/Debian/vmlinuz
ln -s /boot/Debian/vmlinuz-3.2.0-3-amd64 /boot/Debian/initrd.img
SysLinux
nano /boot/syslinux/syslinux.cfg
LABEL debian MENU LABEL De^bian Linux LINUX ../Debian/vmlinuz APPEND root=/dev/sda3 ro quiet elevator=noop nmi_watchdog=0 vga=0 INITRD ../Debian/initrd.img LABEL xen MENU LABEL Debian ^Xen KERNEL mboot.c32 APPEND ../Debian/xen.gz --- ../Debian/vmlinuz root=/dev/sda3 ro quiet elevator=noop --- ../Debian/initrd.img
shutdown -r now
Testing
xentop
xentop - 14:55:16 Xen 4.1.3 1 domains: 1 running, 0 blocked, 0 paused, 0 crashed, 0 dying, 0 shutdown Mem: 6282360k total, 5093488k used, 1188872k free CPUs: 8 @ 3210MHz NAME STATE CPU(sec) CPU(%) MEM(k) MEM(%) MAXMEM(k) MAXMEM(%) VCPUS NETS NETTX(k) NETRX(k) VBDS VBD_OO VBD_RD VBD_WR VBD_RSECT VBD_WSECT SSID Domain-0 -----r 491 1.7 5020324 79.9 no limit n/a 8 0 0 0 0 0 0 0 0 0 0 Delay Networks vBds Tmem VCPUs Repeat header Sort order Quit
Virtual Machine Manager
Xorg
wget http://us.download.nvidia.com/XFree86/Linux-x86_64/304.60/NVIDIA-Linux-x86_64-304.60.run
chmod +x NVIDIA-Linux-x86_64-304.60.run
./NVIDIA-Linux-x86_64-304.60.run
nvidia-xconfig
Section "Monitor" Identifier "Monitor0" VendorName "Dell" ModelName "U2711" Option "DPMS" EndSection Section "Device" Identifier "Device0" Driver "nvidia" VendorName "NVIDIA Corporation" EndSection
aptitude install xfce4
aptitude install chromium
aptitude install lightdm lightdm-gtk-greeter
echo "/usr/sbin/lightdm" > /etc/X11/default-display-manager
nano /etc/X11/Xsession
ERRFILE=$HOME/tmp/.xsession-errors
First VM
- Prepare the VM directory
ifup xenbr0
brctl show
cd /vm
mkdir XEN
chgrp users XEN
chmod g+w XEN
cd
nano /etc/xen-tools/xen-tools.conf
dir = /vm/XEN
Create a Debian VM
xen-create-image --hostname VPC1 --ip 192.168.1.201 --vcpus 2 --dist wheezy
... General Information -------------------- Hostname : VPC1 Distribution : wheezy Mirror : http://ftp.fr.debian.org/debian Partitions : swap 128Mb (swap) / 4Gb (ext3) Image type : sparse Memory size : 128Mb Kernel path : /boot/vmlinuz-3.2.0-3-amd64 Initrd path : /boot/initrd.img-3.2.0-3-amd64 ... Logfile produced at: /var/log/xen-tools/VPC1.log Installation Summary --------------------- Hostname : VPC1 Distribution : wheezy IP-Address(es) : 192.168.1.201 RSA Fingerprint : 07:04:0e:08:0c:01:08:0b:0c:03:09:07:00:08:01:02 Root Password : xXxXxXxX
- Define Video & Audio features
nano /etc/xen/VPC1.cfg
# # Graphics and Audio # stdvga = '1' videoram = '16'
Start the new VM
xm create /etc/xen/VPC1.cfg
Using config file "/etc/xen/VPC1.cfg". Started domain VPC1 (id=3)
List any running VM
xm list
Name ID Mem VCPUs State Time(s) Domain-0 0 4902 8 r----- 101.5 VPC1 3 128 2 -b---- 2.4
Take control of the VM
- Using the console (press CTRL+] to exit)
xm console 3
- Using ssh to remotely connect
ssh root@VPC1
Windowing
- Inside the VM, configure an Internet box
aptitude install xorg
dpkg-reconfigure x11-common
aptitude install dbus
aptitude install twm
echo RandomPlacement >> /etc/X11/twm/system.twmrc
echo 'NoTitle { chromium }' >> /etc/X11/twm/system.twmrc
aptitude install chromium
adduser --gid 100 cyring
exit
- Reconnect as a regular user
ssh cyring:VPC1
echo "chromium &" > .xinitrc
echo "exec twm" >> .xinitrc
startx
Stop the VM
- Nicely shut down the VM
xm shutdown 3
- Remove the VM from the managed environment.
xm delete VPC1
Lost password !
- Mount the VM filesystem
mount /vm/XEN/domains/VPC1/disk.img /mnt
chroot /mnt
- Inside the VM
passwd
exit
- Back to back
umount /vm/XEN/domains/VPC1/disk.img
GUI
aptitude install virt-manager
# usermod -a -G libvirt LOGIN
nano /etc/xen/xend-config.sxp
(xend-unix-server yes)
service xen restart
python /usr/share/virt-manager/virt-manager.py