så backar du kernel version i Ubuntu

Från Wiki.linux.se -Linux wikipedia på Svenska.
Version från den 12 augusti 2026 kl. 05.35 av Admin (diskussion | bidrag) (Skapade sidan med '= Skript: Ta bort Linux-kärna 7.0 = == Bakgrund == Det har visat sig att Broadcom-drivrutinerna som kan installeras i Ubuntu 24.04 kan få problem med Linux-kärna 7.0. Broadcoms nätverkskretsar är mycket vanliga i äldre MacBook- och HP-datorer. Starta därför datorn med en äldre Linux-kärna, vanligtvis version 6.14, innan du använder skriptet. Kontrollera vilken kärna datorn använder med: <pre> uname -r </pre> Resultatet får inte börja med <code>7.0</c...')
(skillnad) ← Äldre version | Nuvarande version (skillnad) | Nyare version → (skillnad)
Hoppa till navigering Hoppa till sök

Skript: Ta bort Linux-kärna 7.0

Bakgrund

Det har visat sig att Broadcom-drivrutinerna som kan installeras i Ubuntu 24.04 kan få problem med Linux-kärna 7.0. Broadcoms nätverkskretsar är mycket vanliga i äldre MacBook- och HP-datorer.

Starta därför datorn med en äldre Linux-kärna, vanligtvis version 6.14, innan du använder skriptet.

Kontrollera vilken kärna datorn använder med:

uname -r

Resultatet får inte börja med 7.0 när skriptet körs.

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 äldre 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 Linux-kärna datorn använder.
  • Avbryter om den aktiva kärnan är version 7.0.
  • Kontrollerar att den aktiva kärnans fil finns i /boot.
  • 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

Kör skriptet:

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 bekräftelsefråga:

sudo ./ta-bort-kernel-7.0.sh --yes

Hjälpskärm

Visa skriptets hjälptext:

./ta-bort-kernel-7.0.sh --help

Kontroll efter omstart

Starta om datorn och kontrollera vilken kärna som används:

uname -r

Resultatet ska inte börja med 7.0.


Sidslut

Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp som har sponsrat Linux.se med webbhotell.