您的位置:首页 > 运维架构

Ubuntu Hardy (8.04) x86_64 domU on Opensolaris Indiana (2008.05) dom0

2008-06-04 15:26 447 查看
Here's a little howto get Ubuntu Hardy working as a domU under Opensolaris :)

This should be fairly applicable to other variants of opensolaris. We assume that you have a functioning xend for this article. See my other howto on how to achieve this.

If you already have a physical hardy machine, you can save some time. You can skip step 1 and 2.
Basically what we will do, is setup a fully virtualized (HVM) Hardy installation, create a disk image, debootstrap a base Ubuntu installation in to this disk image and setup this disk image to be used under Xen.

Lets get started....

* Use virt-install to create fully virtualized (HVM) Ubuntu hardy install. You can also use the server or alternative installation media and text mode if you wish, the rest of the information in this howto is not specific to any of them.

# virt-install --name=ubuntuhvm --ram=512 --vnc --vncport=5900 --os-type=linux --file=/vm/ubuntuhvm.img --file-size=20 --cdrom=ubuntu-8.04-desktop-amd64.iso

* Use vncviewer to connect to your newly created VM and install Ubuntu as per normal. Once it is installed, login to the VM and open up a terminal.

* Create a sparse file to use as the disk image for the paravirtualized install of Ubuntu (you can use mkfile -n on solaris, but no such luxury exists in linux). Here we create a 20GB sparse file (which only actually uses up space as we add data to it). We'll also make a 2GB swap file that we can use later.

# dd if=/dev/zero of=/var/tmp/ubuntupvm.img bs=1 count=0 seek=20G 
0+0 records in
0+0 records out
0 bytes (0 B) copied, 0.00013132 s, 0.0 kB/s
# dd if=/dev/zero of=/var/tmp/ubuntupvm-swap.img bs=1 count=0 seek=2G  
0+0 records in
0+0 records out
0 bytes (0 B) copied, 2.5766e-05 s, 0.0 kB/s

* Create an ext3 file system on the sparse file.

# mkfs.ext3 /var/tmp/ubuntupvm.img
mke2fs 1.40.8 (13-Mar-2008)
/var/tmp/ubuntupvm.img is not a block special device.
Proceed anyway? (y,n) y
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
1310720 inodes, 5242880 blocks
262144 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
160 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
       32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
       4096000

Writing inode tables: done                           
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 33 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

* Create swap space by running mkswap on our swap image

# mkswap /var/tmp/ubuntupvm-swap.img 
Setting up swapspace version 1, size = 2147479 kB
no label, UUID=901cdce0-9c17-4183-93d5-192d460c8555

* Lets now loopback mount our file system.

# mount -o loop /var/tmp/ubuntupvm.img /mnt

* All looking good?

# df -h /mnt
Filesystem            Size Used Avail Use% Mounted on
/var/tmp/ubuntupvm.img           20G  173M   19G   1% /mnt

* Now we need to install debootstrap, which is a utility to install a base debian/ubuntu system.

# apt-get install debootstrap
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
 debootstrap
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 50.3kB of archives.
After this operation, 266kB of additional disk space will be used.
Get:1 http://ftp.iinet.net.au hardy/main debootstrap 1.0.8 [50.3kB]
Fetched 50.3kB in 0s (87.9kB/s)  
Selecting previously deselected package debootstrap.
(Reading database ... 114480 files and directories currently installed.)
Unpacking debootstrap (from .../debootstrap_1.0.8_all.deb) ...
Setting up debootstrap (1.0.8) ...

* Lets use debootstrap to setup our base system. Be sure to use a mirror geographically close to you so its faster.

# debootstrap --arch=amd64 --components=main,updates,universe,multiverse hardy /mnt http://ftp.iinet.net.au/pub/ubuntu
I: Retrieving Release
I: Retrieving Packages
I: Validating Packages
I: Retrieving Packages
I: Validating Packages
I: Retrieving Packages
I: Validating Packages
I: Resolving dependencies of required packages...
I: Resolving dependencies of base packages...
I: Checking component main on http://ftp.iinet.net.au/pub/ubuntu...
I: Retrieving adduser
I: Validating adduser
I: Retrieving apt
I: Validating apt
I: Retrieving apt-utils
I: Validating apt-utils
I: Retrieving aptitude
I: Validating aptitude
I: Retrieving base-files
I: Validating base-files
I: Retrieving base-passwd
I: Validating base-passwd
I: Retrieving bash
I: Validating bash
I: Retrieving belocs-locales-bin
I: Validating belocs-locales-bin
I: Retrieving bsdutils
I: Validating bsdutils
I: Retrieving busybox-initramfs
I: Validating busybox-initramfs
I: Retrieving bzip2
I: Validating bzip2
I: Retrieving console-setup
I: Validating console-setup
I: Retrieving console-terminus
I: Validating console-terminus
I: Retrieving console-tools
I: Validating console-tools
I: Retrieving coreutils
I: Validating coreutils
I: Retrieving cpio
I: Validating cpio
I: Retrieving dash
I: Validating dash
I: Retrieving debconf
I: Validating debconf
I: Retrieving debconf-i18n
I: Validating debconf-i18n
I: Retrieving debianutils
I: Validating debianutils
I: Retrieving dhcp3-client
I: Validating dhcp3-client
I: Retrieving dhcp3-common
I: Validating dhcp3-common
I: Retrieving diff
I: Validating diff
I: Retrieving dmidecode
I: Validating dmidecode
I: Retrieving dpkg
I: Validating dpkg
I: Retrieving e2fslibs
I: Validating e2fslibs
I: Retrieving e2fsprogs
I: Validating e2fsprogs
I: Retrieving eject
I: Validating eject
I: Retrieving ethtool
I: Validating ethtool
I: Retrieving findutils
I: Validating findutils
I: Retrieving gcc-4.2-base
I: Validating gcc-4.2-base
I: Retrieving gettext-base
I: Validating gettext-base
I: Retrieving gnupg
I: Validating gnupg
I: Retrieving gpgv
I: Validating gpgv
I: Retrieving grep
I: Validating grep
I: Retrieving gzip
I: Validating gzip
I: Retrieving hostname
I: Validating hostname
I: Retrieving ifupdown
I: Validating ifupdown
I: Retrieving initramfs-tools
I: Validating initramfs-tools
I: Retrieving initscripts
I: Validating initscripts
I: Retrieving iproute
I: Validating iproute
I: Retrieving iputils-ping
I: Validating iputils-ping
I: Retrieving klibc-utils
I: Validating klibc-utils
I: Retrieving klogd
I: Validating klogd
I: Retrieving laptop-detect
I: Validating laptop-detect
I: Retrieving less
I: Validating less
I: Retrieving libacl1
I: Validating libacl1
I: Retrieving libatm1
I: Validating libatm1
I: Retrieving libattr1
I: Validating libattr1
I: Retrieving libblkid1
I: Validating libblkid1
I: Retrieving libbz2-1.0
I: Validating libbz2-1.0
I: Retrieving libc6
I: Validating libc6
I: Retrieving libcap1
I: Validating libcap1
I: Retrieving libcomerr2
I: Validating libcomerr2
I: Retrieving libconsole
I: Validating libconsole
I: Retrieving libcurl3-gnutls
I: Validating libcurl3-gnutls
I: Retrieving libcwidget3
I: Validating libcwidget3
I: Retrieving libdb4.6
I: Validating libdb4.6
I: Retrieving libdbus-1-3
I: Validating libdbus-1-3
I: Retrieving libdevmapper1.02.1
I: Validating libdevmapper1.02.1
I: Retrieving libfribidi0
I: Validating libfribidi0
I: Retrieving libgcc1
I: Validating libgcc1
I: Retrieving libgcrypt11
I: Validating libgcrypt11
I: Retrieving libgnutls13
I: Validating libgnutls13
I: Retrieving libgpg-error0
I: Validating libgpg-error0
I: Retrieving libidn11
I: Validating libidn11
I: Retrieving libiw29
I: Validating libiw29
I: Retrieving libkeyutils1
I: Validating libkeyutils1
I: Retrieving libklibc
I: Validating libklibc
I: Retrieving libkrb53
I: Validating libkrb53
I: Retrieving libldap-2.4-2
I: Validating libldap-2.4-2
I: Retrieving liblocale-gettext-perl
I: Validating liblocale-gettext-perl
I: Retrieving liblzo2-2
I: Validating liblzo2-2
I: Retrieving libncurses5
I: Validating libncurses5
I: Retrieving libncursesw5
I: Validating libncursesw5
I: Retrieving libnewt0.52
I: Validating libnewt0.52
I: Retrieving libopencdk10
I: Validating libopencdk10
I: Retrieving libpam-modules
I: Validating libpam-modules
I: Retrieving libpam-runtime
I: Validating libpam-runtime
I: Retrieving libpam0g
I: Validating libpam0g
I: Retrieving libpopt0
I: Validating libpopt0
I: Retrieving libreadline5
I: Validating libreadline5
I: Retrieving libsasl2-2
I: Validating libsasl2-2
I: Retrieving libsasl2-modules
I: Validating libsasl2-modules
I: Retrieving libselinux1
I: Validating libselinux1
I: Retrieving libsepol1
I: Validating libsepol1
I: Retrieving libsigc++-2.0-0c2a
I: Validating libsigc++-2.0-0c2a
I: Retrieving libslang2
I: Validating libslang2
I: Retrieving libsqlite3-0
I: Validating libsqlite3-0
I: Retrieving libss2
I: Validating libss2
I: Retrieving libssl0.9.8
I: Validating libssl0.9.8
I: Retrieving libstdc++6
I: Validating libstdc++6
I: Retrieving libsysfs2
I: Validating libsysfs2
I: Retrieving libtasn1-3
I: Validating libtasn1-3
I: Retrieving libtext-charwidth-perl
I: Validating libtext-charwidth-perl
I: Retrieving libtext-iconv-perl
I: Validating libtext-iconv-perl
I: Retrieving libtext-wrapi18n-perl
I: Validating libtext-wrapi18n-perl
I: Retrieving libusb-0.1-4
I: Validating libusb-0.1-4
I: Retrieving libuuid1
I: Validating libuuid1
I: Retrieving libvolume-id0
I: Validating libvolume-id0
I: Retrieving libwrap0
I: Validating libwrap0
I: Retrieving locales
I: Validating locales
I: Retrieving login
I: Validating login
I: Retrieving lsb-base
I: Validating lsb-base
I: Retrieving lsb-release
I: Validating lsb-release
I: Retrieving lzma
I: Validating lzma
I: Retrieving makedev
I: Validating makedev
I: Retrieving mawk
I: Validating mawk
I: Retrieving mii-diag
I: Validating mii-diag
I: Retrieving mime-support
I: Validating mime-support
I: Retrieving mktemp
I: Validating mktemp
I: Retrieving module-init-tools
I: Validating module-init-tools
I: Retrieving mount
I: Validating mount
I: Retrieving ncurses-base
I: Validating ncurses-base
I: Retrieving ncurses-bin
I: Validating ncurses-bin
I: Retrieving net-tools
I: Validating net-tools
I: Retrieving netbase
I: Validating netbase
I: Retrieving netcat
I: Validating netcat
I: Retrieving netcat-traditional
I: Validating netcat-traditional
I: Retrieving ntpdate
I: Validating ntpdate
I: Retrieving passwd
I: Validating passwd
I: Retrieving pciutils
I: Validating pciutils
I: Retrieving pcmciautils
I: Validating pcmciautils
I: Retrieving perl-base
I: Validating perl-base
I: Retrieving procps
I: Validating procps
I: Retrieving python
I: Validating python
I: Retrieving python-minimal
I: Validating python-minimal
I: Retrieving python2.5
I: Validating python2.5
I: Retrieving python2.5-minimal
I: Validating python2.5-minimal
I: Retrieving readline-common
I: Validating readline-common
I: Retrieving sed
I: Validating sed
I: Retrieving startup-tasks
I: Validating startup-tasks
I: Retrieving sudo
I: Validating sudo
I: Retrieving sysklogd
I: Validating sysklogd
I: Retrieving system-services
I: Validating system-services
I: Retrieving sysv-rc
I: Validating sysv-rc
I: Retrieving sysvutils
I: Validating sysvutils
I: Retrieving tar
I: Validating tar
I: Retrieving tasksel
I: Validating tasksel
I: Retrieving tasksel-data
I: Validating tasksel-data
I: Retrieving tcpd
I: Validating tcpd
I: Retrieving tzdata
I: Validating tzdata
I: Retrieving ubuntu-keyring
I: Validating ubuntu-keyring
I: Retrieving ubuntu-minimal
I: Validating ubuntu-minimal
I: Retrieving udev
I: Validating udev
I: Retrieving update-inetd
I: Validating update-inetd
I: Retrieving upstart
I: Validating upstart
I: Retrieving upstart-compat-sysv
I: Validating upstart-compat-sysv
I: Retrieving upstart-logd
I: Validating upstart-logd
I: Retrieving usbutils
I: Validating usbutils
I: Retrieving util-linux
I: Validating util-linux
I: Retrieving util-linux-locales
I: Validating util-linux-locales
I: Retrieving uuid-runtime
I: Validating uuid-runtime
I: Retrieving vim-common
I: Validating vim-common
I: Retrieving vim-tiny
I: Validating vim-tiny
I: Retrieving whiptail
I: Validating whiptail
I: Retrieving wireless-tools
I: Validating wireless-tools
I: Retrieving wpasupplicant
I: Validating wpasupplicant
I: Retrieving xkb-data
I: Validating xkb-data
I: Retrieving zlib1g
I: Validating zlib1g
I: Extracting base-files...
I: Extracting base-passwd...
I: Extracting bash...
I: Extracting belocs-locales-bin...
I: Extracting bsdutils...
I: Extracting coreutils...
I: Extracting dash...
I: Extracting debconf...
I: Extracting debconf-i18n...
I: Extracting debianutils...
I: Extracting diff...
I: Extracting dpkg...
I: Extracting e2fslibs...
I: Extracting e2fsprogs...
I: Extracting findutils...
I: Extracting gcc-4.2-base...
I: Extracting grep...
I: Extracting gzip...
I: Extracting hostname...
I: Extracting initscripts...
I: Extracting libacl1...
I: Extracting libattr1...
I: Extracting libblkid1...
I: Extracting libc6...
I: Extracting libcomerr2...
I: Extracting libdb4.6...
I: Extracting libdevmapper1.02.1...
I: Extracting libgcc1...
I: Extracting liblocale-gettext-perl...
I: Extracting libncurses5...
I: Extracting libpam-modules...
I: Extracting libpam-runtime...
I: Extracting libpam0g...
I: Extracting libselinux1...
I: Extracting libsepol1...
I: Extracting libslang2...
I: Extracting libss2...
I: Extracting libstdc++6...
I: Extracting libtext-charwidth-perl...
I: Extracting libtext-iconv-perl...
I: Extracting libtext-wrapi18n-perl...
I: Extracting libuuid1...
I: Extracting locales...
I: Extracting login...
I: Extracting lsb-base...
I: Extracting lzma...
I: Extracting makedev...
I: Extracting mawk...
I: Extracting mktemp...
I: Extracting mount...
I: Extracting ncurses-base...
I: Extracting ncurses-bin...
I: Extracting passwd...
I: Extracting perl-base...
I: Extracting procps...
I: Extracting python-minimal...
I: Extracting python2.5-minimal...
I: Extracting sed...
I: Extracting startup-tasks...
I: Extracting system-services...
I: Extracting sysv-rc...
I: Extracting sysvutils...
I: Extracting tar...
I: Extracting tzdata...
I: Extracting upstart...
I: Extracting upstart-compat-sysv...
I: Extracting upstart-logd...
I: Extracting util-linux...
I: Extracting zlib1g...
I: Installing core packages...
I: Unpacking required packages...
I: Unpacking base-files...
I: Unpacking base-passwd...
I: Unpacking bash...
I: Unpacking belocs-locales-bin...
I: Unpacking bsdutils...
I: Unpacking coreutils...
I: Unpacking dash...
I: Unpacking debconf...
I: Unpacking debconf-i18n...
I: Unpacking debianutils...
I: Unpacking diff...
I: Unpacking dpkg...
I: Unpacking e2fslibs...
I: Unpacking e2fsprogs...
I: Unpacking findutils...
I: Unpacking gcc-4.2-base...
I: Unpacking grep...
I: Unpacking gzip...
I: Unpacking hostname...
I: Unpacking initscripts...
I: Unpacking libacl1...
I: Unpacking libattr1...
I: Unpacking libblkid1...
I: Unpacking libc6...
I: Unpacking libcomerr2...
I: Unpacking libdb4.6...
I: Unpacking libdevmapper1.02.1...
I: Unpacking libgcc1...
I: Unpacking liblocale-gettext-perl...
I: Unpacking libncurses5...
I: Unpacking libpam-modules...
I: Unpacking libpam-runtime...
I: Unpacking libpam0g...
I: Unpacking libselinux1...
I: Unpacking libsepol1...
I: Unpacking libslang2...
I: Unpacking libss2...
I: Unpacking libstdc++6...
I: Unpacking libtext-charwidth-perl...
I: Unpacking libtext-iconv-perl...
I: Unpacking libtext-wrapi18n-perl...
I: Unpacking libuuid1...
I: Unpacking locales...
I: Unpacking login...
I: Unpacking lsb-base...
I: Unpacking lzma...
I: Unpacking makedev...
I: Unpacking mawk...
I: Unpacking mktemp...
I: Unpacking mount...
I: Unpacking ncurses-base...
I: Unpacking ncurses-bin...
I: Unpacking passwd...
I: Unpacking perl-base...
I: Unpacking procps...
I: Unpacking python-minimal...
I: Unpacking python2.5-minimal...
I: Unpacking sed...
I: Unpacking startup-tasks...
I: Unpacking system-services...
I: Unpacking sysv-rc...
I: Unpacking sysvutils...
I: Unpacking tar...
I: Unpacking tzdata...
I: Unpacking upstart...
I: Unpacking upstart-compat-sysv...
I: Unpacking upstart-logd...
I: Unpacking util-linux...
I: Unpacking zlib1g...
I: Configuring required packages...
I: Configuring sysv-rc...
I: Configuring gcc-4.2-base...
I: Configuring libpam-runtime...
I: Configuring libc6...
I: Configuring mktemp...
I: Configuring bsdutils...
I: Configuring perl-base...
I: Configuring libsepol1...
I: Configuring tar...
I: Configuring zlib1g...
I: Configuring libgcc1...
I: Configuring libtext-iconv-perl...
I: Configuring libncurses5...
I: Configuring libattr1...
I: Configuring sed...
I: Configuring e2fslibs...
I: Configuring base-passwd...
I: Configuring libcomerr2...
I: Configuring mawk...
I: Configuring libdb4.6...
I: Configuring grep...
I: Configuring hostname...
I: Configuring libacl1...
I: Configuring libslang2...
I: Configuring libss2...
I: Configuring findutils...
I: Configuring liblocale-gettext-perl...
I: Configuring diff...
I: Configuring libselinux1...
I: Configuring belocs-locales-bin...
I: Configuring libstdc++6...
I: Configuring libtext-charwidth-perl...
I: Configuring libtext-wrapi18n-perl...
I: Configuring coreutils...
I: Configuring debianutils...
I: Configuring makedev...
I: Configuring lzma...
I: Configuring ncurses-base...
I: Configuring python2.5-minimal...
I: Configuring ncurses-bin...
I: Configuring mount...
I: Configuring libdevmapper1.02.1...
I: Configuring debconf-i18n...
I: Configuring libblkid1...
I: Configuring gzip...
I: Configuring dpkg...
I: Configuring sysvutils...
I: Configuring debconf...
I: Configuring dash...
I: Configuring python-minimal...
I: Configuring libpam0g...
I: Configuring libpam-modules...
I: Configuring tzdata...
I: Configuring locales...
I: Configuring base-files...
I: Configuring upstart...
I: Configuring bash...
I: Configuring login...
I: Configuring upstart-logd...
I: Configuring lsb-base...
I: Configuring procps...
I: Configuring startup-tasks...
I: Configuring passwd...
I: Configuring libuuid1...
I: Configuring e2fsprogs...
I: Configuring util-linux...
I: Configuring initscripts...
I: Configuring upstart-compat-sysv...
I: Configuring system-services...
I: Configuring libc6...
I: Unpacking the base system...
I: Unpacking adduser...
I: Unpacking apt...
I: Unpacking apt-utils...
I: Unpacking aptitude...
I: Unpacking busybox-initramfs...
I: Unpacking bzip2...
I: Unpacking console-setup...
I: Unpacking console-terminus...
I: Unpacking console-tools...
I: Unpacking cpio...
I: Unpacking dhcp3-client...
I: Unpacking dhcp3-common...
I: Unpacking dmidecode...
I: Unpacking eject...
I: Unpacking ethtool...
I: Unpacking gettext-base...
I: Unpacking gnupg...
I: Unpacking gpgv...
I: Unpacking ifupdown...
I: Unpacking initramfs-tools...
I: Unpacking iproute...
I: Unpacking iputils-ping...
I: Unpacking klibc-utils...
I: Unpacking klogd...
I: Unpacking laptop-detect...
I: Unpacking less...
I: Unpacking libatm1...
I: Unpacking libbz2-1.0...
I: Unpacking libcap1...
I: Unpacking libconsole...
I: Unpacking libcurl3-gnutls...
I: Unpacking libcwidget3...
I: Unpacking libdbus-1-3...
I: Unpacking libfribidi0...
I: Unpacking libgcrypt11...
I: Unpacking libgnutls13...
I: Unpacking libgpg-error0...
I: Unpacking libidn11...
I: Unpacking libiw29...
I: Unpacking libkeyutils1...
I: Unpacking libklibc...
I: Unpacking libkrb53...
I: Unpacking libldap-2.4-2...
I: Unpacking liblzo2-2...
I: Unpacking libncursesw5...
I: Unpacking libnewt0.52...
I: Unpacking libopencdk10...
I: Unpacking libpopt0...
I: Unpacking libreadline5...
I: Unpacking libsasl2-2...
I: Unpacking libsasl2-modules...
I: Unpacking libsigc++-2.0-0c2a...
I: Unpacking libsqlite3-0...
I: Unpacking libssl0.9.8...
I: Unpacking libsysfs2...
I: Unpacking libtasn1-3...
I: Unpacking libusb-0.1-4...
I: Unpacking libvolume-id0...
I: Unpacking libwrap0...
I: Unpacking lsb-release...
I: Unpacking mii-diag...
I: Unpacking mime-support...
I: Unpacking module-init-tools...
I: Unpacking net-tools...
I: Unpacking netbase...
I: Unpacking netcat...
I: Unpacking netcat-traditional...
I: Unpacking ntpdate...
I: Unpacking pciutils...
I: Unpacking pcmciautils...
I: Unpacking python...
I: Unpacking python2.5...
I: Unpacking readline-common...
I: Unpacking sudo...
I: Unpacking sysklogd...
I: Unpacking tasksel...
I: Unpacking tasksel-data...
I: Unpacking tcpd...
I: Unpacking ubuntu-keyring...
I: Unpacking ubuntu-minimal...
I: Unpacking udev...
I: Unpacking update-inetd...
I: Unpacking usbutils...
I: Unpacking util-linux-locales...
I: Unpacking uuid-runtime...
I: Unpacking vim-common...
I: Unpacking vim-tiny...
I: Unpacking whiptail...
I: Unpacking wireless-tools...
I: Unpacking wpasupplicant...
I: Unpacking xkb-data...
I: Configuring the base system...
I: Configuring sudo...
I: Configuring libsysfs2...
I: Configuring gpgv...
I: Configuring libdbus-1-3...
I: Configuring gettext-base...
I: Configuring module-init-tools...
I: Configuring libtasn1-3...
I: Configuring libpopt0...
I: Configuring libusb-0.1-4...
I: Configuring libgpg-error0...
I: Configuring update-inetd...
I: Configuring libssl0.9.8...
I: Configuring vim-common...
I: Configuring apt...
I: Configuring pciutils...
I: Configuring dmidecode...
I: Configuring liblzo2-2...
I: Configuring libfribidi0...
I: Configuring adduser...
I: Configuring libklibc...
I: Configuring libsqlite3-0...
I: Configuring libkeyutils1...
I: Configuring usbutils...
I: Configuring libidn11...
I: Configuring libatm1...
I: Configuring klibc-utils...
I: Configuring uuid-runtime...
I: Configuring libnewt0.52...
I: Configuring net-tools...
I: Configuring libiw29...
I: Configuring mii-diag...
I: Configuring util-linux-locales...
I: Configuring xkb-data...
I: Configuring ethtool...
I: Configuring libsigc++-2.0-0c2a...
I: Configuring netcat-traditional...
I: Configuring libncursesw5...
I: Configuring eject...
I: Configuring busybox-initramfs...
I: Configuring iputils-ping...
I: Configuring libbz2-1.0...
I: Configuring wireless-tools...
I: Configuring mime-support...
I: Configuring libvolume-id0...
I: Configuring dhcp3-common...
I: Configuring libconsole...
I: Configuring apt-utils...
I: Configuring libkrb53...
I: Configuring cpio...
I: Configuring vim-tiny...
I: Configuring less...
I: Configuring readline-common...
I: Configuring libcap1...
I: Configuring libwrap0...
I: Configuring netcat...
I: Configuring tcpd...
I: Configuring laptop-detect...
I: Configuring libgcrypt11...
I: Configuring console-tools...
I: Configuring bzip2...
I: Configuring whiptail...
I: Configuring ifupdown...
I: Configuring dhcp3-client...
I: Configuring libreadline5...
I: Configuring iproute...
I: Configuring libcwidget3...
I: Configuring aptitude...
I: Configuring console-terminus...
I: Configuring libopencdk10...
I: Configuring libgnutls13...
I: Configuring wpasupplicant...
I: Configuring netbase...
I: Configuring python2.5...
I: Configuring ntpdate...
I: Configuring python...
I: Configuring lsb-release...
I: Configuring libsasl2-modules...
I: Configuring libsasl2-2...
I: Configuring sysklogd...
I: Configuring libldap-2.4-2...
I: Configuring klogd...
I: Configuring udev...
I: Configuring initramfs-tools...
I: Configuring libcurl3-gnutls...
I: Configuring pcmciautils...
I: Configuring console-setup...
I: Configuring tasksel-data...
I: Configuring gnupg...
I: Configuring ubuntu-keyring...
I: Configuring tasksel...
I: Configuring ubuntu-minimal...
I: Configuring libc6...
I: Configuring initramfs-tools...
I: Base system installed successfully.

* Lets change root in to our shiny new environment

# chroot /mnt
# export LANG=C

* Edit the sources.list file to include hardy-updates. Unfortunately there is a bug in the default linux kernel shipped with hardy that will cause segfaults when bringing up a network interface - so we need to use the updated kernel from hardy-updates (see this bug - https://bugs.launchpad.net/ubuntu/+source/linux/+bug/218126). Remember to use a mirror geographically close to you.

# echo deb http://ftp.iinet.net.au/pub/ubuntu hardy-updates main universe multiverse >>/etc/apt/sources.list
# apt-get update
Hit http://ftp.iinet.net.au hardy Release.gpg
Get:1 http://ftp.iinet.net.au hardy-updates Release.gpg [191B]
Hit http://ftp.iinet.net.au hardy Release
Get:2 http://ftp.iinet.net.au hardy-updates Release [58.5kB]
Hit http://ftp.iinet.net.au hardy/main Packages 
Hit http://ftp.iinet.net.au hardy/universe Packages
Hit http://ftp.iinet.net.au hardy/multiverse Packages
Get:3 http://ftp.iinet.net.au hardy-updates/main Packages [81.3kB]
Get:4 http://ftp.iinet.net.au hardy-updates/universe Packages [33.4kB]
Get:5 http://ftp.iinet.net.au hardy-updates/multiverse Packages [7682B]
Fetched 181kB in 1s (113kB/s)                    
Reading package lists... Done

* Install our Xen enabled kernel, kernel modules, and the grub boot loader. Kernel image and modules are both pulled in as part of the linux-image-xen metapackage, so we only need to install it.

# apt-get install grub linux-image-xen
Reading package lists... Done
Building dependency tree... Done
The following extra packages will be installed:
  linux-image-2.6.24-17-xen linux-ubuntu-modules-2.6.24-17-xen ucf
Suggested packages:
  grub-doc mdadm fdutils linux-doc-2.6.24 linux-source-2.6.24
The following NEW packages will be installed:
  grub linux-image-2.6.24-17-xen linux-image-xen linux-ubuntu-modules-2.6.24-17-xen ucf
0 upgraded, 5 newly installed, 0 to remove and 13 not upgraded.
Need to get 22.8MB of archives.
After this operation, 93.1MB of additional disk space will be used.
Do you want to continue [Y/n]? 
Get:1 http://ftp.iinet.net.au hardy-updates/universe linux-image-2.6.24-17-xen 2.6.24-17.31 [18.9MB]
Get:2 http://ftp.iinet.net.au hardy-updates/universe linux-ubuntu-modules-2.6.24-17-xen 2.6.24-17.25 [2929kB]                      
Get:3 http://ftp.iinet.net.au hardy/main ucf 3.005 [61.6kB]                                                                        
Get:4 http://ftp.iinet.net.au hardy/main grub 0.97-29ubuntu21 [870kB]                                                              
Get:5 http://ftp.iinet.net.au hardy-updates/universe linux-image-xen 2.6.24.17.19 [26.4kB]                                         
Fetched 22.8MB in 54s (422kB/s)                                                                                                    
Preconfiguring packages ...
Can not write log, openpty() failed (/dev/pts not mounted?)
Selecting previously deselected package linux-image-2.6.24-17-xen.
(Reading database ... 8559 files and directories currently installed.)
Unpacking linux-image-2.6.24-17-xen (from .../linux-image-2.6.24-17-xen_2.6.24-17.31_amd64.deb) ...
Done.
Selecting previously deselected package linux-ubuntu-modules-2.6.24-17-xen.
Unpacking linux-ubuntu-modules-2.6.24-17-xen (from .../linux-ubuntu-modules-2.6.24-17-xen_2.6.24-17.25_amd64.deb) ...
Selecting previously deselected package ucf.
Unpacking ucf (from .../apt/archives/ucf_3.005_all.deb) ...
Moving old data out of the way
Selecting previously deselected package grub.
Unpacking grub (from .../grub_0.97-29ubuntu21_amd64.deb) ...
Selecting previously deselected package linux-image-xen.
Unpacking linux-image-xen (from .../linux-image-xen_2.6.24.17.19_amd64.deb) ...
Can not write log, openpty() failed (/dev/pts not mounted?)

Setting up linux-image-2.6.24-17-xen (2.6.24-17.31) ...
Running depmod.
update-initramfs: Generating /boot/initrd.img-2.6.24-17-xen

Setting up linux-ubuntu-modules-2.6.24-17-xen (2.6.24-17.25) ...
update-initramfs: Generating /boot/initrd.img-2.6.24-17-xen

Setting up ucf (3.005) ...

Setting up grub (0.97-29ubuntu21) ...

Setting up linux-image-xen (2.6.24.17.19) ...

* Almost there! Now we setup our /etc/fstab file

# cat <<EOF >/etc/fstab
> /dev/xvda1 / ext3 defaults 0 1
> /dev/xvdb1 none swap defaults 0 0
> proc /proc proc defaults 0 0 
> EOF

# cat /etc/fstab
/dev/xvda1 / ext3 defaults 0 1
/dev/xvdb1 none swap defaults 0 0
proc /proc proc defaults 0 0

* Setup the grub boot loader. It doesnt like xen kernels for some reason, and wont automagically create them. Normally making the /boot/grub directory and running update-grub is enough, but not in this case...

# mkdir -p /boot/grub
# update-grub
# mv /boot/grub/menu.lst /boot/grub/menu.lst.bak
# cat <<EOF >/boot/grub/menu.lst
default 0
timeout 3
title           Ubuntu 8.04, kernel 2.6.24-17-xen
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.24-17-xen root=/dev/xvda1 ro console=xvc0
initrd          /boot/initrd.img-2.6.24-17-xen
EOF
# cat /boot/grub/menu.lst
default 0
timeout 3
title           Ubuntu 8.04, kernel 2.6.24-17-xen
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.24-17-xen root=/dev/xvda1 ro console=xvc0
initrd          /boot/initrd.img-2.6.24-17-xen

* Turn off the hwclock. We'll get our time from our host OS.

# update-rc.d -f hwclockfirst remove 
# update-rc.d -f hwclock remove 
# rm /etc/udev/rules.d/85-hwclock.rules

* Create an xvc0 tty for our xen console to talk to. We will just copy tty1 and replace any occurance of tty1 with xvc0 using sed.

# cat /etc/event.d/tty1 | sed -e "s/tty1/xvc0/g" >/etc/event.d/xvc0

* Setup our networking configuration

# cat <<EOF >/etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp
EOF
# cat /etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

* Also setup our hosts file

echo "127.0.0.1 localhost" >/etc/hosts

* And one last file to create, our hostname

echo "ubuntupvm" >/etc/hostname

* Congratulations - your disk image is built! Only a few more easy steps.

* Exit the chroot environment

# exit
exit

* Unmount our disk image

# umount /mnt

* Copy our two disk image files (remember creating swap waaay back in this howto?) back to our Xen dom0.

scp /var/tmp/ubuntupvm.img /var/tmp/ubuntupvm-swap.img user@hostname:/var/tmp/

* You can now exit out of your fully virtualized (HVM) Ubuntu. Back on the Xen dom0, move the .img files to where you would like to store them permanently. I'll assume you want them in /vm/ here

# mv /var/tmp/ubuntupvm.img /var/tmp/ubuntupvm-swap.img /vm

* Create a suitable xen configuration file. Use a MAC address inside the range 00:16:3e:xx:xx:xx. This address range is reserved for use by Xen.

# cat <<EOF >/vm/ubuntupvm.cfg
memory = 512
name = "ubuntupvm"
vif = [ 'mac=00:16:3e:00:00:00' ]
disk = [ 'file:/vm/ubuntupvm.img,xvda1,w','file:/vm/ubuntupvm-swap.img,xvdb1,w' ]

* Now to see if it all worked... Lets boot her up and connect to the console. If you see output like this, then its all worked! The formatting is a little messed up from my terminal.

# xm create -f /vm/ubuntupvm.cfg -c
Using config file "/vm/ubuntupvm.cfg".

Started domain ubuntupvm
                 [    0.000000] Linux version 2.6.24-17-xen (buildd@crested) (gcc version 4.2.3 (Ubuntu 4.2.3-2ubuntu7)) #1 SMP Thu May 1 15:55:31 UTC 2008 (Ubuntu 2.6.24-4.6-generic)
[    0.000000] Command line: root=/dev/xvda1 ro console=xvc0
[    0.000000] BIOS-provided physical RAM map:
[    0.000000]  Xen: 0000000000000000 - 0000000010800000 (usable)
[    0.000000] end_pfn_map = 67584
[154739.117160] Zone PFN ranges:
[154739.117161]   DMA             0 ->     4096
[154739.117163]   DMA32        4096 ->  1048576
[154739.117164]   Normal    1048576 ->  1048576
[154739.117165] Movable zone start PFN for each node
[154739.117166] early_node_map[1] active PFN ranges
[154739.117167]     0:        0 ->    67584
[154739.120639] No mptable found.
[154739.121063] PERCPU: Allocating 22368 bytes of per cpu data
[154739.121078] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 66660
[154739.121081] Kernel command line: root=/dev/xvda1 ro console=xvc0
[154739.121496] Initializing CPU#0
[154739.121683] PID hash table entries: 2048 (order: 11, 16384 bytes)
[154739.121716] Xen reported: 2400.000 MHz processor.
[    0.031224] console [xvc0] enabled
[    0.031262] Console: colour dummy device 80x25
[    0.031537] Dentry cache hash table entries: 65536 (order: 7, 524288 bytes)
[    0.031719] Inode-cache hash table entries: 32768 (order: 6, 262144 bytes)
[    0.031762] Software IO TLB disabled
[    0.033091] Memory: 231592k/270336k available (2531k kernel code, 30248k reserved, 1329k data, 220k init)
[    0.099246] Calibrating delay using timer specific routine.. 4806.03 BogoMIPS (lpj=9612067)
[    0.099283] Security Framework initialized
[    0.099290] SELinux:  Disabled at boot.
[    0.099296] AppArmor: AppArmor initialized
[    0.099300] Failure registering capabilities with primary security module.
[    0.099318] Mount-cache hash table entries: 256
[    0.099439] CPU: L1 I cache: 32K, L1 D cache: 32K
[    0.099443] CPU: L2 cache: 4096K
[    0.099451] CPU: Physical Processor ID: 0
[    0.099453] CPU: Processor Core ID: 2
[    0.099459] SMP alternatives: switching to UP code
[    0.100125] Freeing SMP alternatives: 23k freed
[    0.100230] Early unpacking initramfs... done
[    0.113696] Brought up 1 CPUs
[    0.114092] net_namespace: 120 bytes
[    0.114103] failed to set up cpufreq notifier
[    0.131280] Time: 165:165:165  Date: 165/165/65
[    0.131310] NET: Registered protocol family 16
[    0.132782] Brought up 1 CPUs
[    0.132800] PCI: Fatal: No config space access function found
[    0.132802] PCI: setting up Xen PCI frontend stub
[    0.133248] ACPI: Interpreter disabled.
[    0.133258] Linux Plug and Play Support v0.97 (c) Adam Belay
[    0.133280] pnp: PnP ACPI: disabled
[    0.133593] xen_mem: Initialising balloon driver.
[    0.134595] Setting mem allocation to 262144 kiB
[    0.134805] PCI: System does not support PCI
[    0.134809] PCI: System does not support PCI
[    0.143788] NET: Registered protocol family 8
[    0.143793] NET: Registered protocol family 20
[    0.143859] AppArmor: AppArmor Filesystem Enabled
[    0.144191] NET: Registered protocol family 2
[    0.147737] Time: xen clocksource has been installed.
[    0.179791] IP route cache hash table entries: 4096 (order: 3, 32768 bytes)
[    0.179963] TCP established hash table entries: 16384 (order: 6, 262144 bytes)
[    0.180032] TCP bind hash table entries: 16384 (order: 6, 262144 bytes)
[    0.180112] TCP: Hash tables configured (established 16384 bind 16384)
[    0.180115] TCP reno registered
[    0.191832] checking if image is initramfs... it is
[    0.206040] Freeing initrd memory: 19604k freed
[    0.212804] audit: initializing netlink socket (disabled)
[    0.212830] audit(1212512572.302:1): initialized
[    0.212983] VFS: Disk quotas dquot_6.5.1
[    0.213010] Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    0.213092] io scheduler noop registered
[    0.213097] io scheduler anticipatory registered
[    0.213103] io scheduler deadline registered
[    0.213109] io scheduler cfq registered (default)
[    0.213292] Xen virtual console successfully installed as xvc0
[    0.213343] Event-channel device installed.
[    0.220636] Successfully initialized TPM backend driver.
[    0.233480] netfront: Initialising virtual ethernet driver.
[    0.237326] xen-vbd: registered block device major 202
[    0.237344] blkfront: xvda1: barriers enabled
[    0.256807] rtc: IRQ 8 is not free.
[    0.256868] Linux agpgart interface v0.102
[    0.257280] RAMDISK driver initialized: 16 RAM disks of 65536K size 1024 blocksize
[    0.257330] input: Macintosh mouse button emulation as /devices/virtual/input/input0
[    0.257414] PNP: No PS/2 controller found. Probing ports directly.
[    0.258240] i8042.c: No controller found.
[    0.258821] blkfront: xvdb1: barriers enabled
[    0.259397] mice: PS/2 mouse device common for all mice
[    0.259442] cpuidle: using governor ladder
[    0.259500] NET: Registered protocol family 1
[    0.259551] registered taskstats version 1
[    0.259559] XENBUS: Device with no driver: device/console/0
[    0.259569]   Magic number: 1:252:3141
[    0.259661] /build/buildd/linux-2.6.24/debian/build/custom-source-xen/drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
[    0.259671] Freeing unused kernel memory: 220k freed
Loading, please wait...
Begin: Loading essential drivers... ...
[    0.491281] thermal: Unknown symbol acpi_processor_set_thermal_limit
Done.
Begin: Running /scripts/init-premount ...
Done.
Begin: Mounting root file system... ...
Begin: Running /scripts/local-top ...
Done.
Begin: Waiting for root file system... ...
Done.
Begin: Running /scripts/local-premount ...
Done.
[    0.803687] kjournald starting.  Commit interval 5 seconds
[    0.803702] EXT3-fs: mounted filesystem with ordered data mode.
Begin: Running /scripts/local-bottom ...
Done.
Done.
Begin: Running /scripts/init-bottom ...
Done.
[ OK ]ting preliminary keymap...       * Setting the system clock
Cannot access the Hardware Clock via any known method.
Use the --debug option to see the details of our search for an access method.
* Unable to set System Clock to: Tue Jun  3 17:02:53 UTC 2008
[ OK ]rting basic networking...       [ OK ]rting kernel event manager...       [ OK ]ding hardware drivers...       * Setting the system clock
Cannot access the Hardware Clock via any known method.
Use the --debug option to see the details of our search for an access method.
* Unable to set System Clock to: Tue Jun  3 17:02:54 UTC 2008
[ OK ]ding kernel modules...         * Loading manual drivers...       [ OK ]ting kernel variables...       [ OK ]ivating swap...       * Checking root file system...        fsck 1.40.8 (13-Mar-2008)
/dev/xvda1: clean, 12663/1310720 files, 181193/5242880 blocks
[ OK ]
* Checking file systems...        fsck 1.40.8 (13-Mar-2008)
[ OK ]
[ OK ]nting local filesystems...       [ OK ]ivating swapfile swap...       [ OK ]cking minimum space in /tmp...       [ OK ]figuring network interfaces...       [ OK ]rting system log daemon...       [ OK ]rting kernel log daemon...       [ OK ]ning local boot scripts (/etc/rc.local)      
Ubuntu 8.04 ubuntupvm xvc0

ubuntupvm login:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: