Xen
From Wiki.cyring.fr
(Difference between revisions)
(→GUI) |
(→SysOp user) |
||
(61 intermediate revisions not shown) | |||
Line 1: | Line 1: | ||
- | + | == 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 ==== | ||
<syntaxhighlight lang="bash" line start="1"> | <syntaxhighlight lang="bash" line start="1"> | ||
fdisk /dev/sda | fdisk /dev/sda | ||
Line 10: | Line 12: | ||
</pre> | </pre> | ||
- | + | ==== Formatting ==== | |
<syntaxhighlight lang="bash" line start="2"> | <syntaxhighlight lang="bash" line start="2"> | ||
mkfs.ext4 -E discard -L DEBIAN /dev/sda3 | mkfs.ext4 -E discard -L DEBIAN /dev/sda3 | ||
Line 16: | Line 18: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
- | === | + | === ArchLinux as a source === |
<syntaxhighlight lang="bash" line start="1"> | <syntaxhighlight lang="bash" line start="1"> | ||
pacman -S abs | pacman -S abs | ||
Line 27: | Line 29: | ||
pacman -U debootstrap* | pacman -U debootstrap* | ||
</syntaxhighlight> | </syntaxhighlight> | ||
- | + | === Debian as a host === | |
<syntaxhighlight lang="bash" line start="1"> | <syntaxhighlight lang="bash" line start="1"> | ||
debootstrap --arch=amd64 wheezy /mnt http://ftp.fr.debian.org/debian | debootstrap --arch=amd64 wheezy /mnt http://ftp.fr.debian.org/debian | ||
Line 34: | Line 36: | ||
cd /dev | cd /dev | ||
MAKEDEV generic | MAKEDEV generic | ||
+ | cd / | ||
+ | mkdir /vm | ||
</syntaxhighlight> | </syntaxhighlight> | ||
- | + | == Configuration == | |
- | + | === Filesystems === | |
<syntaxhighlight lang="bash" line start="1"> | <syntaxhighlight lang="bash" line start="1"> | ||
nano /etc/fstab | nano /etc/fstab | ||
Line 45: | Line 49: | ||
# | # | ||
# <file system> <dir> <type> <options> <dump> <pass> | # <file system> <dir> <type> <options> <dump> <pass> | ||
+ | |||
/dev/disk/by-label/DEBIAN / ext4 discard,noatime,nodiratime,defaults 0 1 | /dev/disk/by-label/DEBIAN / ext4 discard,noatime,nodiratime,defaults 0 1 | ||
Line 52: | Line 57: | ||
tmpfs /tmp tmpfs size=2048M 0 0 | tmpfs /tmp tmpfs size=2048M 0 0 | ||
tmpfs /var/log tmpfs size=64M 0 0 | tmpfs /var/log tmpfs size=64M 0 0 | ||
+ | |||
+ | /dev/disk/by-label/VM /vm ext4 defaults 0 0 | ||
</pre> | </pre> | ||
- | + | ||
+ | === Network === | ||
<syntaxhighlight lang="bash" line start="1"> | <syntaxhighlight lang="bash" line start="1"> | ||
nano /etc/network/interfaces | nano /etc/network/interfaces | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<pre> | <pre> | ||
- | auto lo | + | auto lo eth0 xenbr0 |
iface lo inet loopback | iface lo inet loopback | ||
- | |||
iface eth0 inet static | iface eth0 inet static | ||
address 192.168.1.101 | address 192.168.1.101 | ||
Line 66: | Line 73: | ||
netmask 255.255.255.0 | netmask 255.255.255.0 | ||
gateway 192.168.1.1 | gateway 192.168.1.1 | ||
- | iface | + | iface xenbr0 inet static |
bridge_ports none | bridge_ports none | ||
address 192.168.1.199 | address 192.168.1.199 | ||
Line 87: | Line 94: | ||
127.0.0.1 XEN | 127.0.0.1 XEN | ||
</pre> | </pre> | ||
- | + | ||
+ | === Kernel === | ||
<syntaxhighlight lang="bash" line start="1"> | <syntaxhighlight lang="bash" line start="1"> | ||
nano /etc/modprobe.d/blacklist.conf | nano /etc/modprobe.d/blacklist.conf | ||
Line 96: | Line 104: | ||
blacklist bluetooth | blacklist bluetooth | ||
</pre> | </pre> | ||
- | + | === Packages === | |
<syntaxhighlight lang="bash" line start="1"> | <syntaxhighlight lang="bash" line start="1"> | ||
nano /etc/apt/sources.list | nano /etc/apt/sources.list | ||
Line 106: | Line 114: | ||
aptitude update | aptitude update | ||
</syntaxhighlight> | </syntaxhighlight> | ||
- | + | === Localization === | |
<syntaxhighlight lang="bash" line start="1"> | <syntaxhighlight lang="bash" line start="1"> | ||
aptitude install locales | aptitude install locales | ||
Line 113: | Line 121: | ||
dpkg-reconfigure console-data | dpkg-reconfigure console-data | ||
</syntaxhighlight> | </syntaxhighlight> | ||
- | + | === Defaults === | |
- | + | ==== Locale ==== | |
<syntaxhighlight lang="bash" line start="1"> | <syntaxhighlight lang="bash" line start="1"> | ||
nano /etc/default/locale | nano /etc/default/locale | ||
Line 121: | Line 129: | ||
LANG=en_US.UTF-8 | LANG=en_US.UTF-8 | ||
</pre> | </pre> | ||
- | + | ==== Keyboard ==== | |
<syntaxhighlight lang="bash" line start="1"> | <syntaxhighlight lang="bash" line start="1"> | ||
nano /etc/default/keyboard | nano /etc/default/keyboard | ||
Line 129: | Line 137: | ||
XKBLAYOUT="fr" | XKBLAYOUT="fr" | ||
</pre> | </pre> | ||
- | + | ==== tmp filesystem ==== | |
<syntaxhighlight lang="bash" line start="1"> | <syntaxhighlight lang="bash" line start="1"> | ||
nano /etc/default/tmpfs | nano /etc/default/tmpfs | ||
Line 136: | Line 144: | ||
RAMTMP=yes | RAMTMP=yes | ||
</pre> | </pre> | ||
- | + | ==== HDD temperature ==== | |
<syntaxhighlight lang="bash" line start="1"> | <syntaxhighlight lang="bash" line start="1"> | ||
nano /etc/default/tmpfs | nano /etc/default/tmpfs | ||
Line 144: | Line 152: | ||
DISKS="/dev/sdb" | DISKS="/dev/sdb" | ||
</pre> | </pre> | ||
- | + | ==== rcS ==== | |
<syntaxhighlight lang="bash" line start="1"> | <syntaxhighlight lang="bash" line start="1"> | ||
nano /etc/default/rcS | nano /etc/default/rcS | ||
Line 150: | Line 158: | ||
<pre> | <pre> | ||
TMPTIME=-1 | TMPTIME=-1 | ||
+ | </pre> | ||
+ | === Boot Manager === | ||
+ | ==== SysLinux ==== | ||
+ | <syntaxhighlight lang="bash" line start="1"> | ||
+ | exit | ||
+ | mkdir /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/vmlinuz-3.2.0-3-amd64 /boot/Debian/vmlinuz | ||
+ | ln -s /boot/Debian/initrd.img-3.2.0-3-amd64 /boot/Debian/initrd.img | ||
+ | nano /boot/syslinux/syslinux.cfg | ||
+ | </syntaxhighlight> | ||
+ | <small><pre> | ||
+ | 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 | ||
+ | </pre></small> | ||
+ | ==== Reboot to Debian ==== | ||
+ | <syntaxhighlight lang="bash" line start="1"> | ||
+ | shutdown -r now | ||
+ | </syntaxhighlight> | ||
+ | === Xorg === | ||
+ | <syntaxhighlight lang="bash" line start="1"> | ||
+ | aptitude install xfce4 | ||
+ | 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 | ||
+ | </syntaxhighlight> | ||
+ | <pre> | ||
+ | Section "Monitor" | ||
+ | Identifier "Monitor0" | ||
+ | VendorName "Dell" | ||
+ | ModelName "U2711" | ||
+ | Option "DPMS" | ||
+ | EndSection | ||
+ | |||
+ | Section "Device" | ||
+ | Identifier "Device0" | ||
+ | Driver "nvidia" | ||
+ | VendorName "NVIDIA Corporation" | ||
+ | EndSection | ||
+ | </pre> | ||
+ | <syntaxhighlight lang="bash" line start="6"> | ||
+ | aptitude install chromium | ||
+ | aptitude install lightdm lightdm-gtk-greeter | ||
+ | echo "/usr/sbin/lightdm" > /etc/X11/default-display-manager | ||
+ | </syntaxhighlight> | ||
+ | === SysOp user === | ||
+ | <syntaxhighlight lang="bash" line start="1"> | ||
+ | adduser --gid 100 sysop | ||
+ | mkdir /home/sysop/tmp | ||
+ | ln -fs /home/sysop/tmp /home/sysop/.cache | ||
+ | nano /etc/X11/Xsession | ||
+ | </syntaxhighlight> | ||
+ | <pre> | ||
+ | ERRFILE=$HOME/tmp/.xsession-errors | ||
+ | </pre> | ||
+ | <syntaxhighlight lang="bash" line start="5"> | ||
+ | nano /etc/fstab | ||
+ | </syntaxhighlight> | ||
+ | <pre> | ||
+ | # /etc/fstab | ||
+ | # | ||
+ | # <file system> <dir> <type> <options> <dump> <pass> | ||
+ | |||
+ | tmpfs /home/sysop/tmp tmpfs size=2048M 0 0 | ||
</pre> | </pre> | ||
- | + | == XEN == | |
- | + | === Deployment === | |
<syntaxhighlight lang="bash" line start="1"> | <syntaxhighlight lang="bash" line start="1"> | ||
aptitude install xen-linux-system-amd64 | aptitude install xen-linux-system-amd64 | ||
aptitude install xen-hypervisor-4.1-amd64 | aptitude install xen-hypervisor-4.1-amd64 | ||
+ | aptitude install xen-tools | ||
</syntaxhighlight> | </syntaxhighlight> | ||
- | === | + | === Append Boot Manager === |
- | ==== | + | ==== Copy fresh files ==== |
<syntaxhighlight lang="bash" line start="1"> | <syntaxhighlight lang="bash" line start="1"> | ||
- | |||
ln -s /usr/lib/syslinux/mboot.c32 /boot/syslinux/mboot.c32 | ln -s /usr/lib/syslinux/mboot.c32 /boot/syslinux/mboot.c32 | ||
- | |||
cp /mnt/boot/xen-4.1-amd64.gz /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/vmlinuz-3.2.0-3-amd64 /boot/Debian/ | ||
Line 169: | Line 245: | ||
ln -s /boot/Debian/xen-4.1-amd64.gz /boot/Debian/xen.gz | 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/vmlinuz | ||
- | ln -s /boot/Debian/ | + | ln -s /boot/Debian/initrd.img-3.2.0-3-amd64 /boot/Debian/initrd.img |
</syntaxhighlight> | </syntaxhighlight> | ||
- | + | ==== SysLinux ==== | |
<syntaxhighlight lang="bash" line start="1"> | <syntaxhighlight lang="bash" line start="1"> | ||
nano /boot/syslinux/syslinux.cfg | nano /boot/syslinux/syslinux.cfg | ||
</syntaxhighlight> | </syntaxhighlight> | ||
- | <pre> | + | <small><pre> |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
LABEL xen | LABEL xen | ||
MENU LABEL Debian ^Xen | MENU LABEL Debian ^Xen | ||
KERNEL mboot.c32 | KERNEL mboot.c32 | ||
- | APPEND ../Debian/xen.gz --- ../Debian/vmlinuz root=/dev/sda3 ro quiet elevator=noop --- ../Debian/initrd.img | + | APPEND ../Debian/xen.gz dom0_mem=512M,max:512M dom0_max_vcpus=1-2 dom0_vcpus_pin=1 --- ../Debian/vmlinuz root=/dev/sda3 ro quiet elevator=noop --- ../Debian/initrd.img |
- | </pre> | + | </pre></small> |
- | <syntaxhighlight lang="bash" line start=" | + | === Reboot to XEN === |
+ | <syntaxhighlight lang="bash" line start="1"> | ||
shutdown -r now | shutdown -r now | ||
</syntaxhighlight> | </syntaxhighlight> | ||
- | + | ||
+ | === Testing === | ||
<syntaxhighlight lang="bash" line start="1"> | <syntaxhighlight lang="bash" line start="1"> | ||
- | + | xentop | |
</syntaxhighlight> | </syntaxhighlight> | ||
<small><pre> | <small><pre> | ||
Line 203: | Line 275: | ||
+ | Delay Networks vBds Tmem VCPUs Repeat header Sort order Quit | ||
+ | </pre> | ||
+ | </small> | ||
+ | === Virtual Machine Manager === | ||
+ | ==== First VM ==== | ||
+ | * Prepare the VM directory | ||
+ | <syntaxhighlight lang="bash" line start="1"> | ||
+ | ifup xenbr0 | ||
+ | brctl show | ||
+ | cd /vm | ||
+ | mkdir XEN | ||
+ | chgrp users XEN | ||
+ | chmod g+w XEN | ||
+ | cd | ||
+ | nano /etc/xen-tools/xen-tools.conf | ||
+ | </syntaxhighlight> | ||
+ | <pre> | ||
+ | dir = /vm/XEN | ||
+ | </pre> | ||
+ | ===== Create a Debian VM ===== | ||
+ | <syntaxhighlight lang="bash" line start="1"> | ||
+ | xen-create-image --hostname VPC1 --ip 192.168.1.201 --vcpus 2 --dist wheezy | ||
+ | </syntaxhighlight> | ||
+ | <small><pre> | ||
+ | ... | ||
+ | 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 | ||
+ | </pre></small> | ||
+ | * Define Video & Audio features | ||
+ | <syntaxhighlight lang="bash" line start="2"> | ||
+ | nano /etc/xen/VPC1.cfg | ||
+ | </syntaxhighlight> | ||
+ | <pre> | ||
+ | # | ||
+ | # Graphics and Audio | ||
+ | # | ||
+ | stdvga = '1' | ||
+ | videoram = '16' | ||
+ | </pre> | ||
+ | ===== Start the new VM ===== | ||
+ | <syntaxhighlight lang="bash" line start="1"> | ||
+ | xm create /etc/xen/VPC1.cfg | ||
+ | </syntaxhighlight> | ||
+ | <small><pre> | ||
+ | Using config file "/etc/xen/VPC1.cfg". | ||
+ | Started domain VPC1 (id=3) | ||
+ | </pre></small> | ||
+ | ===== List any running VM ===== | ||
+ | <syntaxhighlight lang="bash" line start="1"> | ||
+ | xm list | ||
+ | </syntaxhighlight> | ||
+ | <small><pre> | ||
+ | Name ID Mem VCPUs State Time(s) | ||
+ | Domain-0 0 4902 8 r----- 101.5 | ||
+ | VPC1 3 128 2 -b---- 2.4 | ||
+ | </pre></small> | ||
+ | ===== Take control of the VM ===== | ||
+ | * Using the console (''press'' CTRL+] ''to exit'') | ||
+ | <syntaxhighlight lang="bash" line start="1"> | ||
+ | xm console 3 | ||
+ | </syntaxhighlight> | ||
+ | * Using ssh to remotely connect | ||
+ | <syntaxhighlight lang="bash" line start="2"> | ||
+ | ssh root@VPC1 | ||
+ | </syntaxhighlight> | ||
+ | ===== Windowing ===== | ||
+ | * Inside the VM, configure an Internet box | ||
+ | <syntaxhighlight lang="bash" line start="1"> | ||
+ | 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 | ||
+ | </syntaxhighlight> | ||
+ | * Reconnect as a regular user | ||
+ | <syntaxhighlight lang="bash" line start="1"> | ||
+ | ssh cyring:VPC1 | ||
+ | echo "chromium &" > .xinitrc | ||
+ | echo "exec twm" >> .xinitrc | ||
+ | startx | ||
+ | </syntaxhighlight> | ||
+ | ===== Stop the VM ===== | ||
+ | * Nicely shut down the VM | ||
+ | <syntaxhighlight lang="bash" line start="1"> | ||
+ | xm shutdown 3 | ||
+ | </syntaxhighlight> | ||
+ | * Remove the VM from the managed environment. | ||
+ | <syntaxhighlight lang="bash" line start="2"> | ||
+ | xm delete VPC1 | ||
+ | </syntaxhighlight> | ||
+ | ===== Lost password ! ===== | ||
+ | * Mount the VM filesystem | ||
+ | <syntaxhighlight lang="bash" line start="1"> | ||
+ | mount /vm/XEN/domains/VPC1/disk.img /mnt | ||
+ | chroot /mnt | ||
+ | </syntaxhighlight> | ||
+ | * ''Inside the VM'' | ||
+ | <syntaxhighlight lang="bash" line start="3"> | ||
+ | passwd | ||
+ | exit | ||
+ | </syntaxhighlight> | ||
+ | * ''Back to back'' | ||
+ | <syntaxhighlight lang="bash" line start="5"> | ||
+ | umount /vm/XEN/domains/VPC1/disk.img | ||
+ | </syntaxhighlight> | ||
- | + | ==== Virt-Manager GUI ==== | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | ==== | + | |
- | + | ||
<syntaxhighlight lang="bash" line start="1"> | <syntaxhighlight lang="bash" line start="1"> | ||
- | + | aptitude install virt-manager | |
- | + | # usermod -a -G libvirt sysop | |
- | + | mkdir -p /vm/XEN/libvirt/images | |
- | + | virsh pool-edit default | |
</syntaxhighlight> | </syntaxhighlight> | ||
<pre> | <pre> | ||
- | + | <path>/vm/XEN/libvirt/images</path> | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
</pre> | </pre> | ||
+ | :''Pool default XML configuration edited.'' | ||
<syntaxhighlight lang="bash" line start="5"> | <syntaxhighlight lang="bash" line start="5"> | ||
- | + | mkdir -p /vm/XEN/libvirt/qemu/dump | |
- | + | nano /etc/libvirt/qemu.conf | |
- | + | ||
- | nano /etc/ | + | |
</syntaxhighlight> | </syntaxhighlight> | ||
<pre> | <pre> | ||
- | + | auto_dump_path = "/vm/XEN/libvirt/qemu/dump" | |
</pre> | </pre> | ||
- | + | <syntaxhighlight lang="bash" line start="7"> | |
- | + | nano /etc/xen/xend-config.sxp | |
- | <syntaxhighlight lang="bash" line start=" | + | </syntaxhighlight> |
- | + | <pre> | |
- | + | (xend-unix-server yes) | |
+ | </pre> | ||
+ | * virt-manager & Debian Wheezy packages are broken : some paths to libraries are invalid | ||
+ | <syntaxhighlight lang="bash" line start="8"> | ||
+ | # mkdir -p /usr/lib64/xen/bin | ||
+ | # ln -s /usr/lib/xen-4.1/bin/qemu-dm /usr/lib64/xen/bin/qemu-dm | ||
+ | # ln -s /usr/lib/xen-4.1 /usr/lib/xen-default | ||
+ | service xen restart | ||
+ | virt-manager | ||
</syntaxhighlight> | </syntaxhighlight> |
Latest revision as of 19:38, 23 October 2012
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
Boot Manager
SysLinux
exit
mkdir /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/vmlinuz-3.2.0-3-amd64 /boot/Debian/vmlinuz
ln -s /boot/Debian/initrd.img-3.2.0-3-amd64 /boot/Debian/initrd.img
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
Reboot to Debian
shutdown -r now
Xorg
aptitude install xfce4
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 chromium
aptitude install lightdm lightdm-gtk-greeter
echo "/usr/sbin/lightdm" > /etc/X11/default-display-manager
SysOp user
adduser --gid 100 sysop
mkdir /home/sysop/tmp
ln -fs /home/sysop/tmp /home/sysop/.cache
nano /etc/X11/Xsession
ERRFILE=$HOME/tmp/.xsession-errors
nano /etc/fstab
# /etc/fstab # # <file system> <dir> <type> <options> <dump> <pass> tmpfs /home/sysop/tmp tmpfs size=2048M 0 0
XEN
Deployment
aptitude install xen-linux-system-amd64
aptitude install xen-hypervisor-4.1-amd64
aptitude install xen-tools
Append Boot Manager
Copy fresh files
ln -s /usr/lib/syslinux/mboot.c32 /boot/syslinux/mboot.c32
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/initrd.img-3.2.0-3-amd64 /boot/Debian/initrd.img
SysLinux
nano /boot/syslinux/syslinux.cfg
LABEL xen MENU LABEL Debian ^Xen KERNEL mboot.c32 APPEND ../Debian/xen.gz dom0_mem=512M,max:512M dom0_max_vcpus=1-2 dom0_vcpus_pin=1 --- ../Debian/vmlinuz root=/dev/sda3 ro quiet elevator=noop --- ../Debian/initrd.img
Reboot to XEN
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
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
Virt-Manager GUI
aptitude install virt-manager
# usermod -a -G libvirt sysop
mkdir -p /vm/XEN/libvirt/images
virsh pool-edit default
<path>/vm/XEN/libvirt/images</path>
- Pool default XML configuration edited.
mkdir -p /vm/XEN/libvirt/qemu/dump
nano /etc/libvirt/qemu.conf
auto_dump_path = "/vm/XEN/libvirt/qemu/dump"
nano /etc/xen/xend-config.sxp
(xend-unix-server yes)
- virt-manager & Debian Wheezy packages are broken : some paths to libraries are invalid
# mkdir -p /usr/lib64/xen/bin
# ln -s /usr/lib/xen-4.1/bin/qemu-dm /usr/lib64/xen/bin/qemu-dm
# ln -s /usr/lib/xen-4.1 /usr/lib/xen-default
service xen restart
virt-manager