@@ -153,6 +153,20 @@ generate_menu() {
153153 ;;
154154 esac
155155
156+ # remove still beta images unless menu is Other
157+ if [[ " $1 " != ' Other' ]]; then
158+ local image beta_image new_rawlist=()
159+ while read image; do
160+ for beta_image in " ${IMAGE_STILL_BETA_OVERRIDES[@]} " ; do
161+ if [[ " $image " == " $beta_image " ]]; then
162+ continue 2
163+ fi
164+ done
165+ new_rawlist+=(" $image " )
166+ done <<< " $RAWLIST"
167+ RAWLIST=" $( printf ' %s\n' " ${new_rawlist[@]} " ) "
168+ fi
169+
156170 # generate formatted list for usage with "dialog"
157171 for i in $RAWLIST ; do
158172 TEMPVAR=" $i "
@@ -550,7 +564,7 @@ create_config() {
550564 local LIMIT=2096128
551565 local THREE_TB=2861588
552566 local DRIVE_SIZE; DRIVE_SIZE=" $( sfdisk -s " $( smallest_hd) " 2> /dev/null) "
553- DRIVE_SIZE=" $( echo " $DRIVE_SIZE " / 1024 | bc) "
567+ DRIVE_SIZE=" $( echo " $DRIVE_SIZE " / 1024 | bc) " # MiB
554568
555569 # adjust swap dynamically according to RAM
556570 # RAM < 2 GB : SWAP=2 * RAM
@@ -569,6 +583,12 @@ create_config() {
569583 SWAPSIZE=$(( RAM / 2 / 1024 + 1 ))
570584 fi
571585
586+ # revert swap size to 4G if swap wouldnt fit into smallest disk
587+ DRIVE_SIZE_GIB=$(( DRIVE_SIZE / 1024 ))
588+ if (( SWAPSIZE >= DRIVE_SIZE_GIB )) ; then
589+ SWAPSIZE=4
590+ fi
591+
572592 ESPPART=' PART /boot/efi esp 256M\n'
573593
574594 if [ " $UEFI " -eq 1 ]; then
@@ -1018,7 +1038,7 @@ validate_vars() {
10181038 graph_error " ERROR: CentOS 6 is EOL since Nov 2020 and installimage does not support CentOS 6 anymore"
10191039 return 1
10201040 fi
1021- if (( UEFI == 1 )) && rhel_9_based_image; then
1041+ if (( UEFI == 1 )) && rhel_9_based_image && test -z " $RHEL9_UEFI_OVERRIDE " ; then
10221042 graph_error " ERROR: we do not yet support $IAM $IMG_VERSION on EFI systems"
10231043 return 1
10241044 fi
@@ -2200,8 +2220,11 @@ make_fstab_entry() {
22002220 if grep -q ' ^/dev/disk/by-' <<< " $1" ; then
22012221 p=' -part'
22022222 else
2203- p=" $( echo $1 | grep nvme) "
2204- [ -n " $p " ] && p=' p'
2223+ local p; p=" "
2224+ local nvme; nvme=" $( echo $1 | grep nvme) "
2225+ [ -n " $nvme " ] && p=' p'
2226+ local disk_by; disk_by=" $( echo $1 | grep ' ^/dev/disk/by-' ) "
2227+ [ -n " $disk_by " ] && p=' -part'
22052228 fi
22062229
22072230 if [ " $4 " = " swap" ] ; then
@@ -2323,10 +2346,10 @@ make_swraid() {
23232346 continue
23242347 elif [ -n " $( echo " $line " | grep " /boot" ) " -a " $metadata_boot " == " --metadata=0.90" ] || [ " $metadata " == " --metadata=0.90" ]; then
23252348 # update fstab - replace /dev/sdaX with /dev/mdY
2326- echo $line | sed " s/$SEDHDD \(p\)\?[0-9]\+/\/dev\/md$md_count /g" >> $fstab
2349+ echo $line | sed " s/$SEDHDD \(p\|-part\ )\?[0-9]\+/\/dev\/md$md_count /g" >> $fstab
23272350 else
23282351 # update fstab - replace /dev/sdaX with /dev/md/Y
2329- echo $line | sed " s/$SEDHDD \(p\)\?[0-9]\+/\/dev\/md\/$md_count /g" >> $fstab
2352+ echo $line | sed " s/$SEDHDD \(p\|-part\ )\?[0-9]\+/\/dev\/md\/$md_count /g" >> $fstab
23302353 fi
23312354
23322355 # create raid array
@@ -2337,8 +2360,12 @@ make_swraid() {
23372360 local n=0
23382361 for n in $( seq 1 $COUNT_DRIVES ) ; do
23392362 TARGETDISK=" $( eval echo \$ DRIVE${n} ) "
2340- local p=" $( echo $TARGETDISK | grep nvme) "
2341- [ -n " $p " ] && p=' p'
2363+ local p; p=" "
2364+ local nvme; nvme=" $( echo $TARGETDISK | grep nvme) "
2365+ [ -n " $nvme " ] && p=' p'
2366+ local disk_by; disk_by=" $( echo $TARGETDISK | grep ' ^/dev/disk/by-' ) "
2367+ [ -n " $disk_by " ] && p=' -part'
2368+
23422369 components=" $components $TARGETDISK$p$PARTNUM "
23432370 done
23442371
@@ -2390,8 +2417,11 @@ make_lvm() {
23902417 if [ -n " $1 " ] ; then
23912418 local fstab=$1
23922419 local disk=$DRIVE1
2393- local p; p=" $( echo " $disk " | grep nvme) "
2394- [ -n " $p " ] && p=' p'
2420+ local p; p=" "
2421+ local nvme; nvme=" $( echo $TARGETDISK | grep nvme) "
2422+ [ -n " $nvme " ] && p=' p'
2423+ local disk_by; disk_by=" $( echo $TARGETDISK | grep ' ^/dev/disk/by-' ) "
2424+ [ -n " $disk_by " ] && p=' -part'
23952425
23962426 # TODO: needs to be removed
23972427 # get device names for PVs depending if we use swraid or not
@@ -2421,7 +2451,7 @@ make_lvm() {
24212451 # remove all Physical Volumes
24222452 debug " # Removing all Physical Volumes"
24232453 while read -r pv vg; do
2424- if [[ " $vg " =~ $PRESERVE_VG ]]; then
2454+ if [[ -n " $PRESERVE_VG " ]] && [[ " $vg " =~ $PRESERVE_VG ]]; then
24252455 debug " Not removing VG $vg "
24262456 else
24272457 pvremove -ff " $pv " 2>&1 | debugoutput
@@ -3850,7 +3880,8 @@ exit_function() {
38503880 echo " https://robot.hetzner.com/"
38513881 echo
38523882
3853- report_install
3883+ report_install_old
3884+ report_install_new
38543885}
38553886
38563887# function to check if it is a intel or amd cpu
@@ -3981,8 +4012,13 @@ function hdinfo() {
39814012 * )
39824013 local smartctl_json model_name serial_number
39834014 if ! smartctl_json=" $( smartctl -i -j " $dev " 2> /dev/null) " ; then
3984- echo ' # unknown'
3985- return
4015+ if is_usb_disk " $dev " ; then
4016+ echo ' # USB disk'
4017+ return
4018+ else
4019+ echo ' # unknown'
4020+ return
4021+ fi
39864022 fi
39874023 model_name=" $( jq -r ' .model_name // empty' <<< " $smartctl_json" 2> /dev/null) " || :
39884024 serial_number=" $( disk_serial " $dev " ) " || :
0 commit comments