/[smeserver]/cdrom.image/sme10/netinstall/ks.cfg
ViewVC logotype

Contents of /cdrom.image/sme10/netinstall/ks.cfg

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.12 - (show annotations) (download)
Wed Jun 9 07:59:52 2021 UTC (3 years, 6 months ago) by jpp
Branch: MAIN
Changes since 1.11: +8 -8 lines
mirrorlist

1 # System authorization information
2 auth --enableshadow --passalgo=sha512
3
4 # We do not want SELinux
5 selinux --disabled
6
7 # Services to activate
8 services --disabled=lm_sensors
9
10 # Default root pass, will be changed in post-install process anyway
11 rootpw --lock
12 user --name=installer --uid=9999
13
14 # Accept EULA
15 eula --agreed
16
17 # Partitioning from pre section
18 %include /tmp/part-include
19
20 # Disable kdump
21 %addon com_redhat_kdump --disable
22 %end
23
24
25 # Add netinstall repos
26 url --mirrorlist https://mirrorlist.koozali.org/mirrorlist/smeos-10-x86_64
27 repo --name=smeupdates --mirrorlist https://mirrorlist.koozali.org/mirrorlist/smeupdates-10-x86_64
28 #url --url http://distro.ibiblio.org/pub/linux/distributions/smeserver/releases/10/smeos/x86_64/
29 #repo --name=smeupdates --baseurl http://distro.ibiblio.org/pub/linux/distributions/smeserver/releases/10/smeupdates/x86_64/
30
31 # Packages to install
32 # need to unselect to be able to use mirrorlist or anaconda errors before loading repo.
33 %packages
34 #@^minimal
35 #@base
36 #@core
37 -chrony
38 -kexec-tools
39 %end
40
41
42 # Partitioning in pre-install
43 %pre --interpreter=/bin/bash --log=/var/log/sme-partitioning.log
44
45 # Read command line arguments
46 if grep nolvm "/proc/cmdline" ; then NOLVM=true ; fi
47 if grep noraid "/proc/cmdline" ; then NORAID=true ; fi
48 if grep noxfs "/proc/cmdline" ; then FSTYPE="ext4" ; else FSTYPE="xfs" ; fi
49 echo "Command line arguments:"
50 cat /proc/cmdline
51
52 # Minimum size of hard drive needed specified in MB
53 MINSIZE=5000
54
55 # Number of detected drives and first disk size
56 NDEV=0
57 BASESIZE=0
58 SIZEDIFF=0
59
60 # Loop through block devices, keep those over MINSIZE and ensure additional drives for RAID are within 100MB of the first
61 for DEV in $(lsblk -nl | grep disk | cut -d' ' -f1) ; do
62 if [ -d /sys/block/$DEV ] ; then
63 REMOVABLE=`cat /sys/block/$DEV/removable`
64 if (( $REMOVABLE == 0 )) ; then
65 SIZE=`cat /sys/block/$DEV/size`
66 MB=$(($SIZE/2**11))
67 if [ $MB -gt $MINSIZE ] ; then
68 if [ $NDEV == 0 ] ; then
69 echo "First drive found: $DEV with size $MB MB"
70 DRIVES[$NDEV]=$DEV
71 BASESIZE=$MB
72 ((NDEV++))
73 else
74 SIZEDIFF=$(($MB-$BASESIZE))
75 if [ $SIZEDIFF -gt 100 ] || [ $SIZEDIFF -lt -100 ] ; then
76 echo "Drive found but size of $MB MB doesn't match $BASESIZE MB - ignoring"
77 else
78 echo "Additional drive found: $DEV with size $MB MB"
79 DRIVES[$NDEV]=$DEV
80 ((NDEV++))
81 fi
82 fi
83 fi
84 fi
85 fi
86 done
87 echo "Total disks found: $NDEV"
88
89 # Calculate recommended swap size for RAID + nolvm case
90 if [ -d /sys/firmware/efi ] ; then
91 DISKSPARE=$(($BASESIZE-200-500-3000))
92 else
93 DISKSPARE=$(($BASESIZE-1-500-3000))
94 fi
95 MEMSIZE=$(awk '/^MemTotal:/{print $2}' /proc/meminfo)
96 MEMSIZEMB=$(($MEMSIZE/2**10))
97
98 if [ $MEMSIZEMB -lt 2000 ] ; then
99 SWAPSIZE=$((2*$MEMSIZEMB))
100 elif [ $MEMSIZEMB -lt 8000 ] ; then
101 SWAPSIZE=$MEMSIZEMB
102 else
103 SWAPSIZE=8000
104 fi
105 if [ $SWAPSIZE -gt $DISKSPARE ] ; then SWAPSIZE=$DISKSPARE ; fi
106
107 # Declare useful variables
108 printf -v DRIVELIST ",%s" "${DRIVES[@]}"
109 if [ $NORAID ] ; then
110 DRIVELIST=${DRIVES[0]}
111 else
112 DRIVELIST=${DRIVELIST:1}
113 fi
114
115 echo "Final drive list: $DRIVELIST"
116 LEVEL=1
117 SPARE=0
118
119
120 # Error if detection has failed and fall back
121 if [ ${#DRIVES[@]} == 0 ] ; then
122 echo "No drive suitable for installation found! Reverting to Anaconda defaults."
123
124 cat > /tmp/part-include <<EOF
125 # Clear the Master Boot Record
126 zerombr
127
128 # Clear current partitions
129 clearpart --all --initlabel
130
131 # Automatically create partitions using LVM
132 autopart --lvm --nohome
133 EOF
134
135 # Otherwise clear detected devices and set up bootloader
136 else
137 cat > /tmp/part-include <<EOF
138 # Clear the Master Boot Record
139 zerombr
140
141 # Clear current partitions and install bootloader
142 clearpart --all --drives=$DRIVELIST --initlabel
143 ignoredisk --only-use=$DRIVELIST
144 bootloader --location=mbr --driveorder=$DRIVELIST
145 EOF
146
147 # If single disk or noraid specific then set up partitioning without RAID
148 # NOTE: From this point we're appending to part-include
149 if [ ${#DRIVES[@]} == 1 ] || [ $NORAID ] ; then
150
151 # Include the EFI or biosboot partition if necessary
152 if [ -d /sys/firmware/efi ] ; then
153 printf "part /boot/efi --fstype=efi --size=200 --ondisk=%s\n" "${DRIVES[0]}" >> /tmp/part-include
154 elif [ $BASESIZE -gt 2048000 ] ; then
155 printf "part biosboot --fstype=biosboot --size=1 --ondisk=%s\n" "${DRIVES[0]}" >> /tmp/part-include
156 fi
157
158 # Create boot partition
159 printf "part /boot --fstype=%s --size=500 --label=BOOT --ondisk=%s\n" "$FSTYPE" "${DRIVES[0]}" >> /tmp/part-include
160
161 # Default to LVM unless specified at command line
162 if [ $NOLVM ] ; then
163 cat >> /tmp/part-include <<EOF
164 part / --fstype=$FSTYPE --grow --size=3000 --label=ROOT --ondisk=${DRIVES[0]}
165 part swap --fstype=swap --recommended --label=SWAP --ondisk=${DRIVES[0]}
166 EOF
167 else
168 cat >> /tmp/part-include <<EOF
169 part pv.01 --size=4300 --grow --ondisk=${DRIVES[0]}
170 volgroup main pv.01
171 logvol / --fstype=$FSTYPE --name=root --vgname=main --grow --size=3000
172 logvol swap --fstype=swap --name=swap --vgname=main --recommended
173 EOF
174 fi
175
176 # Otherwise multiple disks - prepare for RAID
177 else
178
179 # Define EFI or biosboot and RAID partitions
180 for i in "${!DRIVES[@]}"; do
181
182 if [ -d /sys/firmware/efi ] ; then
183 printf "part raid.%s0 --size=200 --ondisk=%s\n" "$i" "${DRIVES[$i]}" >> /tmp/part-include
184 elif [ $BASESIZE -gt 2048000 ] ; then
185 printf "part biosboot --fstype=biosboot --size=1 --ondisk=%s\n" "${DRIVES[$i]}" >> /tmp/part-include
186 fi
187 printf "part raid.%s1 --size=500 --ondisk=%s\n" "$i" "${DRIVES[$i]}" >> /tmp/part-include
188
189 # Default to LVM unless specified
190 if [ $NOLVM ] ; then
191 printf "part raid.%s2 --size=3000 --grow --ondisk=%s\n" "$i" "${DRIVES[$i]}" >> /tmp/part-include
192 printf "part raid.%s3 --size=%s --ondisk=%s\n" "$i" "$SWAPSIZE" "${DRIVES[$i]}" >> /tmp/part-include
193 else
194 printf "part raid.%s2 --size=4300 --grow --ondisk=%s\n" "$i" "${DRIVES[$i]}" >> /tmp/part-include
195 fi
196
197 done
198
199 # Compute RAID level
200 # from https://wiki.contribs.org/Raid
201 # 2 Drives - Software RAID 1
202 # 3 Drives - Software RAID 1 + 1 Hot-spare
203 # 4 Drives - Software RAID 6
204 # 5+ Drives - Software RAID 6 + 1 Hot-spare
205
206 if [ ${#DRIVES[@]} == 2 ] ; then
207 LEVEL=1
208 SPARE=0
209 elif [ ${#DRIVES[@]} == 3 ] ; then
210 LEVEL=1
211 SPARE=1
212 elif [ ${#DRIVES[@]} == 4 ] ; then
213 LEVEL=6
214 SPARE=0
215 else
216 LEVEL=6
217 SPARE=1
218 fi
219
220 # Set up RAID devices
221 printf -v EFIDEVS "raid.%s0 " "${!DRIVES[@]}"
222 printf -v BOOTDEVS "raid.%s1 " "${!DRIVES[@]}"
223 printf -v ROOTDEVS "raid.%s2 " "${!DRIVES[@]}"
224 printf -v SWAPDEVS "raid.%s3 " "${!DRIVES[@]}"
225
226 # Include the EFI partition if necessary
227 if [ -d /sys/firmware/efi ] ; then
228 printf "raid /boot/efi --fstype=efi --level=1 --spares=0 --device=md9 %s\n" "$EFIDEVS" >> /tmp/part-include
229 fi
230
231 # Boot partition
232 printf "raid /boot --fstype=%s --level=1 --spares=0 --device=md0 %s\n" "$FSTYPE" "$BOOTDEVS" >> /tmp/part-include
233
234 # Default to LVM unless specified
235 if [ $NOLVM ] ; then
236 cat >> /tmp/part-include <<EOF
237 raid / --fstype=$FSTYPE --level=$LEVEL --spares=$SPARE --device=md1 $ROOTDEVS
238 raid swap --fstype=swap --level=$LEVEL --spares=$SPARE --device=md2 $SWAPDEVS
239 EOF
240 else
241 cat >> /tmp/part-include <<EOF
242 raid pv.01 --level=$LEVEL --spares=$SPARE --device=md1 $ROOTDEVS
243 volgroup main pv.01
244 logvol / --fstype=$FSTYPE --name=root --vgname=main --grow --size=3000
245 logvol swap --fstype swap --name=swap --vgname=main --recommended
246 EOF
247 fi
248 fi
249 fi
250
251 echo "Final part-include output:"
252 cat /tmp/part-include
253
254 %end
255
256
257 # SME events in post-install
258 %post --interpreter=/usr/bin/bash --log=/var/log/ks.post02.log
259 userdel -r installer
260 sleep 2
261 /sbin/e-smith/signal-event post-install
262 sleep 2
263 /sbin/e-smith/db configuration set UnsavedChanges no
264 touch /forcequotacheck
265 %end
266
267
268 %post --nochroot --log=/mnt/sysimage/var/log/ks.post01.log
269 #!/bin/bash
270 sysimage="/mnt/sysimage"
271 cp -r /var/log/sme-partitioning.log ${sysimage}/root/
272 cp -r /tmp/anaconda.log ${sysimage}/root/
273 %end

admin@koozali.org
ViewVC Help
Powered by ViewVC 1.2.1 RSS 2.0 feed