Αφαίρεση παλιών πυρήνων

Ξεκίνησε από Δημήτρης Δαλαγιώργος, 10 Φεβ 2011, 12:18:49 ΜΜ

« προηγούμενο - επόμενο »

Δημήτρης Δαλαγιώργος

όχι της φωτιάς, του Ubuntu  :police:

Τρέχοντας την εντολή:

dpkg -l | grep linux-headers


μου επιστρέφει μόνο τον πιο πρόσφατο πυρήνα του Linux:

ii  linux-headers-2.6.32-28               2.6.32-28.55                                    Header files related to Linux kernel version
ii  linux-headers-2.6.32-28-generic       2.6.32-28.55                                    Linux kernel headers for version 2.6.32 on x
ii  linux-headers-generic                 2.6.32.28.32                                    Generic Linux kernel headers


Όταν όμως ξεκινάει ο υπολογιστής, στο μενού του grub εμφανίζονται πολλές επιλογές πυρήνα. Μάλιστα, αν τρέξω το

sudo update-grub


μου λέει ότι βρέθηκαν τα κάτωθι kernel images τα οποία φυσικά προσθέτει στο αρχικό μενού:

Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.32-28-generic
Found initrd image: /boot/initrd.img-2.6.32-28-generic
Found linux image: /boot/vmlinuz-2.6.32-27-generic
Found initrd image: /boot/initrd.img-2.6.32-27-generic
Found linux image: /boot/vmlinuz-2.6.32-26-generic
Found initrd image: /boot/initrd.img-2.6.32-26-generic
Found linux image: /boot/vmlinuz-2.6.32-25-generic
Found initrd image: /boot/initrd.img-2.6.32-25-generic
Found linux image: /boot/vmlinuz-2.6.32-24-generic
Found initrd image: /boot/initrd.img-2.6.32-24-generic
Found memtest86+ image: /boot/memtest86+.bin
done


Υποτίθεται ότι α) έχω κάνει sudo apt-get autoremove καθώς και β) χειροκίνητη κατάργηση παλιότερων πυρήνων με sudo apt-get remove και τον πυρήνα που θέλω να καταργήσω. Ακόμα κι αν ανοίξω το γραφικό περιβάλλον Synaptic δε βλέπω εγκατεστημένους άλλους πυρήνες εκτός απ' τον πιο πρόσφατο.

Που λοιπόν, βρίσκει το grub τα images των παλιότερων πυρήνων και τα προσθέτει στο αρχικό μενού εκκίνησης και πώς τα καταργώ και απ' το μενού και απ' τον δίσκο ώστε να μην πιάνουν χώρο;
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

alkisg

Είτε από την προσθαφαίρεση προγραμμάτων, είτε με την παρακάτω εντολή φεύγουν οι παλιοί headers:
sudo apt-get purge --auto-remove


Οι παλιοί headers χρησιμεύουν όταν κάνουμε compile. Δεν είναι και τόσο σημαντικοί, και έτσι αφαιρούνται σχετικά αυτοματοποιημένα.

Οι kernels όμως δεν είναι οι headers αλλά τα images:
$ dpkg -l 'linux-image-2*' | grep ^ii
ii  linux-image-2.6.32-28-generic-pae 2.6.32-28.55        Linux kernel image for version 2.6.32 on x86
ii  linux-image-2.6.35-23-generic     2.6.35-23.41~lucid1 Linux kernel image for version 2.6.35 on x86/x86_6


Τα images δεν αφαιρούνται αυτόματα, γιατί μπορεί ο καινούργιος kernel να έχει προβλήματα με το υλικό μας, οπότε να χρειαστούμε τον παλιό.
Έτσι αφαίρεσή τους γίνεται χειρωνακτικά, είτε από το Synaptic είτε με εντολές του στυλ
sudo apt-get purge --auto-remove linux-image-2.6.32-27-generic


Ο boot manager (grub) ενημερώνεται αυτόματα, δεν χρειάζεται να κάνετε κάτι.

za√‘ag

Άλκη τα έκανα όπως λες, αλλά ... έχουν παραμείνει στο μενού εκκίνησης παλιές καταχωρήσεις οι οποίες ΔΕΝ αντιστοιχούν πουθενά (σφάλμα ότι δεν υπάρχουν).

Μόνο μια είναι σωστή και ενεργή (η τελευταία ενημέρωση πυρήνα)

Πώς πρέπει να σβηστούν οι λάθος καταχωρήσεις;

ΥΓ Πολύ ξεπερασμένο το μενού εκκίνησης grub με απλό text ...
«Δεν υπάρχει λόγος να θέλει κανείς έναν υπολογιστή στο σπίτι του»--Ken Olson, πρ. της DEC, 1977
«Τα 640KB RAM επαρκούν για να τρέξει κάθε πρόγραμμα»--Bill Gates
Δείτε κι άλλες ιστορικές ατάκες  εδώ

alkisg

Πωπω πού το ξέθαψες αυτό το περσινό μήνυμα;?! :)

Δώσε τις παρακάτω εντολές, και ανέβασε εδώ το αποτέλεσμα:
Κώδικας: shell
dpkg -l 'linux-*' | grep ^ii
ls -l /boot
sudo update-grub
cat /boot/grub/grub.cfg

za√‘ag

Το "ξέθαψα" μέσω συνδέσμων από παλιότερη ερώτησή μου

Επισυνάπτω σε text όλα τα αποτελέσματα
«Δεν υπάρχει λόγος να θέλει κανείς έναν υπολογιστή στο σπίτι του»--Ken Olson, πρ. της DEC, 1977
«Τα 640KB RAM επαρκούν για να τρέξει κάθε πρόγραμμα»--Bill Gates
Δείτε κι άλλες ιστορικές ατάκες  εδώ

alkisg

Το menu.lst που έχεις εκεί είναι από τον παλιό grub, πριν από την 10.04. Δώσε λίγο:
Κώδικας: shell
dpkg -l '*grub*' | grep ^ii


...και αν δεν έχεις πια τον παλιό grub εγκατεστημένο, δεν χρειάζεσαι πια το menu.lst του, μπορείς να το σβήσεις.

za√‘ag

Μου εμφανίζει:

ii  grub-common                           1.98-1ubuntu13                                  GRand Unified Bootloader, version 2 (common
ii  grub-pc                               1.98-1ubuntu13                                  GRand Unified Bootloader, version 2 (PC/BIOS

Τελικά αφαίρεσα τους παλιούς headers μέσα από τη διαχείριση λογισμικού ... οι παραπάνω εντολές που είχα δώσει δεν έκαναν κάτι.

«Δεν υπάρχει λόγος να θέλει κανείς έναν υπολογιστή στο σπίτι του»--Ken Olson, πρ. της DEC, 1977
«Τα 640KB RAM επαρκούν για να τρέξει κάθε πρόγραμμα»--Bill Gates
Δείτε κι άλλες ιστορικές ατάκες  εδώ

alkisg

Οι headers δεν εμφανίζονται στο μενού του grub όμως, αυτό δεν είπες ότι ήταν το πρόβλημα;

za√‘ag

Εμφανίζονταν μέχρι που τους εσβησα χειροκίνητα από τη διαχείριση λογισμικού. Με εντολές κονσόλας που έδωσα δεν έκανε τίποτα
«Δεν υπάρχει λόγος να θέλει κανείς έναν υπολογιστή στο σπίτι του»--Ken Olson, πρ. της DEC, 1977
«Τα 640KB RAM επαρκούν για να τρέξει κάθε πρόγραμμα»--Bill Gates
Δείτε κι άλλες ιστορικές ατάκες  εδώ

yiannis

Ψάχνοντας το ίδιο θέμα παλιότερα, είχα βρει το παρακάτω πολύ απλό στην εφαρμογή βιντεάκι και έτσι είχα αφαιρέσει όλους τους παλιούς πυρήνες (και από το grub):

http://www.youtube.com/watch?v=9FYW2nGv4gs

alkisg

Τα sch-scripts πια έχουν επιλογή για αφαίρεση των παλιών πυρήνων στο μενού τους, οπότε δεν χρειάζεται να το κάνετε χειρωνακτικά.

yiannis

Επειδή δεν μπορώ να το βρω, μήπως είναι σε ubuntu 12 μόνο; Είμαι ακόμα στο 10...

alkisg

Ναι, είναι μόνο στα sch-scripts της 12.04, αλλά αν κάποιος θέλει μπορεί να το βάλει και στην 10.04 ως εξής:

Κώδικας: shell
sudo wget 'http://bazaar.launchpad.net/~ts.sch.gr/sch-scripts/trunk/download/head:/purgekernels-20120701055942-g8nij7sw8go5ken2-1/purge-kernels' -O /usr/local/sbin/purge-kernels
sudo chmod +x /usr/local/sbin/purge-kernels

# Και μετά εκτέλεση με:
sudo purge-kernels