source: projects/vbootstrap/trunk/vbootstrap.sh.in @ 11232

Revision 11232, 2.3 KB checked in by iwamoto, 6 years ago (diff)

vbootstrap.sh: add mknod /dev/urandom (Thanks to tomop-san)

Line 
1#!/bin/bash
2
3TEXTDOMAIN=vbootstrap
4TEXTDOMAINDIR=/usr/share/locale
5
6VERSION=@@VBOOTSTRAP_VERSION@@
7
8LANG=C
9
10##
11
12VBOOTSTRAPDIR="/usr/share/vbootstrap"
13SUPPORTED_VERSION="$(ls $VBOOTSTRAPDIR/scripts/)"
14
15##
16
17usage()
18{
19  echo "Usage: vbootstrap <version>_<arch> <url> <targetdir>"
20  echo "  supported <version>_<arch>:"
21  for ver in $SUPPORTED_VERSION
22  do
23    echo "    $ver"
24  done
25}
26
27##
28
29if [ "$(id -u)" != "0" ]
30then
31  usage
32  echo "E: You should run vbooststrap as super user."
33  exit 0
34fi
35
36if ! [ $# -eq 3 ]
37then
38  usage
39  echo "E: You must specify a vine version, location and target."
40  exit 0
41fi
42
43INSTVER=$1
44shift
45
46if [ -f "$VBOOTSTRAPDIR/scripts/$INSTVER" ]
47then
48  source $VBOOTSTRAPDIR/scripts/$INSTVER
49else
50  usage
51  echo "E: $INSTVER is not supported."
52  exit 0
53fi
54
55FETCHURL=$1
56shift
57
58INSTDIR=$1
59shift
60
61if [ -d "$INSTDIR" ]
62then
63  echo "E: Specified directory \"$INSTDIR\" is already exists."
64  usage
65  exit 0
66fi
67
68##
69
70APT_OPTS="
71    -o Dir::Etc::sourcelist=$INSTDIR/etc/vbootstrap/sources.list.d/$INSTVER
72    -o RPM::RootDir=$INSTDIR
73    -o Dir::Etc::sourceparts=$INSTDIR/etc/apt/sources.list.d
74    -o Dir::State=$INSTDIR/var/lib/apt
75    -o Dir::Cache=$INSTDIR/var/cache/apt
76    -o RPM::PM=\"external\"
77    -o RPM::Install-Options::=--force
78    -o RPM::Install-Options::=--nosignature "
79
80##
81
82# generate source.list of $INSTVER
83mkdir -p $INSTDIR/etc/vbootstrap/sources.list.d
84sed -e "s,@@FETCHURL@@,${FETCHURL}," $VBOOTSTRAPDIR/sources.list.d/$INSTVER > $INSTDIR/etc/vbootstrap/sources.list.d/$INSTVER || exit 1
85
86# initialize rpm database
87echo $"Initializing RPM database in $INSTDIR."
88mkdir -p $INSTDIR/var/lib/rpm
89rpm --initdb --root $INSTDIR
90
91# update apt database
92echo $"update apt database."
93mkdir -p $INSTDIR/var/lib/apt/lists/partial
94mkdir -p $INSTDIR/var/cache/apt/archives/partial
95apt-get -qq $APT_OPTS update
96
97# misc setup files
98mkdir -p $INSTDIR/etc
99touch $INSTDIR/etc/mtab
100
101# create some device files
102mkdir $INSTDIR/dev
103mknod $INSTDIR/dev/null c 1 3
104mknod $INSTDIR/dev/console c 5 1
105mknod $INSTDIR/dev/urandom c 1 9
106
107# install base vine linux system.
108echo $"Installing basesystem."
109for i in $BASE_PKGS
110do
111  apt-get -y -qq $APT_OPTS install $i
112done
113
114# remove process limits
115rm -f $INSTDIR/etc/security/limits.d/90-nproc.conf
116
117# run post install script
118vbootstrap_post
119
120echo $"vbootstrap done."
121
Note: See TracBrowser for help on using the repository browser.