/[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.2 - (show annotations) (download)
Wed Nov 25 14:10:36 2020 UTC (3 years, 6 months ago) by chrissn
Branch: MAIN
Changes since 1.1: +128 -65 lines
* Wed Nov 25 2020 Chris Sansom-Ninnes <chris@sansom.ninnes.net>
- Added RAID support for netinstall [SME: 10918]
- Added text install option for netinstall

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
13 # Accept EULA
14 eula --agreed
15
16 # Partitioning from pre section
17 %include /tmp/part-include
18
19 # Disable kdump
20 %addon com_redhat_kdump --disable
21 %end
22
23
24 # Add netinstall repos
25 url --url https://mirror.canada.pialasse.com/releases/testing/10/smeos/x86_64/
26 repo --name=smeupdates --baseurl=https://mirror.canada.pialasse.com/releases/testing/10/smeupdates/x86_64/
27
28 # Packages to install
29 %packages
30 @^minimal
31 @base
32 @core
33 -chrony
34 -kexec-tools
35 %end
36
37
38 # Partitioning in pre-install
39 %pre --interpreter=/bin/bash --log=/var/log/ks.pre01.log
40
41 # Minimum size of hard drive needed specified in GB
42 MINSIZE=5
43
44 # Number of detected drives
45 NDEV=0
46
47 # Loop through block devices and keep those over MINSIZE
48 # TODO: Only pair up drives of the same size
49 for DEV in $(lsblk -nl | grep disk | cut -d' ' -f1); do
50 if [ -d /sys/block/$DEV ]; then
51 REMOVABLE=`cat /sys/block/$DEV/removable`
52 if (( $REMOVABLE == 0 )); then
53 SIZE=`cat /sys/block/$DEV/size`
54 GB=$(($SIZE/2**21))
55 if [ $GB -gt $MINSIZE ]; then
56 DRIVES[$NDEV]=$DEV
57 ((NDEV++))
58 fi
59 fi
60 fi
61 done
62
63 # Declare useful variables
64 printf -v DRIVELIST ",%s" "${DRIVES[@]}"
65 DRIVELIST=${DRIVELIST:1}
66 LEVEL=1
67 SPARE=0
68
69 # Error if detection has failed and fall back
70 if [ ${#DRIVES[@]} == 0 ] ; then
71 echo "No drive suitable for installation found! Reverting to Anaconda defaults."
72
73 cat > /tmp/part-include <<EOF
74 # Clear the Master Boot Record
75 zerombr
76
77 # Clear current partitions
78 clearpart --all --initlabel
79
80 # Automatically create partitions using LVM
81 autopart --lvm --nohome
82 EOF
83
84 # Otherwise clear detected devices and set up bootloader
85 else
86 cat > /tmp/part-include <<EOF
87 # Clear the Master Boot Record
88 zerombr
89
90 # Clear current partitions and install bootloader
91 clearpart --all --drives=$DRIVELIST --initlabel
92 ignoredisk --only-use=$DRIVELIST
93 bootloader --location=mbr --driveorder=$DRIVELIST
94 EOF
95
96 # If single disk then set up partitioning without RAID
97 # NOTE: From this point we're appending to part-include
98 if [ ${#DRIVES[@]} == 1 ] ; then
99
100 # Include the EFI partition if necessary
101 if [ -d /sys/firmware/efi ] ; then
102 printf "part /boot/efi --fstype=efi --size=200 --ondisk=%s\n" "${DRIVES[0]}" >> /tmp/part-include
103 fi
104
105 cat >> /tmp/part-include <<EOF
106 part /boot --fstype=xfs --size=500 --ondisk=${DRIVES[0]} --label=BOOT
107 part pv.01 --size=4300 --grow --ondisk=${DRIVES[0]}
108 volgroup main pv.01
109 logvol / --fstype=xfs --name=root --vgname=main --grow --size=3000 --label=ROOT
110 logvol swap --fstype=swap --name=swap --vgname=main --recommended --label=SWAP
111 EOF
112
113 # Otherwise multiple disks - prepare for RAID
114 else
115
116 # Define EFI, boot and LVM RAID partitions
117 for i in "${!DRIVES[@]}"; do
118 if [ -d /sys/firmware/efi ] ; then
119 printf "part raid.%s0 --size=200 --ondisk=%s\n" "$i" "${DRIVES[$i]}" >> /tmp/part-include
120 fi
121 printf "part raid.%s1 --size=500 --ondisk=%s\n" "$i" "${DRIVES[$i]}" >> /tmp/part-include
122 printf "part raid.%s2 --size=4300 --grow --ondisk=%s\n" "$i" "${DRIVES[$i]}" >> /tmp/part-include
123 done
124
125 # Compute RAID level
126 # from https://wiki.contribs.org/Raid
127 # 2 Drives - Software RAID 1
128 # 3 Drives - Software RAID 1 + 1 Hot-spare
129 # 4-6 Drives - Software RAID 5 + 1 Hot-spare
130 # 7+ Drives - Software RAID 6 + 1 Hot-spare
131
132 if [ ${#DRIVES[@]} == 2 ] ; then
133 LEVEL=1
134 SPARE=0
135 elif [ ${#DRIVES[@]} == 3 ] ; then
136 LEVEL=1
137 SPARE=1
138 elif (( ${#DRIVES[@]} > 3 && ${#DRIVES[@]} <= 6 )) ; then
139 LEVEL=5
140 SPARE=1
141 else
142 LEVEL=6
143 SPARE=1
144 fi
145
146 # Set up RAID devices
147 printf -v EFIDEVS "raid.%s0 " "${!DRIVES[@]}"
148 printf -v BOOTDEVS "raid.%s1 " "${!DRIVES[@]}"
149 printf -v ROOTDEVS "raid.%s2 " "${!DRIVES[@]}"
150
151 # Include the EFI partition if necessary
152 if [ -d /sys/firmware/efi ] ; then
153 printf "raid /boot/efi --fstype=efi --level=1 --spares=%s --device=md9 %s\n" "$SPARE" "$EFIDEVS" >> /tmp/part-include
154 fi
155
156 printf "raid /boot --fstype=xfs --level=1 --spares=%s --device=md0 %s\n" "$SPARE" "$BOOTDEVS" >> /tmp/part-include
157 printf "raid pv.01 --level=%s --spares=%s --device=md1 %s\n" "$LEVEL" "$SPARE" "$ROOTDEVS" >> /tmp/part-include
158
159 # Set up LVM
160 cat >> /tmp/part-include <<EOF
161 volgroup main pv.01
162 logvol / --fstype xfs --name=root --vgname=main --grow --size=3000 --label=ROOT
163 logvol swap --fstype swap --name=swap --vgname=main --recommended --label=SWAP
164 EOF
165
166 fi
167 fi
168
169 %end
170
171
172 # SME events in post-install
173 %post --interpreter=/usr/bin/bash --log=/var/log/ks.post02.log
174 /sbin/rsyslogd;
175 sleep 2;
176 /sbin/e-smith/signal-event post-install;
177 sleep 2;
178 /sbin/e-smith/db configuration set UnsavedChanges no;
179 touch /forcequotacheck
180 %end
181
182
183 %post --nochroot --log=/mnt/sysimage/var/log/ks.post01.log
184 #!/bin/bash
185 sysimage="/mnt/sysimage"
186 cp -r /tmp/anaconda.log ${sysimage}/root/
187 %end

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