Ubuntu without templates

From OpenVZ Virtuozzo Containers Wiki
Jump to: navigation, search

This tutorial will teach how to install the newest Ubuntu versions through chroot (no templates required).

Initial steps[edit]

  • Choose a number for your machine (example: 101)
  • Choose an ubuntu version (this howto was tested with hardy, intrepid and jaunty)
  • Go to the directory where the images will be placed:
cd /vz/private/
  • Create a directory for the new machine:
mkdir 101
  • Run debootstrap:
debootstrap --arch=i386 jaunty 101/ http://br.archive.ubuntu.com/ubuntu

(you can change the mirror if you want)

  • Edit the machine configuration in /etc/vz/conf/101.conf. Configure its name, IP, memory and everything else
  • Start the machine
vzctl start 101

Fixing bugs[edit]

udev[edit]

If you try to enter the machine you'll see an error:

eva:/vz/private# vzctl enter 101
enter into VE 101 failed
Unable to open pty: No such file or directory

To solve this, you'll have to remove udev from the boot:

eva:/vz/private# vzctl exec 101 'update-rc.d -f udev remove'
Removing any system startup links for /etc/init.d/udev ...
/etc/rcS.d/S10udev

Then you'll be able to enter the machine after restarting it:

vzctl restart 101
vzctl enter 101

Note: when you update the udev package you'll probably have to run the "update-rc.d -f udev remove" command again.

klogd[edit]

Type this command:

ps aux

You'll see that "init" didn't finish because the "klogd" process is still being run. You'll have to fix this:

update-rc.d -f klogd remove

Restart the machine and see the results:

exit
vzctl restart 101
vzctl enter 101
ps aux

network[edit]

For newer ubuntu versions, you'll notice that the network is not working. To fix this problem, you'll have to edit the /etc/init.d/networking script. You'll have to make it create the "/var/run/network" directory just after its "start":

 case "$1" in
   start)
     mkdir -p /var/run/network # -> this is the new line
     process_options

Then, start the networking:

 /etc/init.d/networking start

(important: use start, not restart)

getty[edit]

If you look at the running processes, you'll see that there are a lot of "/sbin/getty" processes. You can also remove these.

Other init stuff[edit]

Feel free to use 'update-rc.d' to remove any other unneded stuff =)

Finish[edit]

Now you're free to use your machine =)

You'll still probably want to add the "security" and "updates" repositories, install openssh-server, change the root password, update the system, change locales and other stuff. Enjoy =)