Editing Creating OpenVZ LiveCD based on Centos 4.4

Jump to: navigation, search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 28: Line 28:
 
This part contains detailed description of LiveCD creation. I've removed the output of some
 
This part contains detailed description of LiveCD creation. I've removed the output of some
 
commands in order to simplify the reading.
 
commands in order to simplify the reading.
 
Note: before proceed with commands below, one needs to disable SE Linux on the host, otherwise rpm operations
 
in cdroot-ed environment described later on will fail due to inability to restore security file context. So, please,
 
do:
 
<pre>
 
# setenforce 0
 
</pre>
 
This will put SE linux in so-called 'permissive' mode, where all the blockers will be substituted by warnings.
 
If you wanna get rid of the warnings (rather annoying), the only way to do is to edit <tt>/etc/sysconfig/selinux</tt>
 
to read <tt>SELINUX=disabled</tt> and then reboot the host.
 
  
 
=== Creating booted LiveCD root filesystem ===
 
=== Creating booted LiveCD root filesystem ===
Line 74: Line 64:
  
 
In order to decompress these images we need <tt>unsquashfs</tt> tool. <tt>squashfs</tt> source archive contains
 
In order to decompress these images we need <tt>unsquashfs</tt> tool. <tt>squashfs</tt> source archive contains
patches for various kernel versions (to be able to mount <tt>squashfs</tt>) and user-space tools for compressing usual filesytem into <tt>squashfs</tt> filesystem and for decompressing it back. Well, we don't need kernel patches right now (but we will need them later), we only want to install <tt>squashfs</tt> user-space tools.
+
patches for various kernel versions (to be able mount <tt>squashfs</tt>), and user-space tools for compressing usual filesytem into <tt>squashfs</tt> filesystem and for decompressing it back. Well, we don't need kernel patches right now (but we will need them later), we only want to install <tt>squashfs</tt> user-space tools:
Here is '''an important''' note. We want, our LiveCD to be able to boot original Centos 4.4 kernel. This original kernel doesn't support
 
<tt>squashfs</tt> of version <tt>3</tt>. Consequently we use <tt>sqashfs2.2-r2</tt> for <tt>mksquasfs</tt> tool, but for <tt>unsquashfs</tt> tool and later for compiling fresh OpenVZ kernels with <tt>squashfs</tt> support we use <tt>sqashfs3.2-r2</tt> sources/patches, because they are back compatible with <tt>sqashfs v2</tt>.
 
 
<pre>
 
<pre>
# wget http://belnet.dl.sourceforge.net/sourceforge/squashfs/squashfs2.2-r2.tar.gz
+
# wget wget http://switch.dl.sourceforge.net/sourceforge/squashfs/squashfs3.2-r2.tar.gz
# tar xzf squashfs2.2-r2.tar.gz
 
# cd squashfs2.2-r2/squashfs-tools/
 
# make
 
cc mksquashfs.o read_fs.o sort.o -lz -o mksquashfs
 
# cp mksquashfs /usr/bin/
 
 
 
# cd -
 
# wget http://belnet.dl.sourceforge.net/sourceforge/squashfs/squashfs3.2-r2.tar.gz
 
 
# tar xzf squashfs3.2-r2.tar.gz
 
# tar xzf squashfs3.2-r2.tar.gz
 
# cd squashfs3.2-r2/squashfs-tools/
 
# cd squashfs3.2-r2/squashfs-tools/
Line 92: Line 72:
 
cc mksquashfs.o read_fs.o sort.o -lz -lpthread -lm -o mksquashfs
 
cc mksquashfs.o read_fs.o sort.o -lz -lpthread -lm -o mksquashfs
 
cc unsquashfs.o -lz -o unsquashfs
 
cc unsquashfs.o -lz -o unsquashfs
 +
# cp mksquashfs /usr/bin/
 
# cp unsquashfs /usr/bin/
 
# cp unsquashfs /usr/bin/
# cd -
+
# cd ~/workbench
 
</pre>
 
</pre>
 
Well, having the intruments in hand, why not extract the images? Create a directory, called <tt>livecd-root</tt>,
 
Well, having the intruments in hand, why not extract the images? Create a directory, called <tt>livecd-root</tt>,
Line 102: Line 83:
 
# mkdir livecd-root
 
# mkdir livecd-root
  
# for f in bin etc lib root sbin usr var; do \
+
# unsquashfs ovz-livecd/base/bin.mo
    unsquashfs ovz-livecd/base/$f.mo; \
+
# mv squashfs-root/bin/ livecd-root/
    mv squashfs-root/$f/ livecd-root; \
+
# rm -rf squashfs-root
    rm -rf squashfs-root; \
+
 
  done
+
# unsquashfs ovz-livecd/base/etc.mo
</pre>
+
# mv squashfs-root/etc/ livecd-root/
 +
# rm -rf squashfs-root
 +
 
 +
# unsquashfs ovz-livecd/base/lib.mo
 +
# mv squashfs-root/lib/ livecd-root/
 +
# rm -rf squashfs-root
 +
 
 +
# unsquashfs ovz-livecd/base/root.mo  
 +
# mv squashfs-root/root/ livecd-root/
 +
# rm -rf squashfs-root
 +
 
 +
# unsquashfs ovz-livecd/base/sbin.mo
 +
# mv squashfs-root/sbin/ livecd-root/
 +
# rm -rf squashfs-root
  
Be patient, this will take a few minutes.
+
# unsquashfs ovz-livecd/base/usr.mo    # this action takes some time, be patient ;)
 +
# mv squashfs-root/usr/ livecd-root/
 +
# rm -rf squashfs-root
  
 +
# unsquashfs ovz-livecd/base/var.mo
 +
# mv squashfs-root/var/ livecd-root/
 +
# rm -rf squashfs-root
 +
</pre>
 
Yet we have nearly complete root filesystem of '''booted''' LiveCD in <tt>livecd-root</tt> directory. However some things
 
Yet we have nearly complete root filesystem of '''booted''' LiveCD in <tt>livecd-root</tt> directory. However some things
 
are missing, and I guess you know what are they: <tt>/dev</tt>, <tt>/proc</tt>, <tt>/sys</tt>, <tt>/tmp</tt> and <tt>/boot</tt> directories. We need them, because some tools (<tt>rpm</tt>, <tt>bash</tt>, ...) will not work without them in chrooted environment later.
 
are missing, and I guess you know what are they: <tt>/dev</tt>, <tt>/proc</tt>, <tt>/sys</tt>, <tt>/tmp</tt> and <tt>/boot</tt> directories. We need them, because some tools (<tt>rpm</tt>, <tt>bash</tt>, ...) will not work without them in chrooted environment later.
 
<pre>
 
<pre>
# cd livecd-root
+
# mkdir root/dev
# mkdir dev
+
# cp -a /dev/* root/dev
# cp -a /dev/* dev/
+
# mkdir root/proc
# mkdir proc
+
# mount -t proc proc root/proc/
# mount -t proc proc proc/
+
# mkdir root/sys
# mkdir sys
+
# mount -t sysfs sysfs root/sys/
# mount -t sysfs sysfs sys/
+
# mkdir root/tmp
# mkdir tmp
+
# mkdir root/boot
# mkdir boot
 
# cd -
 
 
</pre>
 
</pre>
  
That's it. We have '''bootstrapped''' LiveCD root filesystem in <tt>livecd-root</tt> directory.
+
That's it. We have '''booted''' LiveCD root filesystem in <tt>livecd-root</tt> directory.
 
Now we can <tt>chroot</tt> in this directory and install all needed packages. But what
 
Now we can <tt>chroot</tt> in this directory and install all needed packages. But what
 
packages do we need?
 
packages do we need?
Line 216: Line 214:
 
CONFIG_SQUASHFS=m
 
CONFIG_SQUASHFS=m
 
CONFIG_SQUASHFS_EMBEDDED=n
 
CONFIG_SQUASHFS_EMBEDDED=n
 +
# cd ~/workbench/
 
</pre>
 
</pre>
 
After all efforts, building the RPM-package is very easy:
 
After all efforts, building the RPM-package is very easy:
 
<pre>
 
<pre>
# cd /usr/src/redhat/SPECS/
 
 
# rpmbuild --target=i686 -ba kernel-ovz.spec
 
# rpmbuild --target=i686 -ba kernel-ovz.spec
 
</pre>
 
</pre>
 
If everything goes smoothly, in several tens of minutes depending on the power of your node you willl have OpenVZ kernel RPM-package with <tt>squashfs</tt> support. Let's copy it to our local directory <tt>to_booted_livecd/kernels/</tt>:
 
If everything goes smoothly, in several tens of minutes depending on the power of your node you willl have OpenVZ kernel RPM-package with <tt>squashfs</tt> support. Let's copy it to our local directory <tt>to_booted_livecd/kernels/</tt>:
 
<pre>
 
<pre>
# cd ~/workbench/
 
 
# ls /usr/src/redhat/RPMS/i686/
 
# ls /usr/src/redhat/RPMS/i686/
 
kernel-smp-2.6.18-ovz028stab035.1.i686.rpm
 
kernel-smp-2.6.18-ovz028stab035.1.i686.rpm
Line 232: Line 229:
 
OpenVZ LiveCD supports several kernels. So, the actions mentioned above should be accomplished to all kernels,
 
OpenVZ LiveCD supports several kernels. So, the actions mentioned above should be accomplished to all kernels,
 
that you need on LiveCD. In this article I skip the description of building RPMS for all kernels. All description
 
that you need on LiveCD. In this article I skip the description of building RPMS for all kernels. All description
below are based on <tt>028stab035</tt> kernel, that has been just build above. But some important differences in building
+
below are based on <tt>028stab035</tt> kernel, that has been just build above.
kernel of version other then 2.6.18 one is summarized below.
 
==== Peculiarities of building 2.6.9-rhel4 ====
 
* You should also include this patch (http://git.openvz.org/?p=linux-2.6.18-openvz;a=commit;h=681d0b65dedd54d8c716cef56418ac1a478f94da)
 
in building process. Hopefully will be fixed in <tt>2.6.9-044stab044.8</tt> kernel.
 
* Use <tt>unionfs 1.0.14</tt>, but not <tt>unionfs 1.1.5</tt>, as offered at its official site!
 
* Small problems while building <tt>unionfs</tt>: arguments of <tt>vfs_permissions()</tt>. Just add <tt>NULL</tt>
 
to appropriate places.
 
 
 
==== Peculiarities of building 2.6.18-rhel5 ====
 
* Note, <tt>squashfs</tt> patch is already there, but you should use <tt>3.2</tt>! :)
 
* While building <tt>unionfs</tt> some small fixes: <tt>i_blksize</tt> field is missing in <tt>inode</tt> structure, <tt>ino_t</tt> should be changed to <tt>u64</tt> in some functions.
 
 
 
==== Peculiarities of building 2.6.20 ====
 
* Only <tt>unionfs</tt> <tt>2.0</tt> is available for 2.6.20 kernel and it is distributed as a patch. Consequently modify <tt>spec</tt>-file and configs while building the kernel
 
* <tt>unionfs</tt> <tt>2.0</tt> doesn't support unionctl. Consequently you have to modify <tt>liblinuxlive</tt> file on <tt>initrd</tt> image to mount all branches at once, but don't add them by ioctls.
 
  
 
=== Unionfs kernel module ===
 
=== Unionfs kernel module ===
Line 339: Line 321:
  
 
=== Install all these finally ===
 
=== Install all these finally ===
We have all components that will be on '''booted''' LiveCD ready. Let's install them
+
TODO
in <tt>chrooted</tt> environment. But before uninstall <tt>lsctp-tools</tt> package,
+
rpms/
because these tools need kernel version prior to 2.6.10. Then update <tt>sqlite</tt>
+
rpms/kernel
package. Also we need to remove some other packages in order to free some disk space:
+
rpms/tools
I've removed <tt>openoffice.org</tt>, <tt>gimp</tt>, <tt>dia</tt>, <tt>gnome-games</tt>,
+
rpms/update
<tt>tetex</tt>, <tt>latex</tt>, <tt>k3b</tt> and printing related packages:
 
<pre>
 
# cp -r to_booted_livecd/ livecd-root/tmp/
 
# chroot livecd-root/
 
  
# rpm -e lksctp-tools-1.0.2-6.4E.1.i386
+
Uninstall <tt>lsctp-tools</tt> package, because these tools they need kernel version prior to 2.6.10:
 
 
# rpm -e openoffice.org-libs openoffice.org
 
# rpm -e gimp-data-extras xsane-gimp gimp-print-plugin gimp-print-utils
 
# rpm -e gimp gimp-print gimp-help gimp-gap
 
# rpm -e dia
 
# rpm -e planner
 
# rpm -e gnome-games
 
# rpm -e tetex-latex jadetex xmltex passivetex tetex tetex-afm \
 
tetex-dvips tetex-fonts tetex-xdvi
 
# rpm -e k3b
 
# rpm -e foomatic Omni Omni-foomatic system-config-printer \
 
system-config-printer-gui hal-cups-utils desktop-printing
 
 
 
# cd /tmp/to_booted_livecd/
 
 
 
# rpm -Uvh updates/sqlite-3.3.6-2.i386.rpm
 
 
 
# rpm -ivh kernels/kernel-smp-2.6.18-ovz028stab035.1.i686.rpm
 
# rpm -ivh tools/*.rpm
 
# rpm -ivh template-metadatas/*.rpm
 
</pre>
 
 
 
Copy precreated templates to appropriate place:
 
<pre>
 
# cp  precreated/* /vz/template/cache/
 
</pre>
 
Add <tt>unionfs.ko</tt> to other kernel modules and run <tt>depmod</tt>:
 
 
<pre>
 
<pre>
# mkdir /lib/modules/2.6.18-ovz028stab035.1-smp/kernel/fs/unionfs
+
rpm -e lksctp-tools-1.0.2-6.4E.1.i386
# cp unionfs-modules/2.6.18/unionfs.ko /lib/modules/2.6.18-ovz028stab035.1-smp/kernel/fs/unionfs/
 
# depmod 2.6.18-ovz028stab035.1-smp
 
# exit
 
exit
 
 
</pre>
 
</pre>
While being in chrooted environment bash history was written to <tt>~/.bash_history</tt> file.
+
Uninstall kernel-module-xfs package, because these modules are compiled against original
Clean it:
 
 
<pre>
 
<pre>
# rm livecd-root/root/.bash_history
+
rpm -e kernel-module-xfs-2.6.9-42.livecd.c4-0.1-3.i686
 
</pre>
 
</pre>
Here we have to make one step to workaround [[Checkpointing and live migration]] problem. The thing is that at the moment
 
chekpointing isn't supported on <tt>unionfs</tt> filesystem ([http://bugzilla.openvz.org/show_bug.cgi?id=606  Bug #606]).
 
But we want of course checkpoiting to work on LiveCD. If we mount <tt>tmpfs</tt> on <tt>/vz/private/</tt> on '''booted''' LiveCD,
 
then all newly created VEs reside on <tt>tmpfs</tt> and checkpointing works. Moreover we do not introduce any additional memory usage,
 
because even without <tt>tmpfs</tt> all VEs reside in RAM (they contain new/updated files for <tt>unionfs</tt>).
 
  
Create <tt>/vz/private</tt> directory, later, while modifying initrd image we will add the line that will mount <tt>tmpfs</tt>
+
cd /tmp/rpms/kernel
on this directory:
+
rpm -ivh kernel-smp-2.6.18-ovz028stab033.1.i686.rpm
<pre>
+
rpm -e kernel-2.6.9-42.livecd.c4
mkdir livecd-root/vz/private/
 
</pre>
 
At the moment vzquota doesn't support <tt>tmpfs</tt> ([http://bugzilla.openvz.org/show_bug.cgi?id=558  Bug #558]).
 
We're working on this problem, but for now '''switching the disk quota off''' in <tt>/etc/vz/vz.conf</tt>: <tt>DISK_QUOTA=no</tt>.
 
But when disk quota is off <tt>vzmigrate</tt> fails! ;) This is the [http://bugzilla.openvz.org/show_bug.cgi?id=558  Bug #512].
 
So, don't forget to apply the patch attached to this bug report to <tt>vzmigrate</tt>.
 
  
'''Booted''' LiveCD filesystem is ready, congratulations!
+
cd /tmp/rpms/updates
 +
rpm -Uvh sqlite-3.3.6-2.i386.rpm
  
=== Compressing '''booted''' LiveCD filesystem ===
+
<tt>
Since <tt>mksquashfs</tt> tool is already installed we can simply use it to create
+
# rpm -ivh vz*
<tt>*.mo</tt> files:
+
Preparing...               ########################################### [100%]
<pre>
+
  1:vzrpm44                ########################################### [  8%]
# rm -f ovz-livecd/base/*.mo
+
  2:vzrpm44-python        ########################################### [ 15%]
# for f in bin etc lib root sbin usr var vz; do \
+
  3:vzrpm43-python        ########################################### [ 23%]
    mksquashfs livecd-root/$f ovz-livecd/base/$f.mo -keep-as-directory; \
+
  4:vzrpm43                ########################################### [ 31%]
  done
+
  5:vzyum                  ########################################### [ 38%]
</pre>
+
  6:vzquota                ########################################### [ 46%]
 
+
  7:vzctl-lib             ########################################### [ 54%]
=== Vmlinux, initrd and isolinux.cfg ===
+
  8:vzctl                  ########################################### [ 62%]
The next step is to force <tt>isolinux</tt> (cdrom boot loader) to boot OpenVZ kernel.
+
  9:vzpkg                  ########################################### [ 69%]
First, copy kernel image to OpenVZ CD. It is important to give '''short name''' (not greater
+
   10:vztmpl-centos-4       ########################################### [ 77%]
than 8 characters) to kernel image, otherwise <tt>isolinux</tt> will not see it.
+
   11:vztmpl-fedora-core-3   ########################################### [ 85%]
<pre>
+
  12:vztmpl-fedora-core-4   ########################################### [ 92%]
# cp livecd-root/boot/vmlinuz-2.6.18-ovz028stab035.1-smp ovz-livecd/boot/ovz18
+
  13:vztmpl-fedora-core-5   ########################################### [100%]
</pre>
+
</tt>
Modify initrd image. More precisely, we need to add OpenVZ kernel modules there
 
and apply small patches to <tt>liblinuxlive</tt> file. Initrd image that goes with Centos 4.4 is
 
of size 40Mb. OpenVZ LiveCD will contain several kernels, so initrd should have several sets of
 
kernel modules (for each kernel) and 40Mb isn't enough in this case. I created an initrd of size 100Mb.
 
Don't forget to update <tt>ramdisk_size</tt> in <tt>isolinux.cfg</tt> file later!
 
 
 
Creating "big" initrd with original content:
 
<pre>
 
# mkdir initrd.d
 
# cp ovz-livecd/boot/initrd.gz initrd.d/initrd-old.gz
 
# cd initrd.d/
 
# mkdir mount-old
 
# gunzip initrd-old.gz
 
# mount -o loop initrd-old mount-old/
 
# dd if=/dev/zero of=initrd bs=1048576 count=100
 
# mke2fs initrd
 
initrd is not a block special device.
 
Proceed anyway? (y,n) y
 
...
 
# mkdir mount
 
# mount -o loop initrd mount/
 
# cp -a mount-old/* mount/
 
# umount mount-old/
 
# rm -rf mount-old initrd-old
 
</pre>
 
Copy modules to initrd:
 
<pre>
 
# cp -r ../livecd-root/lib/modules/2.6.18-ovz028stab035.1-smp/ mount/lib/modules/
 
# rm -rf mount/lib/modules/2.6.18-ovz028stab035.1-smp/build                # we don't neet it on initrd image
 
</pre>
 
I also delete some not necessary kernel modules from initrd to free space.
 
They are stil on CD, so init sctipts will be able to load them later.
 
 
 
initrd image, that goes with Centos 4.4 LiveCD doesn't load cdrom kernel modules.
 
It works well for CentOS kernel, because cdrom support is built-in there.
 
But OpenVZ kernel supports cdrom (usual ide cdrom) via kernel module.
 
Consequetnly we need to apply the following patch to <tt>liblinuxlive</tt> file:
 
<pre>
 
--- liblinuxlive.orig   2006-08-19 08:53:11.000000000 +0400
 
+++ liblinuxlive       2007-07-02 17:50:34.000000000 +0400
 
@@ -337,6 +337,9 @@ modprobe_essential_modules()
 
{
 
    echolog "starting loop device support"
 
    modprobe_module loop max_loop=32
 
+   echolog "starting cdrom support"
 
+  modprobe_module cdrom
 
+  modprobe_module ide-cd
 
    echolog "starting cdrom filesystem support"
 
    modprobe_module isofs
 
    echolog "starting squashfs support"
 
</pre>
 
As mentioned earlier we want to mount <tt>tmpfs</tt> on /vz/private automatically. Just apply this patch to
 
<tt>liblinuxlive</tt> file:
 
<pre>
 
--- liblinuxlive.orig-fstab    2007-07-02 17:50:34.000000000 +0400
 
+++ mount/liblinuxlive  2007-07-03 12:33:30.000000000 +0400
 
@@ -414,6 +414,7 @@ activate_fstab()
 
    echo "tmpfs            /                tmpfs      defaults        0   0" >$FSTAB
 
    echo "devpts          /dev/pts        devpts      gid=5,mode=620  0  0" >>$FSTAB
 
    echo "proc            /proc            proc        defaults        0  0" >>$FSTAB
 
+  echo "tmpfs            /vz/private      tmpfs      defaults        0  0" >>$FSTAB
 
 
 
    # now done by fstab-sync
 
    # list_cdrom_devices | while read DEVICE; do
 
</pre>
 
Finishing actions with initrd:
 
<pre>
 
# sync
 
# umount mount/
 
# gzip initrd
 
# cp initrd.gz ../ovz-livecd/boot/initrd.gz
 
# cd ..
 
</pre>
 
Now we should modify <tt>ovz-livecd/isolinux.cfg</tt> file, that controls <tt>isolinux</tt> boot loader.
 
We inform boot loader, that new kernel was added by introducing the following changes (in diff format):
 
<pre>
 
--- ovz-livecd/isolinux.cfg.orig   2006-08-19 08:53:09.000000000 +0400
 
+++ ovz-livecd/isolinux.cfg    2007-07-02 19:10:51.000000000 +0400
 
@@ -1,5 +1,5 @@
 
display boot/splash.cfg
 
-default linux
 
+default ovz18
 
prompt 1
 
timeout 300
 
F1 boot/help1.txt
 
@@ -11,5 +11,9 @@ label linux
 
kernel boot/vmlinuz
 
append max_loop=32 vga=791 initrd=boot/initrd.gz init=linuxrc load_ramdisk=1 prompt_ramdisk=0 ramdisk_size=40000 root=/dev/ram0 rw rhgb quiet
 
 
 
+label ovz18
 
+kernel boot/ovz18
 
+append max_loop=32 vga=791 initrd=boot/initrd.gz init=linuxrc load_ramdisk=1 prompt_ramdisk=0 ramdisk_size=102400 root=/dev/ram0 rw rhgb
 
+
 
label memtest
 
kernel boot/memtest
 
 
 
</pre>
 
 
 
Also '''don't forget''' to change <tt>ramdisk_size</tt> to 102400 for all kernels including Centos 4.4 default!
 
 
 
And I suggest to remove <tt>quiet</tt> parameter, to see what happens: it will help greatly if some problem will happen.
 
 
 
=== Embellishment ===
 
If you want to release LiveCD to other people some "embelishments" should be added.
 
 
 
First, edit <tt>splash.cfg</tt>, <tt>help1.txt</tt>, <tt>help2.txt</tt> and <tt>help3.txt</tt>
 
files (that are in <tt>~/workbench/ovz-livecd/boot/help</tt> directory) to contain appropriate information.
 
These messages appear on the LiveCD initial boot: they help to choose kernel and kernel options.
 
 
 
Also, you can note, that CentOS logo appears at this moment. This logo resides in <tt>ovz-livecd/boot/splash.lss</tt>
 
file. I added OpenVZ logo there. The following tools will help you: <tt>lss16toppm</tt>, <tt>ppmtolss16</tt> and
 
of course <tt>gimp</tt> :)
 
 
 
One more thing we change is default desktop background. It resides in <tt>usr/share/backgrounds/images/default.png</tt>.
 
I added OpenVZ logo there.
 
 
 
=== Creating ISO ===
 
Centos 4.4 LiveCD creators were very gentle and have placed <tt>make_iso.sh</tt> script on CD.
 
Using this script, it is very easy to create iso:
 
<pre>
 
# cd ovz-livecd
 
# ./make_iso.sh ../CentOS-4.4-i386-OpenVZ-LiveCD.iso
 
</pre>
 
 
 
== Debugging LiveCD ==
 
If you have trouble with created OpenVZ LiveCD, boot the kernel with
 
<pre>
 
vga=0 debug
 
</pre>
 
command line options. It will help you to diagnose the problem more precisely.
 
Also it can be useful to redirect kernel output to serial console:
 
<pre>
 
console=ttyS0,115200 console=tty
 
</pre>
 
 
 
See more at [[remote console setup]].
 
  
 
== External Links ==
 
== External Links ==
Line 567: Line 367:
 
* [http://squashfs.sourceforge.net/ squashfs website]
 
* [http://squashfs.sourceforge.net/ squashfs website]
 
* [http://www.filesystems.org/project-unionfs.html uninonfs official homepage]
 
* [http://www.filesystems.org/project-unionfs.html uninonfs official homepage]
 
[[Category: HOWTO]]
 
[[Category: Live CD]]
 

Please note that all contributions to OpenVZ Virtuozzo Containers Wiki may be edited, altered, or removed by other contributors. If you don't want your writing to be edited mercilessly, then don't submit it here.
If you are going to add external links to an article, read the External links policy first!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)