Trin 3 - Kiosk Opgradering til Ubuntu 22.04


Dette script er tredje skridt i opgraderingen til Ubuntu 22.04 på OS2borgerPC Kiosk.


Source: Download script

Last Updated: 11. September 2025 by Agnete Moos (agms@sonderborg.dk)

Parameters:

Navn Type Standardværdi Påkrævet
Click to see the source code
#!/usr/bin/env bash
#================================================================
# HEADER
#================================================================
#% SYNOPSIS
#+    kiosk_lts_upgrade_in_place_step_3.sh
#%
#% DESCRIPTION
#%    Step three of the upgrade from 20.04 to 22.04.
#%    Designed for Kiosk machines
#%
#================================================================
#- IMPLEMENTATION
#-    version         kiosk_lts_upgrade_in_place_step_3.sh 0.0.1
#-    author          Andreas Poulsen
#-    copyright       Copyright 2022, Magenta Aps
#-    license         BSD/MIT
#-    email           info@magenta.dk
#-
#================================================================
#  HISTORY
#     2022/12/08 : ap : Script creation
#
#================================================================
# END_OF_HEADER
#================================================================

set -ex

if ! get_os2borgerpc_config os2_product | grep --quiet kiosk; then
  echo "Dette script er ikke designet til at blive anvendt på en regulær OS2borgerPC-maskine."
  exit 1
fi

PREVIOUS_STEP_DONE="/etc/os2borgerpc/second_upgrade_step_done"
if [ ! -f "$PREVIOUS_STEP_DONE" ]; then
  echo "22.04 opgradering - Opgradering til Ubuntu 22.04 trin 2 er ikke blevet gennemført."
  exit 1
fi

REBOOT_REQUIRED_FILE="/var/run/reboot-required"
if [ -f "$REBOOT_REQUIRED_FILE" ]; then
  echo "Computeren skal genstartes før kørsel af dette script. Genstart computeren og kør scriptet igen."
  exit 1
fi

# Make double sure that the crontab has been emptied
TMP_ROOTCRON=/etc/os2borgerpc/tmp_rootcronfile
if [ -f "$TMP_ROOTCRON" ]; then
  crontab -r || true
fi

# Prevent the upgrade from removing python while we are using it to run jobmanager
apt-mark hold python3.8

# Make sure release-upgrade prompt is not never so that the upgrade can run
# Also set the prompt to lts so that the upgrader will only look for lts releases
release_upgrades_file=/etc/update-manager/release-upgrades

sed -i "s/Prompt=.*/Prompt=lts/" $release_upgrades_file

# Perform the actual upgrade with some error handling
do-release-upgrade -f DistUpgradeViewNonInteractive >  /var/log/os2borgerpc_upgrade_1.log || true

apt-get --assume-yes --fix-broken install || true
apt-get --assume-yes autoremove || true
apt-get --assume-yes clean || true
apt-get --assume-yes install --upgrade python3-pip || true

# Make sure that jobmanager can still find the client
PIP_ERRORS="False"
pip install -q os2borgerpc_client || PIP_ERRORS="True"

if [ "$PIP_ERRORS" == "True" ]; then
  mkdir --parents /usr/local/lib/python3.10
  cp --recursive --no-clobber /usr/local/lib/python3.8/dist-packages/ /usr/local/lib/python3.10/
fi

if ! lsb_release -d | grep --quiet 22; then
  echo "Opgraderingen er ikke blevet gennemført. Prøv at genstarte computeren og køre dette script igen."
  exit 1
fi

# Update the os_release config
RELEASE=$(lsb_release --release --short)
set_os2borgerpc_config os_release "$RELEASE"
os2borgerpc_push_config_keys os_release

rm --force $PREVIOUS_STEP_DONE

touch /etc/os2borgerpc/third_upgrade_step_done

Beskrivelse

Læs HELE beskrivelsen før I kører dette eller et andet opgraderingsscript. Det anbefales at I starter med at teste opgraderingen på en enkelt maskine.

Maskinen må ikke slukkes eller sættes i dvale, mens trin 2 eller 3 kører. Det første trin i opgraderingsprocessen slår eventuelle planlagte nedlukninger fra, og det sidste trin genaktiverer dem, men det er vigtigt, at maskinen ikke slukkes på knappen eller får taget strømmen, mens trin 2 eller 3 kører.

Undgå at køre andre scripts på maskinen, før hele opgraderingsprocessen er færdig.

Herunder beskrives opgraderingsprocessen for almindelig OS2borgerPC:

  1. Kør scriptet “Opgradering til Ubuntu 22.04 trin 1”. Det skal stå som udført.

  2. Kør scriptet “Opgradering til Ubuntu 22.04 trin 2”. Det skal stå som udført. Dette script opdaterer computeren og kan tage op til 30-40 minutter, hvis computeren ikke er blevet opdateret i længere tid. Hvis det fejler med en besked ala “Unable to acquire dpkg frontend lock…” er det fordi computeren er ved at køre automatiske opdateringer. Vent 5 minutter og prøv at køre scriptet igen. Hvis det fejler med en besked om “uopfyldte afhængigheder” kan det ofte løses ved at køre scriptet igen.

  3. Genstart computeren fx via scriptet “System - Genstart computeren NU”

  4. Kør scriptet “Opgradering til Ubuntu 22.04 trin 3”. Det skal stå som udført. Dette script udfører selve opgraderingen og kan tage op til en time.

  5. Genstart computeren fx via scriptet “System - Genstart computeren NU”

  6. Kør scriptet “Opgradering til Ubuntu 22.04 trin 4”. Dette script udfører de sidste justeringer. Det skal stå som udført.

  7. Maskinen er nu opgraderet til Ubuntu 22.04

Herunder beskrives opgraderingsprocessen for OS2borgerPC Kiosk:

  1. Kør scriptet “Opgradering til Ubuntu 22.04 trin 1”. Det skal stå som udført.

  2. Kør scriptet “Opgradering til Ubuntu 22.04 trin 2”. Det skal stå som udført. Dette script opdaterer computeren og kan tage op til 30-40 minutter, hvis computeren ikke er blevet opdateret i længere tid. Hvis det fejler med en besked ala “Unable to acquire dpkg frontend lock…” er det fordi computeren er ved at køre automatiske opdateringer. Vent 5 minutter og prøv at køre scriptet igen. Hvis det fejler med en besked om “uopfyldte afhængigheder” kan det ofte løses ved at køre scriptet igen.

  3. Genstart computeren fx via scriptet “System - Genstart computeren NU”

  4. Kør scriptet “Kiosk Opgradering til Ubuntu 22.04 trin 3”. Det skal stå som udført. Dette script udfører selve opgraderingen og kan tage op til en time.

  5. Kør scriptet “Kiosk Opgradering til Ubuntu 22.04 trin 4”. Dette script udfører de sidste justeringer. Det skal stå som udført.

  6. Maskinen er nu opgraderet til Ubuntu 22.04