Les vieux noyaux

DéBé Membre non connecté
-
- Voir le profil du membre DéBé
- Inscrit le : 30/01/2010
- Groupes :
Reprise du message précédent
vigen :
Merci pour cette réponse complète ! 

+ 1
Finistère - Matériel : Desktop :Mga 9 x86-64 sur SSD 120 Go Plasma5 - Intel I5-6500 3,2 Ghz /Ram 8 Go --Lenovo T 410 Mga 9 x86-64 Plasma 5 Le monde ne sera pas détruit par ceux qui font le mal, mais par ceux qui les regardent sans rien faire.” Albert Einstein

gerard-ll Membre non connecté
-
- Voir le profil du membre gerard-ll
- Inscrit le : 09/12/2011
- Groupes :
En ce dimanche 18 septembre 2022 j'ai refais un nettoyage de mes vieux noyaux!

Tout ça en espace supplémentaire! :
Code TEXT :
Gain : 1869124 k - Kernels in /boot/: 2
Ce n'est pas négligeable tout de même

Si j'en crois Osmo qu'on a dans les dépôts, il s'est passé 10 mois et 6 jours depuis le début de cette conversation où j'avais aussi fait la même manipulation.
Preuve que le temps passe toujours dans le même sens.
![:] :]](/images/smileys/8.gif)

Pal mal Mageia!
@+
Gérard
@+
Gérard

OPS56 Membre non connecté
-
- Voir le profil du membre OPS56
- Inscrit le : 18/11/2008
- Groupes :
joel :
Bonjour,
Un script pour supprimer les vieux noyaux :
Un script pour supprimer les vieux noyaux :
Caché :
#!/bin/bash
# Remove old kernels safely and cleanly. As it uses urpme, grub is automatically updated.
#
# LISTK contains the list of kernels to analyse
# The script keep the NBK most recents for each of them
# Pierre Jarillon - 3 avril 2018 - Tested on Mageia 5..8
# Jean-Baptiste Biernacki 2021
# rev 2021-08-07 PJ
# Script permettant de supprimer les anciens kernels
# Si il est lancé en tant que root, il propose de supprimer les kernels écrits en rouge. Si on le lance sans être root, il fait le test de la même façon mais affiche "Must be root" et se termine.
# Nouvelle version ajoutant la protection du noyau en cours et des options.
# Utilisation : remove-old-kernels : [-a] [-d] [-n valeur]
# -a = automatique, pas de question. Interactif si non spécifié
# -d = mode débogage ou test, rien n'est supprimé, urpme est simulé
# -n valeur = nombre de noyaux à garder (-n3 ou -n 3 garde 3 noyaux), Min=2, Défaut=2
# Par exemple remove-old-kernels -d -a ( ou -ad ou -ad) permet de simuler un mode automatique sans rien modifier.
# Ce script peut être lancé avec plusieurs options. Pour les afficher :
# remove-old-kernels -?
# Seul root peut réduire le nombre de kernels. Lancé avec un autre compte, on
# obtient un état des noyaux présents et des packages rpm correspondants.
# Avec le mode -t (ou -d) les modifications sont simulées.
VERSION="Remove-old-kernels 0.9 n"
DEBUG=0 # 1 for debug/test mode, urpme is simulated and not applied
NBK=2 # Number of kernels to keep
MODE="I" # mode A)utomatic, I)nteractve
VISU=0 # If VISU=1, show commands which can be used
USAGE=
"Usage: %s: [-a] [-d] [-t] [-n value] [-p]
-a = automatic, no question. Interactive if not specified
-d or -t = Debug or test mode, nothing is removed, urpme is simulated
-n value = number of kernels to keep (-n3 or -n 3 keep 3 kernels), Min=2, Default=2
-p = show (print) the urpme commands which can be used
-v = version
-? or -h = show this help.
Old kernels are removed safely and cleanly. As urpme is used, grub is automatically updated.n
"
# Colors
Normal="�33[0m"
Green="�33[32m"
Red="�33[31m"
GrBg="�33[102;30m" # Green Background
ClearLine="r�33[2K" # Clear the line
LISTK=
"kernel-desktop586
kernel-desktop
kernel-desktop-devel
kernel-server
kernel-server-devel
kernel-source
kernel-tmb-desktop
kernel-tmb-desktop-devel
kernel-tmb-source
kernel-linus
kernel-linus-devel
kernel-linus-source
"
#Parsing arguments
if [[ ${#} -gt 0 ]] ; then
while getopts adtpvn:?h NAME ; do
case ${NAME} in
a) MODE="A";;
d|t) DEBUG=1 ;;
p) VISU=1 ;;
n) NBK=${OPTARG} ;;
v) printf "${VERSION}"
exit 2;;
?|h) printf "${USAGE}" ${0}
exit 2;;
esac
done
if [[ ${NBK} -lt 2 ]]; then
NBK=2 # Unsafe if less
fi
fi
# Get the release of the current kernel
CURK=$(uname -r | cut -d- -f1)
# Storage for the list of kernels to remove
TMPKTR=$(mktemp)
# Check storage usage on root partition
OCCDISK1=$(df -B 1k -l --output=used / | tail -n1 | awk '{ print $1 }')
#================================= Analyse /boot/ =============================
NK=$(ls /boot/vmlinuz*.mga* | wc -l)
echo -e "${GrBg} Number of kernels in /boot/ : ${NK} ${Normal} "
#================================= Analyse rpm =============================
for kernelType in ${LISTK} ; do
echo -ne "${ClearLine}"
echo -ne "r ==> ${kernelType}"
export n=0;
installedKernelCounter=0;
rpm -qa --last "${kernelType}-[0-9]*" | while read installedKernel ; do
# Not possible, as it is kernelType-[0-9]andAnything and kernelType-lastest is not included.
# [ $(echo ${installedKernel} | grep "latest" | wc -l ) -eq 1 ] && continue # Security
installedKernelCounter=$((${installedKernelCounter} + 1))
#Return to the line if there exists at least one installedKernel of this kernelType
if [[ ${installedKernelCounter} -eq 1 ]] ; then echo "" ; fi
installedKernelPackage=$(echo ${installedKernel} | cut -d ' ' -f 1 )
if [[ $(echo ${installedKernel} | grep ${CURK} | wc -l ) -eq 1 ]] ; then
NOTA="used now " # current kernel
REMVBL=0 # not removable
else
NOTA="" # not currently used
REMVBL=1 # is removable
fi
if [[ ${installedKernelCounter} -gt $NBK ]] ; then
if [[ ${REMVBL} -ne 1 ]] ; then
echo -e "r ${installedKernelCounter} : keep : ${Green}${installedKernel} ${Normal}${NOTA}"
else
echo -e "r ${installedKernelCounter} : remove : ${Red}${installedKernel} ${Normal}${NOTA}"
echo ${installedKernelPackage} >>${TMPKTR}
fi
else
echo -e "r ${installedKernelCounter} : keep : ${Green}${installedKernel} ${Normal}${NOTA}"
fi
done
done
echo -e "${ClearLine}"
#================================= Mode of execution ===================
nbt=$(cat ${TMPKTR} | wc -l)
if [[ ${nbt} -ne 0 ]] ; then
if [[ $(id -u) -ne 0 ]] ; then
echo "Must be root to allow urpme"
if [ ${VISU} -eq 1 ]; then
for f in $(tac ${TMPKTR}) ; do
echo "urpme ${f}"
done
fi
else
if [[ ${MODE} != "A" ]] ; then
if [[ ${DEBUG} -eq 1 ]] ; then
echo -e "n${Green}>> Debug/test mode is on - kernels won't be removed <<${Normal}"
fi
plural="s" ; [ ${nbt} -eq 1 ] && plural=""
read -p "Remove ${nbt} kernel${plural} ? y/N/i (i=confirm for each) " -n 1 response
if [[ -z ${response} ]] ; then response="n" ; fi
case ${response} in
[Yy])
AUTO="--auto"
ASK=0
MODE="A"
echo -e " n" ;;
[Ii])
AUTO="--auto"
MODE="I"
echo " interactif" ;;
*)
echo -e "nAborted"
rm -f ${TMPKTR}
exit 0 ;;
esac
fi
#================================= Execution ===========================
for installedKernelPackage in $(tac ${TMPKTR}) ; do
if [[ ${MODE} = "I" ]] ; then # --- interactive mode ---
read -p "Remove ${installedKernelPackage} ? y/N/q (q=quit/abort) " -n 1 response
if [[ -z ${response} ]] ; then response="N" ; fi
case ${response} in
[Yy])
if [[ ${DEBUG} -eq 1 ]] ; then
echo "nDEBUG: Could execute: urpme ${AUTO} ${installedKernelPackage}"
nbt=$((${nbt} - 1))
else
urpme ${installedKernelPackage}
nbt=$((${nbt} - 1))
fi
;;
[qQ])
echo -e "nAborted"
rm -f ${TMPKTR}
exit 0 ;;
*)
#echo "do nothing"
continue
;;
esac
else # --- automatic mode ---
if [[ ${DEBUG} -eq 1 ]] ; then
echo "DEBUG: Could execute: urpme ${AUTO} ${installedKernelPackage}"
nbt=$((${nbt} - 1))
else
#echo "Here is the execution"
urpme ${AUTO} ${installedKernelPackage}
nbt=$((${nbt} - 1))
fi
fi
done
NK=$(ls /boot/vmlinuz*.mga? | wc -l)
OCCDISK2=$(df -B 1k -l --output=used / | tail -n1 | awk '{ print $1 }')
echo -e "${GrBg} Gain : $((OCCDISK1 - OCCDISK2)) k - Kernels in /boot/: ${NK} ${Normal}"
fi
fi
rm -f ${TMPKTR}
# Run again if some removable kernels are left
[ $(id -u) -ne 0 ] && exit 0
[ ${MODE} != "I" ] && exit 0
[ ${nbt} -gt 0 ] && ${0}
#!/bin/bash
# Remove old kernels safely and cleanly. As it uses urpme, grub is automatically updated.
#
# LISTK contains the list of kernels to analyse
# The script keep the NBK most recents for each of them
# Pierre Jarillon - 3 avril 2018 - Tested on Mageia 5..8
# Jean-Baptiste Biernacki 2021
# rev 2021-08-07 PJ
# Script permettant de supprimer les anciens kernels
# Si il est lancé en tant que root, il propose de supprimer les kernels écrits en rouge. Si on le lance sans être root, il fait le test de la même façon mais affiche "Must be root" et se termine.
# Nouvelle version ajoutant la protection du noyau en cours et des options.
# Utilisation : remove-old-kernels : [-a] [-d] [-n valeur]
# -a = automatique, pas de question. Interactif si non spécifié
# -d = mode débogage ou test, rien n'est supprimé, urpme est simulé
# -n valeur = nombre de noyaux à garder (-n3 ou -n 3 garde 3 noyaux), Min=2, Défaut=2
# Par exemple remove-old-kernels -d -a ( ou -ad ou -ad) permet de simuler un mode automatique sans rien modifier.
# Ce script peut être lancé avec plusieurs options. Pour les afficher :
# remove-old-kernels -?
# Seul root peut réduire le nombre de kernels. Lancé avec un autre compte, on
# obtient un état des noyaux présents et des packages rpm correspondants.
# Avec le mode -t (ou -d) les modifications sont simulées.
VERSION="Remove-old-kernels 0.9 n"
DEBUG=0 # 1 for debug/test mode, urpme is simulated and not applied
NBK=2 # Number of kernels to keep
MODE="I" # mode A)utomatic, I)nteractve
VISU=0 # If VISU=1, show commands which can be used
USAGE=
"Usage: %s: [-a] [-d] [-t] [-n value] [-p]
-a = automatic, no question. Interactive if not specified
-d or -t = Debug or test mode, nothing is removed, urpme is simulated
-n value = number of kernels to keep (-n3 or -n 3 keep 3 kernels), Min=2, Default=2
-p = show (print) the urpme commands which can be used
-v = version
-? or -h = show this help.
Old kernels are removed safely and cleanly. As urpme is used, grub is automatically updated.n
"
# Colors
Normal="�33[0m"
Green="�33[32m"
Red="�33[31m"
GrBg="�33[102;30m" # Green Background
ClearLine="r�33[2K" # Clear the line
LISTK=
"kernel-desktop586
kernel-desktop
kernel-desktop-devel
kernel-server
kernel-server-devel
kernel-source
kernel-tmb-desktop
kernel-tmb-desktop-devel
kernel-tmb-source
kernel-linus
kernel-linus-devel
kernel-linus-source
"
#Parsing arguments
if [[ ${#} -gt 0 ]] ; then
while getopts adtpvn:?h NAME ; do
case ${NAME} in
a) MODE="A";;
d|t) DEBUG=1 ;;
p) VISU=1 ;;
n) NBK=${OPTARG} ;;
v) printf "${VERSION}"
exit 2;;
?|h) printf "${USAGE}" ${0}
exit 2;;
esac
done
if [[ ${NBK} -lt 2 ]]; then
NBK=2 # Unsafe if less
fi
fi
# Get the release of the current kernel
CURK=$(uname -r | cut -d- -f1)
# Storage for the list of kernels to remove
TMPKTR=$(mktemp)
# Check storage usage on root partition
OCCDISK1=$(df -B 1k -l --output=used / | tail -n1 | awk '{ print $1 }')
#================================= Analyse /boot/ =============================
NK=$(ls /boot/vmlinuz*.mga* | wc -l)
echo -e "${GrBg} Number of kernels in /boot/ : ${NK} ${Normal} "
#================================= Analyse rpm =============================
for kernelType in ${LISTK} ; do
echo -ne "${ClearLine}"
echo -ne "r ==> ${kernelType}"
export n=0;
installedKernelCounter=0;
rpm -qa --last "${kernelType}-[0-9]*" | while read installedKernel ; do
# Not possible, as it is kernelType-[0-9]andAnything and kernelType-lastest is not included.
# [ $(echo ${installedKernel} | grep "latest" | wc -l ) -eq 1 ] && continue # Security
installedKernelCounter=$((${installedKernelCounter} + 1))
#Return to the line if there exists at least one installedKernel of this kernelType
if [[ ${installedKernelCounter} -eq 1 ]] ; then echo "" ; fi
installedKernelPackage=$(echo ${installedKernel} | cut -d ' ' -f 1 )
if [[ $(echo ${installedKernel} | grep ${CURK} | wc -l ) -eq 1 ]] ; then
NOTA="used now " # current kernel
REMVBL=0 # not removable
else
NOTA="" # not currently used
REMVBL=1 # is removable
fi
if [[ ${installedKernelCounter} -gt $NBK ]] ; then
if [[ ${REMVBL} -ne 1 ]] ; then
echo -e "r ${installedKernelCounter} : keep : ${Green}${installedKernel} ${Normal}${NOTA}"
else
echo -e "r ${installedKernelCounter} : remove : ${Red}${installedKernel} ${Normal}${NOTA}"
echo ${installedKernelPackage} >>${TMPKTR}
fi
else
echo -e "r ${installedKernelCounter} : keep : ${Green}${installedKernel} ${Normal}${NOTA}"
fi
done
done
echo -e "${ClearLine}"
#================================= Mode of execution ===================
nbt=$(cat ${TMPKTR} | wc -l)
if [[ ${nbt} -ne 0 ]] ; then
if [[ $(id -u) -ne 0 ]] ; then
echo "Must be root to allow urpme"
if [ ${VISU} -eq 1 ]; then
for f in $(tac ${TMPKTR}) ; do
echo "urpme ${f}"
done
fi
else
if [[ ${MODE} != "A" ]] ; then
if [[ ${DEBUG} -eq 1 ]] ; then
echo -e "n${Green}>> Debug/test mode is on - kernels won't be removed <<${Normal}"
fi
plural="s" ; [ ${nbt} -eq 1 ] && plural=""
read -p "Remove ${nbt} kernel${plural} ? y/N/i (i=confirm for each) " -n 1 response
if [[ -z ${response} ]] ; then response="n" ; fi
case ${response} in
[Yy])
AUTO="--auto"
ASK=0
MODE="A"
echo -e " n" ;;
[Ii])
AUTO="--auto"
MODE="I"
echo " interactif" ;;
*)
echo -e "nAborted"
rm -f ${TMPKTR}
exit 0 ;;
esac
fi
#================================= Execution ===========================
for installedKernelPackage in $(tac ${TMPKTR}) ; do
if [[ ${MODE} = "I" ]] ; then # --- interactive mode ---
read -p "Remove ${installedKernelPackage} ? y/N/q (q=quit/abort) " -n 1 response
if [[ -z ${response} ]] ; then response="N" ; fi
case ${response} in
[Yy])
if [[ ${DEBUG} -eq 1 ]] ; then
echo "nDEBUG: Could execute: urpme ${AUTO} ${installedKernelPackage}"
nbt=$((${nbt} - 1))
else
urpme ${installedKernelPackage}
nbt=$((${nbt} - 1))
fi
;;
[qQ])
echo -e "nAborted"
rm -f ${TMPKTR}
exit 0 ;;
*)
#echo "do nothing"
continue
;;
esac
else # --- automatic mode ---
if [[ ${DEBUG} -eq 1 ]] ; then
echo "DEBUG: Could execute: urpme ${AUTO} ${installedKernelPackage}"
nbt=$((${nbt} - 1))
else
#echo "Here is the execution"
urpme ${AUTO} ${installedKernelPackage}
nbt=$((${nbt} - 1))
fi
fi
done
NK=$(ls /boot/vmlinuz*.mga? | wc -l)
OCCDISK2=$(df -B 1k -l --output=used / | tail -n1 | awk '{ print $1 }')
echo -e "${GrBg} Gain : $((OCCDISK1 - OCCDISK2)) k - Kernels in /boot/: ${NK} ${Normal}"
fi
fi
rm -f ${TMPKTR}
# Run again if some removable kernels are left
[ $(id -u) -ne 0 ] && exit 0
[ ${MODE} != "I" ] && exit 0
[ ${nbt} -gt 0 ] && ${0}
Bonjour à tous,
Ce script très partique ne semble pas fonctionner avec Mageia 9

A première vue je ne vois pas de limitation dans la version de Mageia, mais j'avoue ne pas tout comprendre.
Quelqu'un aurait-il une explication ?
@+
Édité par OPS56 Le 23/04/2023 à 11h08

Dell G3-15 Intel Corei7 - 16Go Ram - Nvidia GTX1660 Ti (Tri boot Mageia 9- 64 bits / Linux Mint 20 Cinamon/ Windows 10)
Core i5 760 - 8Go Ram - Nvidia Gforce 450 - (Triple boot Mageia 9-64 bits - Plasma 5 / Mint 20 Cinamon / Open Suse Tumbleweed - Plasma 5)

steven Membre non connecté
-
- Voir le profil du membre steven
- Inscrit le : 18/05/2018
OPS56 :
joel :
Bonjour,
Caché :
#!/bin/bash
# Remove old kernels safely and cleanly. As it uses urpme, grub is automatically updated.
#
# LISTK contains the list of kernels to analyse
# The script keep the NBK most recents for each of them
# Pierre Jarillon - 3 avril 2018 - Tested on Mageia 5..8
# Jean-Baptiste Biernacki 2021
# rev 2021-08-07 PJ
# Script permettant de supprimer les anciens kernels
# Si il est lancé en tant que root, il propose de supprimer les kernels écrits en rouge. Si on le lance sans être root, il fait le test de la même façon mais affiche "Must be root" et se termine.
# Nouvelle version ajoutant la protection du noyau en cours et des options.
# Utilisation : remove-old-kernels : [-a] [-d] [-n valeur]
# -a = automatique, pas de question. Interactif si non spécifié
# -d = mode débogage ou test, rien n'est supprimé, urpme est simulé
# -n valeur = nombre de noyaux à garder (-n3 ou -n 3 garde 3 noyaux), Min=2, Défaut=2
# Par exemple remove-old-kernels -d -a ( ou -ad ou -ad) permet de simuler un mode automatique sans rien modifier.
# Ce script peut être lancé avec plusieurs options. Pour les afficher :
# remove-old-kernels -?
# Seul root peut réduire le nombre de kernels. Lancé avec un autre compte, on
# obtient un état des noyaux présents et des packages rpm correspondants.
# Avec le mode -t (ou -d) les modifications sont simulées.
VERSION="Remove-old-kernels 0.9 n"
DEBUG=0 # 1 for debug/test mode, urpme is simulated and not applied
NBK=2 # Number of kernels to keep
MODE="I" # mode A)utomatic, I)nteractve
VISU=0 # If VISU=1, show commands which can be used
USAGE=
"Usage: %s: [-a] [-d] [-t] [-n value] [-p]
-a = automatic, no question. Interactive if not specified
-d or -t = Debug or test mode, nothing is removed, urpme is simulated
-n value = number of kernels to keep (-n3 or -n 3 keep 3 kernels), Min=2, Default=2
-p = show (print) the urpme commands which can be used
-v = version
-? or -h = show this help.
Old kernels are removed safely and cleanly. As urpme is used, grub is automatically updated.n
"
# Colors
Normal="�33[0m"
Green="�33[32m"
Red="�33[31m"
GrBg="�33[102;30m" # Green Background
ClearLine="r�33[2K" # Clear the line
LISTK=
"kernel-desktop586
kernel-desktop
kernel-desktop-devel
kernel-server
kernel-server-devel
kernel-source
kernel-tmb-desktop
kernel-tmb-desktop-devel
kernel-tmb-source
kernel-linus
kernel-linus-devel
kernel-linus-source
"
#Parsing arguments
if [[ ${#} -gt 0 ]] ; then
while getopts adtpvn:?h NAME ; do
case ${NAME} in
a) MODE="A";;
d|t) DEBUG=1 ;;
p) VISU=1 ;;
n) NBK=${OPTARG} ;;
v) printf "${VERSION}"
exit 2;;
?|h) printf "${USAGE}" ${0}
exit 2;;
esac
done
if [[ ${NBK} -lt 2 ]]; then
NBK=2 # Unsafe if less
fi
fi
# Get the release of the current kernel
CURK=$(uname -r | cut -d- -f1)
# Storage for the list of kernels to remove
TMPKTR=$(mktemp)
# Check storage usage on root partition
OCCDISK1=$(df -B 1k -l --output=used / | tail -n1 | awk '{ print $1 }')
#================================= Analyse /boot/ =============================
NK=$(ls /boot/vmlinuz*.mga* | wc -l)
echo -e "${GrBg} Number of kernels in /boot/ : ${NK} ${Normal} "
#================================= Analyse rpm =============================
for kernelType in ${LISTK} ; do
echo -ne "${ClearLine}"
echo -ne "r ==> ${kernelType}"
export n=0;
installedKernelCounter=0;
rpm -qa --last "${kernelType}-[0-9]*" | while read installedKernel ; do
# Not possible, as it is kernelType-[0-9]andAnything and kernelType-lastest is not included.
# [ $(echo ${installedKernel} | grep "latest" | wc -l ) -eq 1 ] && continue # Security
installedKernelCounter=$((${installedKernelCounter} + 1))
#Return to the line if there exists at least one installedKernel of this kernelType
if [[ ${installedKernelCounter} -eq 1 ]] ; then echo "" ; fi
installedKernelPackage=$(echo ${installedKernel} | cut -d ' ' -f 1 )
if [[ $(echo ${installedKernel} | grep ${CURK} | wc -l ) -eq 1 ]] ; then
NOTA="used now " # current kernel
REMVBL=0 # not removable
else
NOTA="" # not currently used
REMVBL=1 # is removable
fi
if [[ ${installedKernelCounter} -gt $NBK ]] ; then
if [[ ${REMVBL} -ne 1 ]] ; then
echo -e "r ${installedKernelCounter} : keep : ${Green}${installedKernel} ${Normal}${NOTA}"
else
echo -e "r ${installedKernelCounter} : remove : ${Red}${installedKernel} ${Normal}${NOTA}"
echo ${installedKernelPackage} >>${TMPKTR}
fi
else
echo -e "r ${installedKernelCounter} : keep : ${Green}${installedKernel} ${Normal}${NOTA}"
fi
done
done
echo -e "${ClearLine}"
#================================= Mode of execution ===================
nbt=$(cat ${TMPKTR} | wc -l)
if [[ ${nbt} -ne 0 ]] ; then
if [[ $(id -u) -ne 0 ]] ; then
echo "Must be root to allow urpme"
if [ ${VISU} -eq 1 ]; then
for f in $(tac ${TMPKTR}) ; do
echo "urpme ${f}"
done
fi
else
if [[ ${MODE} != "A" ]] ; then
if [[ ${DEBUG} -eq 1 ]] ; then
echo -e "n${Green}>> Debug/test mode is on - kernels won't be removed <<${Normal}"
fi
plural="s" ; [ ${nbt} -eq 1 ] && plural=""
read -p "Remove ${nbt} kernel${plural} ? y/N/i (i=confirm for each) " -n 1 response
if [[ -z ${response} ]] ; then response="n" ; fi
case ${response} in
[Yy])
AUTO="--auto"
ASK=0
MODE="A"
echo -e " n" ;;
[Ii])
AUTO="--auto"
MODE="I"
echo " interactif" ;;
*)
echo -e "nAborted"
rm -f ${TMPKTR}
exit 0 ;;
esac
fi
#================================= Execution ===========================
for installedKernelPackage in $(tac ${TMPKTR}) ; do
if [[ ${MODE} = "I" ]] ; then # --- interactive mode ---
read -p "Remove ${installedKernelPackage} ? y/N/q (q=quit/abort) " -n 1 response
if [[ -z ${response} ]] ; then response="N" ; fi
case ${response} in
[Yy])
if [[ ${DEBUG} -eq 1 ]] ; then
echo "nDEBUG: Could execute: urpme ${AUTO} ${installedKernelPackage}"
nbt=$((${nbt} - 1))
else
urpme ${installedKernelPackage}
nbt=$((${nbt} - 1))
fi
;;
[qQ])
echo -e "nAborted"
rm -f ${TMPKTR}
exit 0 ;;
*)
#echo "do nothing"
continue
;;
esac
else # --- automatic mode ---
if [[ ${DEBUG} -eq 1 ]] ; then
echo "DEBUG: Could execute: urpme ${AUTO} ${installedKernelPackage}"
nbt=$((${nbt} - 1))
else
#echo "Here is the execution"
urpme ${AUTO} ${installedKernelPackage}
nbt=$((${nbt} - 1))
fi
fi
done
NK=$(ls /boot/vmlinuz*.mga? | wc -l)
OCCDISK2=$(df -B 1k -l --output=used / | tail -n1 | awk '{ print $1 }')
echo -e "${GrBg} Gain : $((OCCDISK1 - OCCDISK2)) k - Kernels in /boot/: ${NK} ${Normal}"
fi
fi
rm -f ${TMPKTR}
# Run again if some removable kernels are left
[ $(id -u) -ne 0 ] && exit 0
[ ${MODE} != "I" ] && exit 0
[ ${nbt} -gt 0 ] && ${0}
#!/bin/bash
# Remove old kernels safely and cleanly. As it uses urpme, grub is automatically updated.
#
# LISTK contains the list of kernels to analyse
# The script keep the NBK most recents for each of them
# Pierre Jarillon - 3 avril 2018 - Tested on Mageia 5..8
# Jean-Baptiste Biernacki 2021
# rev 2021-08-07 PJ
# Script permettant de supprimer les anciens kernels
# Si il est lancé en tant que root, il propose de supprimer les kernels écrits en rouge. Si on le lance sans être root, il fait le test de la même façon mais affiche "Must be root" et se termine.
# Nouvelle version ajoutant la protection du noyau en cours et des options.
# Utilisation : remove-old-kernels : [-a] [-d] [-n valeur]
# -a = automatique, pas de question. Interactif si non spécifié
# -d = mode débogage ou test, rien n'est supprimé, urpme est simulé
# -n valeur = nombre de noyaux à garder (-n3 ou -n 3 garde 3 noyaux), Min=2, Défaut=2
# Par exemple remove-old-kernels -d -a ( ou -ad ou -ad) permet de simuler un mode automatique sans rien modifier.
# Ce script peut être lancé avec plusieurs options. Pour les afficher :
# remove-old-kernels -?
# Seul root peut réduire le nombre de kernels. Lancé avec un autre compte, on
# obtient un état des noyaux présents et des packages rpm correspondants.
# Avec le mode -t (ou -d) les modifications sont simulées.
VERSION="Remove-old-kernels 0.9 n"
DEBUG=0 # 1 for debug/test mode, urpme is simulated and not applied
NBK=2 # Number of kernels to keep
MODE="I" # mode A)utomatic, I)nteractve
VISU=0 # If VISU=1, show commands which can be used
USAGE=
"Usage: %s: [-a] [-d] [-t] [-n value] [-p]
-a = automatic, no question. Interactive if not specified
-d or -t = Debug or test mode, nothing is removed, urpme is simulated
-n value = number of kernels to keep (-n3 or -n 3 keep 3 kernels), Min=2, Default=2
-p = show (print) the urpme commands which can be used
-v = version
-? or -h = show this help.
Old kernels are removed safely and cleanly. As urpme is used, grub is automatically updated.n
"
# Colors
Normal="�33[0m"
Green="�33[32m"
Red="�33[31m"
GrBg="�33[102;30m" # Green Background
ClearLine="r�33[2K" # Clear the line
LISTK=
"kernel-desktop586
kernel-desktop
kernel-desktop-devel
kernel-server
kernel-server-devel
kernel-source
kernel-tmb-desktop
kernel-tmb-desktop-devel
kernel-tmb-source
kernel-linus
kernel-linus-devel
kernel-linus-source
"
#Parsing arguments
if [[ ${#} -gt 0 ]] ; then
while getopts adtpvn:?h NAME ; do
case ${NAME} in
a) MODE="A";;
d|t) DEBUG=1 ;;
p) VISU=1 ;;
n) NBK=${OPTARG} ;;
v) printf "${VERSION}"
exit 2;;
?|h) printf "${USAGE}" ${0}
exit 2;;
esac
done
if [[ ${NBK} -lt 2 ]]; then
NBK=2 # Unsafe if less
fi
fi
# Get the release of the current kernel
CURK=$(uname -r | cut -d- -f1)
# Storage for the list of kernels to remove
TMPKTR=$(mktemp)
# Check storage usage on root partition
OCCDISK1=$(df -B 1k -l --output=used / | tail -n1 | awk '{ print $1 }')
#================================= Analyse /boot/ =============================
NK=$(ls /boot/vmlinuz*.mga* | wc -l)
echo -e "${GrBg} Number of kernels in /boot/ : ${NK} ${Normal} "
#================================= Analyse rpm =============================
for kernelType in ${LISTK} ; do
echo -ne "${ClearLine}"
echo -ne "r ==> ${kernelType}"
export n=0;
installedKernelCounter=0;
rpm -qa --last "${kernelType}-[0-9]*" | while read installedKernel ; do
# Not possible, as it is kernelType-[0-9]andAnything and kernelType-lastest is not included.
# [ $(echo ${installedKernel} | grep "latest" | wc -l ) -eq 1 ] && continue # Security
installedKernelCounter=$((${installedKernelCounter} + 1))
#Return to the line if there exists at least one installedKernel of this kernelType
if [[ ${installedKernelCounter} -eq 1 ]] ; then echo "" ; fi
installedKernelPackage=$(echo ${installedKernel} | cut -d ' ' -f 1 )
if [[ $(echo ${installedKernel} | grep ${CURK} | wc -l ) -eq 1 ]] ; then
NOTA="used now " # current kernel
REMVBL=0 # not removable
else
NOTA="" # not currently used
REMVBL=1 # is removable
fi
if [[ ${installedKernelCounter} -gt $NBK ]] ; then
if [[ ${REMVBL} -ne 1 ]] ; then
echo -e "r ${installedKernelCounter} : keep : ${Green}${installedKernel} ${Normal}${NOTA}"
else
echo -e "r ${installedKernelCounter} : remove : ${Red}${installedKernel} ${Normal}${NOTA}"
echo ${installedKernelPackage} >>${TMPKTR}
fi
else
echo -e "r ${installedKernelCounter} : keep : ${Green}${installedKernel} ${Normal}${NOTA}"
fi
done
done
echo -e "${ClearLine}"
#================================= Mode of execution ===================
nbt=$(cat ${TMPKTR} | wc -l)
if [[ ${nbt} -ne 0 ]] ; then
if [[ $(id -u) -ne 0 ]] ; then
echo "Must be root to allow urpme"
if [ ${VISU} -eq 1 ]; then
for f in $(tac ${TMPKTR}) ; do
echo "urpme ${f}"
done
fi
else
if [[ ${MODE} != "A" ]] ; then
if [[ ${DEBUG} -eq 1 ]] ; then
echo -e "n${Green}>> Debug/test mode is on - kernels won't be removed <<${Normal}"
fi
plural="s" ; [ ${nbt} -eq 1 ] && plural=""
read -p "Remove ${nbt} kernel${plural} ? y/N/i (i=confirm for each) " -n 1 response
if [[ -z ${response} ]] ; then response="n" ; fi
case ${response} in
[Yy])
AUTO="--auto"
ASK=0
MODE="A"
echo -e " n" ;;
[Ii])
AUTO="--auto"
MODE="I"
echo " interactif" ;;
*)
echo -e "nAborted"
rm -f ${TMPKTR}
exit 0 ;;
esac
fi
#================================= Execution ===========================
for installedKernelPackage in $(tac ${TMPKTR}) ; do
if [[ ${MODE} = "I" ]] ; then # --- interactive mode ---
read -p "Remove ${installedKernelPackage} ? y/N/q (q=quit/abort) " -n 1 response
if [[ -z ${response} ]] ; then response="N" ; fi
case ${response} in
[Yy])
if [[ ${DEBUG} -eq 1 ]] ; then
echo "nDEBUG: Could execute: urpme ${AUTO} ${installedKernelPackage}"
nbt=$((${nbt} - 1))
else
urpme ${installedKernelPackage}
nbt=$((${nbt} - 1))
fi
;;
[qQ])
echo -e "nAborted"
rm -f ${TMPKTR}
exit 0 ;;
*)
#echo "do nothing"
continue
;;
esac
else # --- automatic mode ---
if [[ ${DEBUG} -eq 1 ]] ; then
echo "DEBUG: Could execute: urpme ${AUTO} ${installedKernelPackage}"
nbt=$((${nbt} - 1))
else
#echo "Here is the execution"
urpme ${AUTO} ${installedKernelPackage}
nbt=$((${nbt} - 1))
fi
fi
done
NK=$(ls /boot/vmlinuz*.mga? | wc -l)
OCCDISK2=$(df -B 1k -l --output=used / | tail -n1 | awk '{ print $1 }')
echo -e "${GrBg} Gain : $((OCCDISK1 - OCCDISK2)) k - Kernels in /boot/: ${NK} ${Normal}"
fi
fi
rm -f ${TMPKTR}
# Run again if some removable kernels are left
[ $(id -u) -ne 0 ] && exit 0
[ ${MODE} != "I" ] && exit 0
[ ${nbt} -gt 0 ] && ${0}
Bonjour tout le monde,
De ce que j'en ai lu, effectivement, il y aurais des choses a reecrire 8O
@+
No Comment ...
Merci de ne pas 'rebondir' sur mes post's
Censor => 2025





Yuusha Membre non connecté
-
- Voir le profil du membre Yuusha
- Inscrit le : 04/07/2017
- Groupes :
-
Modérateur
-
Administrateur
-
Forgeron
Normalement, un outil de suppression des noyaux est maintenant directement intégré à Mageia 9.

OPS56 Membre non connecté
-
- Voir le profil du membre OPS56
- Inscrit le : 18/11/2008
- Groupes :
Yuusha :
Bonjour,
Normalement, un outil de suppression des noyaux est maintenant directement intégré à Mageia 9.
Normalement, un outil de suppression des noyaux est maintenant directement intégré à Mageia 9.
Bonjour Yuusha,
Ah ? Intéressant. Tu en as trop dis ou pas assez


Dell G3-15 Intel Corei7 - 16Go Ram - Nvidia GTX1660 Ti (Tri boot Mageia 9- 64 bits / Linux Mint 20 Cinamon/ Windows 10)
Core i5 760 - 8Go Ram - Nvidia Gforce 450 - (Triple boot Mageia 9-64 bits - Plasma 5 / Mint 20 Cinamon / Open Suse Tumbleweed - Plasma 5)

Guygoye Membre non connecté
-
- Voir le profil du membre Guygoye
- Inscrit le : 25/10/2018
- Groupes :
-
Modérateur
-
Forgeron
J'en ai entendu parler mais je ne sais pas si c'est implémenté graphiquement quelque part...

Yuusha Membre non connecté
-
- Voir le profil du membre Yuusha
- Inscrit le : 04/07/2017
- Groupes :
-
Modérateur
-
Administrateur
-
Forgeron

OPS56 Membre non connecté
-
- Voir le profil du membre OPS56
- Inscrit le : 18/11/2008
- Groupes :
Yuusha :
Je l'ai dans la bêta 1. Il est apparu tout seul. C'est dans Outils. L'application s'appelle Remove Old kernels. C'est une application terminal avec une interface.
Je l'ai installé via le ccm et semble fonctionner comme le script précédent

@+

Dell G3-15 Intel Corei7 - 16Go Ram - Nvidia GTX1660 Ti (Tri boot Mageia 9- 64 bits / Linux Mint 20 Cinamon/ Windows 10)
Core i5 760 - 8Go Ram - Nvidia Gforce 450 - (Triple boot Mageia 9-64 bits - Plasma 5 / Mint 20 Cinamon / Open Suse Tumbleweed - Plasma 5)

Antoniop Membre non connecté
-
- Voir le profil du membre Antoniop
- Inscrit le : 21/12/2011
- Groupes :
Bonne année, au fait
Je viens de découvrir cet outil, et c'est très pratique. Enfin !
https://wiki.mageia.org/en/Removing_packages#Remove_old_kernels
Parce que, ce qui est le plus souvent mis à jour sur Mageia, c'est quand même les noyaux !
Sur mon portable, j'avais encore des rpm qui dataient de mga7 !
J'ai gagné 16 Go

A noter que si on a migré de mg8 à mga9, cette commande n'est pas installée par défaut, dans le cas contraire oui.
Du coup, je l'ai installé
et j'ai lancé la purge manuelle :
sudo remove-old-kernels -a
Édité par Antoniop Le 13/01/2024 à 15h52

scroll44 Membre non connecté
-
- Voir le profil du membre scroll44
- Inscrit le : 24/09/2022
- Groupes :
Je viens d'installer le programme vu que j'ai migré de Mageia8 à Mageia9.
Deux questions :
- Dois-je le lancer de temps en temps ou cela se fera automatiquement maintenant ?
- Pour l'installer, j'ai dû insérer la clé usb d'installation. C'est la deuxième fois que cela m'arrive… Est-ce normal ?
Merci.

OPS56 Membre non connecté
-
- Voir le profil du membre OPS56
- Inscrit le : 18/11/2008
- Groupes :
scroll44 :Bonjour,
- Pour l'installer, j'ai dû insérer la clé usb d'installation. C'est la deuxième fois que cela m'arrive… Est-ce normal ?
Pour cela tu dois désactiver les deux premières lignes dans la liste de tes dépôts.
C'est expliqué dans le point n°4 sur le wiki ici :
https://www.mageialinux-online.org/wiki/configurer-sa-base-urpmi
@+

Dell G3-15 Intel Corei7 - 16Go Ram - Nvidia GTX1660 Ti (Tri boot Mageia 9- 64 bits / Linux Mint 20 Cinamon/ Windows 10)
Core i5 760 - 8Go Ram - Nvidia Gforce 450 - (Triple boot Mageia 9-64 bits - Plasma 5 / Mint 20 Cinamon / Open Suse Tumbleweed - Plasma 5)

Antoniop Membre non connecté
-
- Voir le profil du membre Antoniop
- Inscrit le : 21/12/2011
- Groupes :
scroll44 :
- Dois-je le lancer de temps en temps ou cela se fera automatiquement maintenant ?
Hello, d'après le wiki cela tourne automatiquement "It works in the background without any user intervention and defaults to keeping the three most recently installed kernels. "
Je conseille de le lancer en manuel une première fois (option -a), cela a pris pas mal de temps pour moi, j'avais pas mal de vieux kernels d'installés. En même temps c'est instructif, on voit ce qu'il fait.
Édité par Antoniop Le 14/01/2024 à 10h03
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie