Open main menu

OpenVZ Virtuozzo Containers Wiki β

Changes

Talk:Archlinux Template creation

2,003 bytes added, 05:50, 15 May 2009
Pointed out replacement tool for missing script. Showed script I've used to create templates.
One can use mkarchroot (provided by devtools) in place of archbootstrap if building the template with Archlinux.

Here is a script I have used to create Archlinux templates:

<code>
<pre>
#!/bin/bash -x

DISTRO=arch
VERSION=das1

PACKS="sed gawk coreutils filesystem texinfo grep pacman logrotate \
module-init-tools wget curl net-tools procps tar cpio zip unzip \
gzip bzip2 lzma-utils psmisc initscripts iputils dnsutils iproute2 \
less dash which openssh joe sudo htop dcron syslog-ng screen \
util-linux-ng"


MIRROR1=http://mirror.umoss.org/archlinux
MIRROR2=http://mirror.rit.edu/archlinux

if [[ ${1} == 64 ]]; then
ARCH=x86_64
else
if [[ ${1} == 32 ]]; then
ARCH=i686
else
echo "Usage: ${0} 32|64"
exit 1
fi
fi

ROOT=${DISTRO}-${VERSION}-${ARCH}

TEMPLATE=$(pwd)/${ROOT}.tar.gz

if [[ "$(whoami)" == "root" ]]; then
echo "Building template: ${ROOT}"
else
echo "This script must be run as root (or with sudo)"
exit 1
fi

cat <<EOF > pacman.conf
[options]
HoldPkg = pacman glibc
SyncFirst = pacman

[core]
Server = ${MIRROR1}/\$repo/os/${ARCH}
Server = ${MIRROR2}/\$repo/os/${ARCH}
Include = /etc/pacman.d/mirrorlist
[extra]
Server = ${MIRROR1}/\$repo/os/${ARCH}
Server = ${MIRROR2}/\$repo/os/${ARCH}
Include = /etc/pacman.d/mirrorlist
[community]
Server = ${MIRROR1}/\$repo/os/${ARCH}
Server = ${MIRROR2}/\$repo/os/${ARCH}
Include = /etc/pacman.d/mirrorlist
EOF

mkarchroot -C pacman.conf ${ROOT} ${PACKS}

chmod 666 ${ROOT}/dev/null
chmod 666 ${ROOT}/dev/zero
mknod -m 666 ${ROOT}/dev/random c 1 8
mknod -m 666 ${ROOT}/dev/urandom c 1 9
mkdir -m 755 ${ROOT}/dev/pts
mkdir -m 1777 ${ROOT}/dev/shm
mknod -m 666 ${ROOT}/dev/tty c 5 0
mknod -m 666 ${ROOT}/dev/full c 1 7
mknod -m 600 ${ROOT}/dev/initctl p
mknod -m 666 ${ROOT}/dev/ptmx c 5 2


# we don't need any getty entries in a container
sed 's/^.*getty.*$//' -i ${ROOT}/etc/inittab

cd ${ROOT}
tar czvf ${TEMPLATE} .

echo "Created template: ${ROOT}"
</pre>
</code>

Sometime I may get around to editing this page.
2
edits