Slackware and QEMU
2 Attachment(s)
Hello
I would like to share a project that I have been working on it's called SlackVirt, that includes some custom tools for managing QEMU virtual machines at Slackware. The project aims to deliver a simple virtualization solution based on Slackware philosophy. I'm now searching for a place to share it to the community for testing and receive some feedback. It has about 100MB an ISO that includes the source files and 50MB the install only image. |
Hello,
You could host the source files on GitHub. |
Download link
I thought about share over dropbox, but I wasn't able before I thought that It was due to connection issues but It was the parameters of the local proxy running inside of the a LXC container of my server instance of SlackVirt a Slackware64 14.2 running a few LXCs.
Here is the link: https://www.dropbox.com/s/3h59vvyy4h...ource.iso?dl=0 Cheers form my SlackVirt desktop instance of Slackware 14.1 (32-bit), an ancient remade custom machine that I preserve :) |
SlackVirt - Documentation (WIP)
2 Attachment(s)
Here is some documentation about SlackVirt, a work-in-progress.
SlackVirt QEMU host system --------------------------- 1. Introduction --------------------------- SlackVirt is a cloud pocket system intended to be simple, versatile and efficient SlackVirt isn't a real emulator or virtualization solution, but a virtualization platform for maintain a Slackware based virtual machine server. Which includes compatible tools to its aimed Linux distribution that can handle typical administrative operations on a set of virtualized machines connected through an ethernet virtualized network. Slackware do not maintain a strict package dependency list, but according to some premises it was decided which Slackware package series shall be installed as following: - Required: a, ap, l, n - Recommended: x - Optional: d, kde, kdei, xfce NOTE: package series "d" is required if you want to build SlackVirt packages, such as: qemu and spice-gtk or compiling other softwares. Nonetheless SlackVirt installer tool will install required packages from a slackpkg template. Therefore slackpkg is required for the installation procedure. SlackVirt includes two qemu packages, such as: qemu-server and qemu-desktop. They are compiled different according to the premises of each machine type, been a server and a desktop machine, disabling functions of the generated binary files allowing them to be independent of some host libraries, therefore making easy for maintaining the slackvirt host machine. There are a few sniplets that are compatible to libvirt at least those that are related to SlackVirt structure and operating mode. SlackVirt also includes an usrlocal "disk" for the server and the desktop instances. That can be used to creates img files that can be attached to the VMs. The set of scripts helps to easily deploy/configure the instances according: - server: dhcpd daemons, manipulate LXCs - desktop: vncserver daemon for different users. --------------------------- 2. Install --------------------------- Slackware version 14.2 Recommended hardware configuration: RAM: 2GB DISK: 14GB ( for SlackVirt server rootfs ) DISK: 16GB ( virtual machine storage ) There are three SlackVirt installation stanzas that can be used according to the needs, the first one it's static and the other two are volatile. All stanzas are intended to be used on top of a Slackware machine with few system modifications, but the last two are less intrusive. But the volatile installation do not save any changes that you made at SlackVirt system. 1. installing all files to /usr/local ( static ) 2. temporary installation at startup over tmpfs /usr/local ( volatile ) 3. using a initrd disk ( volatile ) How to install the SlackVirt different stanzas: Method 1. static: uncompress the slackvirt-142.tar.xz at /usr/local Method 2. volatile: include at /etc/rc.d/rc.local the following: Include at /etc/rc.d/rc.local, the following: #if [ -f /root/slackvirt-usrlocal.tar.xz ]; then # echo "Unpacking /usr/local ..." # tar xf /root/slackvirt-usrlocal.tar.xz \ # --strip-components=2 -C /usr/local #fi Method 3. volatile: uncompress the slackvirt-core-14.2.tar.xz at /tmp, then execute: # /tmp/sbin/create-initrd-slackvirt.sh # installing slackvirt root@darkstar:/mnt/cdrom# ./installer/slackvirt-install # using custom kernel KVERSION=4.14.166 ./installer/slackvirt-install General system modifications for all SlackVirt installation types: Include at /etc/rc.d/rc.local, the following: # if [ -x /usr/local/etc/rc.d/rc.local-slackvirt ]; then # /usr/local/etc/rc.d/rc.local-slackvirt # fi Or if you want to strict the startup time of SlackVirt and keep loggin the initialization procedure, use this: # CDATE=$(date +%d%H%Y-%H%M) # TIMEOUT=300 # if [ -x /usr/local/etc/rc.d/rc.local-slackvirt ]; then # timeout $TIMEOUT /usr/local/etc/rc.d/rc.local-slackvirt > \ # /var/log/boot-slackvirt$CDATE.log # fi Then, make it executable: # chmod 754 /usr/local/etc/rc.d/rc.local-slackvirt --------------------------- 3. Setup --------------------------- By default SlackVirt has configured two default computer instances, a server and a desktop. Let's presume here that SlackVirt intents to follow the Slackware way/development/educational philosofy. Defining that SlackVirt, it's just a virtualization host and will be referenced here as a machine too, the other two computers cited will be the "server" and the "desktop", having in mind that they are virtual machines. Therefore the machines, are delivered according to some premises, which are: - The server, a displayless computer machine, of a data center. - The desktop, a visual enhanced computer machine, at home. By default both machines, have serial connections that can be used at the bootup procedure or/and as normal consoles. However the desktop presents two graphic cards for enhanced visual experiences, that are not intended to be done at server machines which used to lacks graphic hardware support. Slackvirt takes that idea for defining its default machines. The full characteristcs of the machines can be found at the flat files that holds it's configurations, which are saved at: /usr/local/etc/slackvirt. The configuration files just defines the virtual machine hardware and do not include a bootable disk with a Slackware installation on it. Thereby, it's required that user perform the system installation. Let's see some notes about a pratical system configuration. Creating a qcow2 image: # qemu-img create -f qcow2 /mnt/hd/slackware/14.2/slackware-14.2.img 15G Then partitioning the disk with one partition # fdisk /mnt/hd/disk1.img (n, enter, enter, enter, enter, w) Creating the file system # losetup -P loop0 /mnt/hd/disk1.img # mkfs.ext4 /dev/loop0p1 SlackVirt includes an automated installation procedure to make easy Slackware system installations. The method can be used, as following: Automated Slackware install: # PKG_SERIES="A#AP#D#L#N#" \ # DISK0=/mnt/hd/slackware/14.2/slackware-14.2.img \ # slackware-qemu-vmserver.sh install \ # /usr/local/etc/slackvirt/machines/slackware/slackware-14.2/slackware.qemu --------------------------- 4. Network --------------------------- SlackVirt default SMs comes with three network IF cards configured attached to host bridge: qemubr0, qemubr1 and qemubr2. 4.1 Network configuration The host system can be configured over: /usr/local/etc/rc.d/rc.inet1.conf To configure address of slackvirt host, server and desktop SMs, the tool: netconfig.slackvirt can be used for generating the configuration files. By default the tool will just prompt for the host setup. However, the enviroment variable MACHINES is used to define extra configuration options for which SM, either "server", "desktop" or "server desktop". 4.2 HOST Wireless setup For configuring wireless network setup, uses the tool: setup.70.local-wireless It will prompt to choose one of the detected wireless network IF for been configured. --- Slack well. - William PC |
Updated iso images
I just uploaded the new iso images for SlackVirt, please check them at:
https://slackware.uk/slackvirt I'm still considering it as a beta development even that it's almost ready to go, but I would like to consider receive some reviews. Let's follow this thread for sharing your comments and feedback. I will be thankful. See you :) Will PC |
Is this compatible with any QEMU image? Would I be able to integrate this into AWS?
|
Hi,
did you mean QEMU disk images ? Yes. SlackVirt (core) is just a set of shell scripts and predefined QEMU virtual machines (one as a server and other as a desktop) written in flat text files. As part of the shell scripts there is a tool that helps to start/stop/save/reboot the QEMU instances (note that they work differently), some commands sent a ACPI signal to VM others are handled through the QEMU process. However there is two "user discs" raw images that are intended to be attached to the default virtual machine instances, those are designed to work at Slackware. What is the basic requirements to run the SlackVirt system is a Slackware host and install the SlackVirt packages A, AP, D, L, N and QEMU. Packages X and XAP includes functionalities for using X11 for monitoring the SlackVirt host and accessing the VMs. - AWS I'm not sure exactly how AWS works, but as long they allows you to run a Slackware machine as a host within support for nested virtualization, I would say that Yes. The main goal of SlackVirt is to use as minimum hardware resources and additional software possible for creating a QEMU virtualization host. |
Noice! So anyone can download this and test it out, right?
|
Yes, you can download it and test, but it still in beta mode.
So you can check and ask any doubt here and send some comments too. I have been using/testing it for almost 1 year as my main machine. I even made once a full re-installation of the host and getting everything working again was marvelous, the server (with several services) and the desktop (with a bunch of stuff). Although today I created a virtual machine (as I don't want to reinstall my host) for testing the ISOs and I found some bugs, the installer isn't working really well. Besides the tool for configuring the VMs is a WIP. Therefore you shall configure the instances manually: - create the images and set the path to them at the virtual machine configuration files at /usr/local/etc/slackvirt/{server,desktop}.qemu - define the source media of Slackware disks I'm rebuilding the iso images now and will sync soon. |
sync - changeLog
We fixed the installer and tested for the first time the 32-bit version
Wed Sep 10 14:18:39 GMT 2020 xap/slackvirt-xapps : upgrade Fix slack-desc xap/fluxbox-slackvirt : upgrade Fix slack-desc xap/blackbox-slackvirt : upgrade Fix slack-desc x/xdm-slackvirt : upgrade Fix slack-desc qemu/qemu-server : upgrade Fix slack-desc qemu/qemu-qmp : upgrade Fix slack-desc qemu/qemu-desktop : upgrade Fix slack-desc n/wireless-tools-slackvirt : upgrade Added description for setup.70.local-wireless Enhance iw-scan tool n/network-scripts-slackvirt : upgrade Fix for: - netconfig.slackvirt, adjusted name of host ifaces (qemubr[0,1,2]) ap/slackvirt-tools : upgrade Fixes for: - dialog-ctrl.sh - gkrellms-split, include sanity check (which gkrellm) - hw-sys-mon.sh, check if devices exists before cat them ap/slackpkg-slackvirt : upgrade Fix template, removed unnecessary packages a/slackvirt-sysvinit-scripts : upgrade Fix slack-desc a/slackvirt-core : upgrade Fixes: - Added description for setup.100.slackvirt-usbbind - expect script install now define a RAM variable a/pkgtools-slackvirt : upgrade Fixes for: - pkgtool.slackvirt, mispelling words - setup.liloentry, fix rootfs detection and adjust append and initrd lines. a/aaa_base-slackvirt : upgrade Fix slack-desc we are almost at release ALPHA. |
All times are GMT -5. The time now is 05:43 PM. |