A prerelease version of a Xen-integrated bootable CD I've been working
on is available for download here:
http://files.wordzoo.com/xencd/xencd.iso.gz
This CD is only just at the point of being minimally usable. It's had
very little testing outside of qemu, and doesn't include much beyond 2
auto-started ttylinux instances (for which the network doesn't seem to
work). Projects like this thrive on feedback, though, so I'm offering
what I have. Please feel free to provide nit-picking or grandiose
feedback of any kind, here or in private email.
368Mb minimum RAM on the host machine is required.
(In particular, I could use help understanding the ttylinux networking
problem I'm currently seeing.)
The README:
-- begin --
XenCD 1.0pre01 README
See the COPYRIGHT file for details of permissions granted for use.
--------
OVERVIEW
--------
XenCD is a bootable "live" CD running a combination of Xen and various
Linux distributions. After booting into the XenCD environment, the
user is able to switch between the main control domain and multiple,
distinct "virtual machines" running a different operating systems.
-----
USAGE
-----
Obtain a copy of the ISO file (see the "RESOURCES" section). Burn
that ISO file as a complete CD image, using a program like cdrecord or
Nero. Place the CD into an i386 PC and reboot, making the PC boot off
the CD.
The CD will boot into a GRUB menu, default to the XenCD demo option,
boot Xen, and then come up into a live Debian Linux environment
running from RAM. This environment is Xen's "dom0", the virtual
machine which has real access to the hardware, network, and xen
control services.
Alternately, since the XenCD runtime is implemented as a single
initrd, one can reuse the various pieces of the CD with any Linux boot
technology, such as PXE booting, USB drives, etc.
Once you are at a command prompt, the most common operations would be:
- Log in as the root user. There is no password on the root account.
- Switch to a new virtual terminal via Alt-F2 and Alt-F3.
- Switch to a Xen VM console via something like "xm console 1".
- Install new software using something like a "apt-get update &&
apt-get install PACKAGE" command line.
- Use any other helpful xm commands such as "xm create", "xm destroy",
etc.
- Review the files on the CD-ROM mounted at "/media/cdrom" in dom0.
-------
CAVEATS
-------
- EARLY, BUGGY RELEASE: This is a very early implementation with very
little testing in very few environments. Additionally, this
software is at the bare minimum needed to claim a functional Xen
demo.
- KNOW XEN ALREADY: You should be familiar with Xen usage and administration to
understand what's feasible and interesting to try using the tools
provided.
- HAVE LOTS OF RAM: This version of XenCD will just barely run on a
368Mb machine. 512Mb is recommended to be able to create additional
VMs.
- DHCP ONLY: dom0 will try to acquire its networking info via dhcp.
Static networking support is planned but not yet available.
- UDEV: dom0 runs udevd, not devfsd.
- RAM-ONLY RUNTIME: Since the dom0 environment runs entirely within
RAM, the software provided is limited. If you run out of memory,
you run out of disk and vice versa. Memory issues are more of an
issue here than in conventional live CDs (Knoppix, etc.)
- TEXT-ONLY: This is a text-oriented demo. A graphical demo
environment would be an excellent thing for the community. But a
graphical environment may be better implemented as a separate or
subproject. It should be noted the primary developer of XenCD has a
bias towards and an interest in server-oriented Xen environments.
- NO RUNTIME DOCS: dom0 has been stripped of most all its
documentation. Man pages will not work.
- ENGLISH ONLY: No thought or attention has been spent on
internationalization and localization issues. In some cases,
internationalization files are intentionally removed to reduce the
runtime image.
- UPDATE APT BEFORE USE: Run a 'apt-get update' before any 'apt-get
install' commands.
- NAME CHANGE LIKELY: The name "XenCD" is probably unauthorized use of
the Xen trademark. This project is likely to be renamed.
---------
RESOURCES
---------
Official XenCD homepage
- http://software.wordzoo.com/xencd
Official XenCD downloadable URL for "current release":
- http://files.wordzoo.com/xencd/xencd.iso.gz
Public subversion repository of XenCD software:
- svn://software.wordzoo.com/xencd/trunk
Mailing list:
- xen-devel@xxxxxxxxxxxxxxxxxxxxx
All discussion, questions, problems, concerns, accolades, etc should
be directed to the xen-devel mailing list.
Xen homepage:
- http://www.cl.cam.ac.uk/Research/SRG/netos/xen/
ttylinux homepage:
- http://www.minimalinux.org/ttylinux/
tomsrtbt homepage:
- http://www.toms.net/rb/
memtest86 homepage:
- http://www.memtest86.com/
--------------
IMPLEMENTATION
--------------
Media
- 50 Mb ISO (CD-ROM image)
- ISO9660 (level 2 + extensions) format
- GRUB boot (2.88 El Torito image)
- Components on CD (kernel, initrd, etc) should be suitable for
netbooting, USB drives, etc
Boot menu
- GRUB-based menu, text-only
- These options available:
- XenCD standard demo (default option)
- XenCD testing (verbose logging)
- ttylinux
- ttylinux using xenU kernel
- tomsrtbt
- memtest86
Xen
- Built from xeno-unstable.bk
- As of the date in the BUILT_* file
- Compiled with GCC 3.3.5 (and rest of toolchain from Debian sarge)
Initrd
- Runs as xen's dom0
- Read-write ramdisk
- Creates tmpfs 8Mb less than physical memory and copies all of initrd
into that tmpfs
dom0
- Runs entirely from RAM, media-agnostic
- Implemented as a large (70 Mb pre-compression) initrd
- custom /linuxrc+rcS, autostart xend, xensv
- debian dom0 is straight debootstrap sarge, with various bits rm
-rf'ed, plus xen-required packages (python-twisted, etc).
- pure text-mode apps installed. can apt-get other packages into the
ramdisk as needed.
- Built from straight Debian unstable bootstrap
with modifications:
- Replace exim4 with esmtp
- Replace syslogd+klogd with metalog
- Add Xen dependencies:
- bridge-utils
- iproute
- python
- python-twisted
- libcurl3
- Add some XenCD requirements:
- udev
- runit
- Add some system "almost-essentials":
- less
- lsof
- pciutils
- Add ssh
- Add chrony (for ntpd)
- Use debfoster at "required" level to manage package dependencies
- No suggested or recommended dependencies included
- Shrink runtime
- Remove "extra" documentation:
- /usr/share/doc except copyright
- /usr/share/info
- /usr/share/man
- /usr/lib/python2.3 prune:
- Remove all *.pyo and *.pyc files from
- Remove Twisted testing code
- Prune dpkg/apt status files
- Usage
- root password is blank by default
- Use nano or vi for editor
- See /var/log/everything/current for syslog
- devices managed by udev, most everything that physically exists
should have a /dev device node
-----------------------
ISO filesystem structure
------------------------
/BUILT_2005-01-26T07-45-32
/README
/COPYRIGHT
/boot/grub/menu.lst
/boot/grub/stage2_eltorito
/boot/isolinux/memdisk
/boot/xen
/boot/xen0-initrd
/boot/xen0-kernel
/boot/xenU-kernel
/boot/memtest.img
/boot/tomsrtbt.img
/boot/ttylinux.img
/ttylinux/USER-GUIDE
/ttylinux/rootfs.gz
/ttylinux/xen-rootfs
----
TODO
----
For release candidate
- Make ttylinux VMs network properly
- Testing on Dell 1650 + 440 BX
Next release
- Copy local version of linux-pristine above xen build directory so build
doesn't download every time
- Create an auto-build infrastructure wrapped around build-xencd
- Pull some configuration of the build-xencd script into command-line switches
- xen-stable/xen-testing builds
- Nightly builds
- Auto-update of download area with nightly builds
- Improve robustness of boot-time scripts:
- Use "yes/no" for all values
- Write a function to use for flow-control and conditionals instead
of repeating error-detection logic everywhere
- More bootprompt configuration of dom0
- doaptupdate: run apt-get update on boot
- staticnet: static networking setup (just dhcpc on dom0 now)
- timezone=XXX: support setting of timezone on the boot line
- "Fat" build with a few dozen more essential admin tools thrown in
- usbutils sysfsutils scsitools
gpart parted grub hdparm
evms-curses reiserfsprogs strace sysstat hexcurse
iptables tethereal dhcp
rsync netcat curl host dnsutils ipsc
- Replace xend_config script with bash/python version (perl currently)
- Determine if color or non-color boot will be the default
- Move configuration variables to a configuration file
- Proofread documentation
- Incorporate first round of community feedback
Server wishlist
- Autostart of xen domain configurations found in storage
- Autoconfiguration of a reasonable dom0 network (bridge+route)
- Per virtual-host network configuration (private bridge, separate
iptables rules, packet accounting)
- Media discovery of local storage (hd*/sd*/usb/lvm)
- Lockdown security appropriately:
- Setting of a root password (crypted entry on GRUB prompt?)
- Allow skip of ssh startup via boot parameter
- xensv
- Media discovery of network storage (nfs, iscsi)
- Use runit for auto-restarting and logging daemons:
- xend, xensv
- openssh
- Use of debian packages for install of xen into dom0 (uses cp -a now)
- Netboot support
Demo wishlist
- Support extended vga modes in dom0 (currently non-operational,
xen-devel thread died twice)
- Address community desires for graphical demo
- Support discovery and automounting of USB drives
- Support for 256Mb host machines, if at all possible
- Build the ttylinux rootfs at runtime, via modifications to a
pristine ttylinux 4.4 tree
- Additional rootfs examples:
- Debian unstable debootstrap
- Fedora
- Debian stable debootstrap
- Freebsd stable
- Plan 9
- many other possibilities
- Additional GRUB menu entries:
- Debian installer
- FreeDOS
- ReactOS
- DVD version with multiple full-featured environments available
-- end --
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
Tool for open source databases. Create drag-&-drop reports. Save time
by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
Download a FREE copy at http://www.intelliview.com/go/osdn_nl
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/xen-devel
|