sossepack
Version från den 12 augusti 2026 kl. 05.13 av Admin (diskussion | bidrag)
Skript: Ta bort Linux-kärna 7.0
Beskrivning
Skriptet är avsett för Ubuntu och Linux Mint. Det kontrollerar först vilken Linux-kärna datorn använder.
Om datorn fortfarande kör en kärna från version 7.0 avbryts skriptet. Datorn måste då startas om med en annan kärna innan version 7.0 kan tas bort.
Skriptet söker efter installerade paket vars namn börjar med linux- och innehåller kärnversionen 7.0. Innan paketen avinstalleras genomförs en provkörning med APT.
Funktioner
- Kontrollerar att skriptet körs som root.
- Kontrollerar att operativsystemet är Ubuntu eller Linux Mint.
- Kontrollerar vilken kärna datorn använder.
- Avbryter om den aktiva kärnan är version 7.0.
- Söker efter installerade kärnpaket för version 7.0.
- Visar vilka paket som kommer att tas bort.
- Genomför en provkörning med APT.
- Kräver att användaren skriver
JA. - Uppdaterar GRUB efter borttagningen.
- Har stöd för provkörning och automatisk bekräftelse.
Skript
Spara följande som ta-bort-kernel-7.0.sh:
#!/usr/bin/env bash
# Tar bort installerade Ubuntu/Mint-kärnpaket för version 7.0.
# Skriptet avbryter om den körande kärnan är en 7.0-kärna.
set -Eeuo pipefail
readonly TARGET_VERSION="7.0"
assume_yes=0
dry_run=0
usage() {
cat <<'EOF'
Användning:
sudo ./ta-bort-kernel-7.0.sh [--yes] [--dry-run]
Val:
-y, --yes Bekräfta borttagningen automatiskt.
-n, --dry-run Visa vad som skulle tas bort utan att ändra något.
-h, --help Visa denna hjälptext.
EOF
}
die() {
echo "FEL: $*" >&2
exit 1
}
while (($# > 0)); do
case "$1" in
-y|--yes)
assume_yes=1
;;
-n|--dry-run)
dry_run=1
;;
-h|--help)
usage
exit 0
;;
*)
usage >&2
die "Okänt argument: $1"
;;
esac
shift
done
((EUID == 0)) ||
die "Skriptet måste köras som root, exempelvis med sudo."
for command_name in uname dpkg-query apt-get sort; do
command -v "$command_name" >/dev/null 2>&1 ||
die "Kommandot '$command_name' saknas."
done
[[ -r /etc/os-release ]] ||
die "/etc/os-release kunde inte läsas."
source /etc/os-release
distribution="${ID:-okänd} ${ID_LIKE:-}"
if [[ "$distribution" != *ubuntu* &&
"$distribution" != *linuxmint* ]]; then
die "Skriptet är avsett för Ubuntu eller Linux Mint."
fi
running_kernel="$(uname -r)"
echo "Körande kärna: $running_kernel"
if [[ "$running_kernel" =~ ^7[.]0([.-]|$) ]]; then
die "Datorn kör fortfarande kärna $running_kernel. Starta om med en annan kärna först."
fi
if [[ ! -e "/boot/vmlinuz-$running_kernel" ]]; then
die "Filen /boot/vmlinuz-$running_kernel saknas. Ingen borttagning gjordes."
fi
packages=()
while IFS=$'\t' read -r package_name package_status; do
[[ "$package_status" == "installed" ]] || continue
base_name="${package_name%%:*}"
if [[ "$base_name" == linux-* &&
"$base_name" =~ (^|-)7[.]0([.-]|$) ]]; then
packages+=("$package_name")
fi
done < <(
dpkg-query -W \
-f='${binary:Package}\t${db:Status-Status}\n' \
2>/dev/null
)
if ((${#packages[@]} == 0)); then
echo "Inga installerade kärnpaket för version 7.0 hittades."
exit 0
fi
mapfile -t packages < <(
printf '%s\n' "${packages[@]}" | sort -u
)
echo
echo "Följande ${#packages[@]} paket hittades:"
printf ' %s\n' "${packages[@]}"
echo
echo "APT:s beräkning av hela borttagningen:"
apt-get --simulate purge "${packages[@]}"
echo
if ((dry_run)); then
echo "Provkörningen är klar. Inga paket togs bort."
exit 0
fi
if ((!assume_yes)); then
[[ -t 0 ]] ||
die "Ingen terminal hittades. Kör med --yes för automatisk bekräftelse."
read -r -p "Skriv JA för att ta bort paketen: " answer
[[ "$answer" == "JA" ]] ||
die "Avbrutet av användaren."
fi
echo "Tar bort kärnpaket för version 7.0 ..."
DEBIAN_FRONTEND=noninteractive \
apt-get purge -y -- "${packages[@]}"
if command -v update-grub >/dev/null 2>&1; then
echo "Uppdaterar GRUB-menyn ..."
update-grub
else
echo "VARNING: update-grub hittades inte." >&2
fi
echo
echo "Klart. Datorn kör fortfarande kärna $running_kernel."
echo "Kontrollera efter nästa omstart med: uname -r"
Installation
Gör skriptet körbart:
chmod +x ta-bort-kernel-7.0.sh
Provkörning
Kontrollera först vad som skulle tas bort:
sudo ./ta-bort-kernel-7.0.sh --dry-run
Inga paket avinstalleras vid provkörningen.
Genomför borttagningen
sudo ./ta-bort-kernel-7.0.sh
Skriv JA när skriptet frågar om paketen ska tas bort.
Automatisk bekräftelse
För att genomföra borttagningen utan en fråga:
sudo ./ta-bort-kernel-7.0.sh --yes
Hjälpskärm
./ta-bort-kernel-7.0.sh --help
Kontroll efter omstart
uname -r
Resultatet ska inte börja med 7.0.