Linux/Xen/Building Xen DomU images: Difference between revisions
Line 54: | Line 54: | ||
# started until it is shut down again. | # started until it is shut down again. | ||
start on stopped rc RUNLEVEL=[2345] and ( | start on stopped rc RUNLEVEL=[2345] and ( | ||
not-container or | not-container or | ||
container CONTAINER=lxc or | container CONTAINER=lxc or | ||
container CONTAINER=lxc-libvirt) | container CONTAINER=lxc-libvirt) | ||
stop on runlevel [!2345] | stop on runlevel [!2345] | ||
respawn | respawn | ||
exec /sbin/getty -8 38400 hvc0 | exec /sbin/getty -8 38400 hvc0 | ||
</syntaxhighlight> | |||
The default udev rules for 13.10 ignore Xen generated MAC addresses so you won't get a '/etc/udev/rules.d/70-persistent-net.rules' This causes your network interfaces not to come up. | |||
Edit '/lib/udev/rules.d/75-persistent-net-generator.rules' and comment these lines. Here's the changes in patch/diff format. | |||
<syntaxhighlight lang="diff"> | |||
@@ -21,7 +21,7 @@ KERNEL!="eth*|ath*|wlan*[0-9]|msh*|ra*|s | |||
GOTO="persistent_net_generator_end" | |||
# ignore Xen virtual interfaces | |||
-SUBSYSTEMS=="xen", GOTO="persistent_net_generator_end" | |||
+#SUBSYSTEMS=="xen", GOTO="persistent_net_generator_end" | |||
# ignore UML virtual interfaces | |||
DRIVERS=="uml-netdev", GOTO="persistent_net_generator_end" | |||
@@ -75,7 +75,7 @@ ENV{MATCHADDR}=="00:0c:29:*|00:50:56:*|0 | |||
ENV{MATCHADDR}=="00:15:5d:*", ENV{MATCHADDR}="" | |||
ENV{MATCHADDR}=="52:54:00:*|54:52:00:*", ENV{MATCHADDR}="" | |||
ENV{MATCHADDR}=="08:00:27:*", ENV{MATCHADDR}="" | |||
-ENV{MATCHADDR}=="00:16:3e:*", ENV{MATCHADDR}="" | |||
+#ENV{MATCHADDR}=="00:16:3e:*", ENV{MATCHADDR}="" | |||
# ignore Windows Azure Hyper-V virtual interfaces | |||
ENV{MATCHADDR}=="00:03:ff:*", ENV{MATCHADDR}="" | |||
</syntaxhighlight> | |||
Configure your '/etc/network/interfaces' for DHCP | |||
<syntaxhighlight lang="bash"> | |||
# interfaces(5) file used by ifup(8) and ifdown(8) | |||
# Include files from /etc/network/interfaces.d: | |||
source-directory /etc/network/interfaces.d | |||
auto eth0 | |||
iface eth0 inet dhcp | |||
</syntaxhighlight> | </syntaxhighlight> |
Revision as of 21:43, 10 April 2014
Debian
Ubuntu
Ubuntu 13.10
Start this process on a existing Ubuntu system. Does not have to be a 13.10 system. You will need to have debootstrap installed and may need to update debootstrap so it has the correct script for 13.10.
Create a empty image file and format it with ext3.
dd if=/dev/zero of=ubuntu_saucy.img bs=1M count=1 seek=1024 mkfs.ext3 ubuntu_saucy.img
Create a directory to mount the image on. Using '/mnt/img' for this example.
mkdir /mnt/img mount -oloop ubuntu_saucy.img /mnt/img
Start the debootstrap process.
debootstrap saucy /mnt/img/
Once that completes, copy your existing /etc/apt/sources.list to the new image so we can run updates.
cp /etc/apt/sources.list /mnt/img/etc/apt/
Mount the necessary system files so that we can enter the new root filesystem with chroot.
mount --bind /dev /mnt/img/dev mount --bind /dev/pts /mnt/img/dev/pts mount -t proc proc /mnt/img/proc mount -t sysfs sys /mnt/img/sys chroot /mnt/img
Run updates and install a language pack.
apt-get update apt-get install language-pack-en-base apt-get upgrade
Configure the system timezone.
dpkg-reconfigure tzdata
Install the kernel image and install SSH server.
apt-get install linux-image apt-get install openssh-server
To use the Xen console 'xm console (domU)' you need to setup a tty on /dev/hvc0. Create the file '/etc/init/hvc0.conf' with this content.
# This service maintains a getty on hvc0 from the point the system is
# started until it is shut down again.
start on stopped rc RUNLEVEL=[2345] and (
not-container or
container CONTAINER=lxc or
container CONTAINER=lxc-libvirt)
stop on runlevel [!2345]
respawn
exec /sbin/getty -8 38400 hvc0
The default udev rules for 13.10 ignore Xen generated MAC addresses so you won't get a '/etc/udev/rules.d/70-persistent-net.rules' This causes your network interfaces not to come up.
Edit '/lib/udev/rules.d/75-persistent-net-generator.rules' and comment these lines. Here's the changes in patch/diff format.
@@ -21,7 +21,7 @@ KERNEL!="eth*|ath*|wlan*[0-9]|msh*|ra*|s
GOTO="persistent_net_generator_end"
# ignore Xen virtual interfaces
-SUBSYSTEMS=="xen", GOTO="persistent_net_generator_end"
+#SUBSYSTEMS=="xen", GOTO="persistent_net_generator_end"
# ignore UML virtual interfaces
DRIVERS=="uml-netdev", GOTO="persistent_net_generator_end"
@@ -75,7 +75,7 @@ ENV{MATCHADDR}=="00:0c:29:*|00:50:56:*|0
ENV{MATCHADDR}=="00:15:5d:*", ENV{MATCHADDR}=""
ENV{MATCHADDR}=="52:54:00:*|54:52:00:*", ENV{MATCHADDR}=""
ENV{MATCHADDR}=="08:00:27:*", ENV{MATCHADDR}=""
-ENV{MATCHADDR}=="00:16:3e:*", ENV{MATCHADDR}=""
+#ENV{MATCHADDR}=="00:16:3e:*", ENV{MATCHADDR}=""
# ignore Windows Azure Hyper-V virtual interfaces
ENV{MATCHADDR}=="00:03:ff:*", ENV{MATCHADDR}=""
Configure your '/etc/network/interfaces' for DHCP
# interfaces(5) file used by ifup(8) and ifdown(8)
# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d
auto eth0
iface eth0 inet dhcp