Hi All,
On Sat, Dec 19, 2009 at 16:50, Andy Smith <andy(a)bitfolk.com> wrote:
Hello,
On Wed, Dec 09, 2009 at 11:51:10AM +0000, Andy Smith wrote:
Aside from the known issues with newer Ubuntu
kernels not working on
the Xen hypervisor from Debian Lenny (which is what BitFolk uses),
there also appears to be a lack of compatibility between newer
releases of Ubuntu and older kernels:
https://bugs.launchpad.net/ubuntu/+source/mountall/+bug/447747
This will leave you in the position of not being able to boot with
the supplied kernel and not being able to revert to a kernel from
Hardy or Lenny.
Just FYI at least one customer has managed to compile an upstream
kernel.org kernel that works on BitFolk and allows you to use the
latest releases of Ubuntu.
I am hoping they will speak up here at some point about what they
did to make it work :) but if not then I would hope to find some
time to investigate it myself.
This describes my experience moving from ubuntu 8.04 LTS (hardy) to
9.10 by first upgrading to the stock
kernel.org 2.6.32 manually. Be
warned this happened two weeks ago so I may be leaving important
details out. If you do something like this please proceed with caution
and have backups!
This also presumes you have a kernel that has the disks accessible
from /dev/xvdaX, earlier kernels might be using something different?
Generally speaking I used this guide with make-kpkg
https://help.ubuntu.com/community/Kernel/Compile#AltBuildMethod
I retained my old configuration as much as possible choosing defaults,
selecting everything related to xen, that is to say at minimum:
CONFIG_XEN=y
CONFIG_XEN_MAX_DOMAIN_MEMORY=8
CONFIG_XEN_SAVE_RESTORE=y
CONFIG_XEN_BLKDEV_FRONTEND=y
CONFIG_NETXEN_NIC=m
CONFIG_XEN_NETDEV_FRONTEND=y
CONFIG_HVC_XEN=y
CONFIG_XEN_BALLOON=y
CONFIG_XEN_SCRUB_PAGES=y
CONFIG_XEN_DEV_EVTCHN=y
CONFIG_XENFS=y
CONFIG_XEN_COMPAT_XENFS=y
CONFIG_XEN_SYS_HYPERVISOR=y
It is also essential to include the ext4 driver in the kernel and not
as a module so:
CONFIG_EXT4_FS=y
CONFIG_EXT4_FS_XATTR=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_EXT4_FS_SECURITY=y
# CONFIG_EXT4_DEBUG is not set
Setting compression of the kernel to anything other than GZ will
probably fail with pygrub (I tried LZMA) so:
CONFIG_KERNEL_GZIP=y
# CONFIG_KERNEL_BZIP2 is not set
# CONFIG_KERNEL_LZMA is not set
However because of the deprecation of the arch/xen there are some
extra details to follow:
1. ARCH=i386 has to be set
2. Given it is a "cross" arch build I couldn't get the --initrd flag
to work properly so:
ARCH=i386 fakeroot make-kpkg --append-to-version=-xen kernel-image
kernel-headers
Even with the arch set I ended up with linux-xenu-2.6.32-xen as the
package name, make-kpkg seems to read info from the currently running
system.
Install the resulting packages with dpkg.
Now to the configuration of the system:
1. hvc0 must be set up as with getty
add on a single line "hvc0" to /etc/securetty
2. ubuntu 8.04 needs a hvc0 file in /etc/event.d [we'll get to 9.10 in
due course]
copy tty1 to hvc0 and rename all occurrences of tty1 to hvc0
3. presuming pygrub all round? anyway modify /boot/grub/menu.lst to
contain as first/boot entry (leave your old kernel inplace!):
title Ubuntu 8.04, kernel 2.6.32-xen
root (hd0,0)
kernel /boot/vmlinuz-2.6.32-xen root=/dev/xvda1 xencons=hvc0
4. Seen as we don't have an initrd, uuid's are out, so modify /etc/fstab to
/dev/xvda1 / ext3 defaults,noatime,nodiratime 0 1
/dev/xvda2 swap swap defaults 0 0
5. Login to console.*.bitfolk.co.uk and try a reboot, if it goes wrong
6. If it works do-release-upgrade's config needs to be updated to look
at non-lts releases,
so set Prompt=normal in /etc/update-manager/release-upgrades.
Then a few passes are required, don't reboot between upgrades,
different things may break!
7. Copy /etc/init/tty1.conf to /etc/init.d/hvc0.conf and replace tty1
with hvc0, /etc/event.d is no longer used in 9.10.
8. Reboot again from the console.
Finally as gcc went from 4.1.x to 4.4.1, after successfully upgrading
to 9.10, I did a another build with the same configuration. This time
an initrd could be built, so I guess a uuid/initrd booting config
could be restored. However all I did was change from ext3 to ext4 in
fstab. Don't enable extents or anything ext4-only given pygrub still
needs to be able to access your /boot folder! At least delayed
allocation is free :)
Best of luck! If any more details are needed, please drop me an email!
Cheers,
Andy
--
http://bitfolk.com/ -- No-nonsense VPS hosting
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
iEYEAREDAAYFAkstBG4ACgkQIJm2TL8VSQvmmwCfY1itRcc+8uzHC3FyAyjSOSzq
7NoAn0JPcW6MjAuceJ0xizYdi+IQYjW6
=bRmi
-----END PGP SIGNATURE-----
_______________________________________________
users mailing list
users(a)lists.bitfolk.com
https://lists.bitfolk.com/mailman/listinfo/users
--
David Connolly