blob: 506a848c6c5cf6d980221444f1ef627787419ef7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
#!/bin/bash
# (C) Eric Thibodeau GPL v2
eecho(){
echo "====================================="
echo "$*"
echo "====================================="
}
kernel_links()
{
eecho "Correcting kernel and initramfs links"
cd /boot
ln -s kernel-* vmlinuz
ln -s initramfs-* initramfs
}
unionfs_prep()
{
eecho "=adding unionfs required dirs========"
# for I in etc var tmp
# do
mkdir -p /mnt/rw_mounts/
# done
}
set_runlevel()
{
ln -s /etc/runlevels/default /etc/runlevels/unionfs
}
run_depmod() {
depmod -a -b /usr/src/linux
}
# We do this often in scripts to config files, change OPTION=something to OPTION=other
# in:
# $1: OPTION=other
# $2: /path/to/file.conf
# $3: (Optional) assignment token, defaults to =
# out:
# Changes are made inline
change_opt() {
SEP=${3:-=}
KEY=${1#*${SEP}}
VAL=${1%${SEP}*}
# Replace old value with the new one ;)
sed -e"s:${VAL}${SEP}.*:$1:" -i $2
}
openrc_diskless_setup() {
eecho "=Setting up default RC configs======="
# /etc/rc.conf
for I in 'rc_parallel="yes"' 'rc_depend_strict="NO"' 'rc_tty_number=2'
do
change_opt $I /etc/rc.conf
done
# /etc/conf.d/bootmisc
change_opt 'wipe_tmp="NO"' /etc/conf.d/bootmisc
# /etc/conf.d/net
cat > /etc/conf.d/net <<-EOF
preup() {
local c=0 i
for i in /sys/devices/system/cpu/cpu[0-9]*; do
c=$((${c} + 1))
done
dhcpcd_eth0="--persistent --userclass=\"np=${c}\""
}
EOF
# The above is an alternative which doesn't use wc, thus no superficial process spawning.
# echo 'dhcpcd_eth0="--persistent --userclass=\"$(ls -1d /sys/devices/system/cpu/cpu[0-9]* | /usr/bin/wc -l)\""' >> /etc/conf.d/net
# Set clock to localtime as default
change_opt 'clock="local"' /etc/conf.d/hwclock
change_opt 'clock_systohc="YES"' /etc/conf.d/hwclock
# We don't do this anymore since it puts files into /lib64/rc/init.d/
# and that causes error messages on reboot:
#echo "Pre-generating dependencies..."
#/lib/rc/bin/rc-depend -u
# Instead, we actually clean out that folder:
rm -Rf /lib64/rc/init.d/*
# The following is only useful if some freak grabs the livecd and is in a TZ
# making the /etc files dated in the future (my system is UTC-5
echo "Moving dates to the past so the Cache isn't always regenerated"
find /etc/ -exec touch --date=yesterday {} \;
}
setup_services() {
# Pre-generating sshd keys can be the source of philosophical debates:
eecho "=Pre-generating sshd keys============"
. /etc/init.d/sshd
gen_keys
# ln -s /etc/runlevels/default /etc/runlevels/unionfs
}
dash_is_sh() {
eecho "=Replacing sh with dash=============="
rm /bin/sh
ln -s /bin/dash /bin/sh
}
clear_resolv.conf(){
# we don't want the buildhost's resolv.conf to lie around and confuse things
eecho "=Clearing our resolv.conf============"
echo "" > /etc/resolv.conf
}
setup_ntp-client(){
eecho "=Configuring ntp-client=============="
sed -ie 's:NTPCLIENT_OPTS=.*:NTPCLIENT_OPTS="-s -b -u master.gentoo.local":' /etc/conf.d/ntp-client
}
#kernel_links
dash_is_sh
unionfs_prep
#run_depmod
openrc_diskless_setup
# this one is a hack since catalyst doesn't do it for the moment for some reason
setup_services
# TEMPORARY for testing:
eecho "=Changing root password=============="
echo root:test | chpasswd
exit 0
|