Paravirtualized Gentoo 2009 domU Using Debian Lenny

Want to support HowtoForge? Become a subscriber!
 
Submitted by jahil (Contact Author) (Forums) on Thu, 2009-07-23 10:05. :: Debian | Xen | Virtualization

Paravirtualized Gentoo 2009 domU Using Debian Lenny

This guide will help you to create gentoo paravirtualized xen guest under Debian Lenny. Since Gentoo 2008.0 release is deprecated, so we will use current gentoo stage.

 

Base

dd if=/dev/zero of=gentoo.img count=4096 bs=1M

mkfs.ext3 gentoo.img

mount -o loop gentoo /mnt/gentoo

 

Gentoo Stage

wget http://mirrors.kernel.org/gentoo/releases/amd64/current/stage3-amd64-20090702.tar.bz2

tar jxvf stage3-amd64-20090702.tar.bz2 -C /mnt/gentoo

 

Modules

mkdir /mnt/gentoo/lib/modules

cp -R /lib/modules/2.6.26-2-xen-amd64 /mnt/gentoo/lib/modules

 

Chroot Base

mount -t proc none /mnt/gentoo/proc

mount -o bind /dev /mnt/gentoo/dev

cp -L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf

chroot /mnt/gentoo /bin/bash

env-update

source /etc/profile

emerge --sync

emerge dhcp

emerge syslog-ng

rc-update add syslog-ng default

emerge dcron

rc-update add dcron default

nano -w /etc/conf.d/hostname

nano /etc/conf.d/net

config_eth0=( "192.168.1.100 netmask 255.255.255.0" )
routes_eth0=( "default gw 192.168.1.254" )
#config_eth0=( "dhcp" )

nano /etc/fstab

/dev/sda1 / ext3 noatime 0 1
proc /proc proc defaults 0 0
shm /dev/shm tmpfs nodev,nosuid,noexec 0 0

passwd

exit

 

Configuration

kernel      = '/boot/vmlinuz-2.6.26-2-xen-amd64'
ramdisk     = '/boot/initrd.img-2.6.26-2-xen-amd64'
memory      = '256'
root        = '/dev/sda1 ro'
disk        = ['file:/xen/gentoo.img,sda1,w',]
name        = 'Gentoo 2009'
dhcp        = 'dhcp'
vif         = [ '' ]
extra = 'xencons=tty'
on_poweroff = 'destroy'
on_reboot   = 'restart'
on_crash    = 'restart'

 

Problems with /proc

Fixing this is just a matter of commenting out the section of /sbin/rc that attempts to mount /proc begining at around line 217 like this:

#       check_statedir /proc
#
#       ebegin "Mounting proc at /proc"
#       if [[ ${RC_USE_FSTAB} = "yes" ]] ; then
#               mntcmd=$(get_mount_fstab /proc)
#       else
#               unset mntcmd
#       fi
#       try mount -n ${mntcmd:--t proc proc /proc -o noexec,nosuid,nodev}
#       eend $?

You’ll also need to comment the section attempting to mount /sys as well, or the next time you boot, you’ll get the same error with a different mount point failing.

#       if [ "$(get_KV)" -ge "$(KV_to_int '2.6.0')" ] ; then
#               if [[ -d /sys ]] ; then
#                       ebegin "Mounting sysfs at /sys"
#                       if [[ ${RC_USE_FSTAB} = "yes" ]] ; then
#                               mntcmd=$(get_mount_fstab /sys)
#                       else
#                               unset mntcmd
#                       fi
#                       try mount -n ${mntcmd:--t sysfs sysfs /sys -o noexec,nosuid,nodev}
#                       eend $?
#               else
#                       ewarn "No /sys to mount sysfs needed in 2.6 and later kernels!"
#               fi
#       fi

Please do not use the comment function to ask for help! If you need help, please use our forum.
Comments will be published after administrator approval.