Mon premier problème était quand j'ai essayé apt-get update
ou apt-get upgrade
. Lors de la mise à niveau, j'obtiens l'erreur suivante:
You might want to run 'apt-get -f install' to correct these.
The following packages have unmet dependencies:
linux-image-server : Depends: linux-image-3.2.0-27-generic but it is not installed
E: Unmet dependencies. Try using -f.
J'ai essayé de lancer apt-get install -f et c'était la sortie (après avoir dit oui à l'invite)
(Reading database ... 186183 files and directories currently installed.)
Unpacking linux-image-3.2.0-27-generic (from .../linux-image-3.2.0-27-generic_3.2.0-27.43_amd64.deb) ...
Done.
dpkg: error processing /var/cache/apt/archives/linux-image-3.2.0-27-generic_3.2.0-27.43_amd64.deb (--unpack):
failed in write on buffer copy for backend dpkg-deb during `./boot/System.map-3.2.0-27-generic': No space left on device
No apport report written because the error message indicates a disk full error
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.2.0-27-generic /boot/vmlinuz-3.2.0-27-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.2.0-27-generic /boot/vmlinuz-3.2.0-27-generic
Errors were encountered while processing:
/var/cache/apt/archives/linux-image-3.2.0-27-generic_3.2.0-27.43_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
J'ai essayé de courir apt-get autoremove
et ça me donne la même erreur que apt-get upgrade
.
Quand je cours df
, je reçois ceci pour /boot
:
/dev/sda1 233191 230297 0 100% /boot
J'ai donc lu ailleurs que je devrais essayer de purger les vieux noyaux. J'ai vérifié quels noyaux j'avais avec:
$ dpkg -l linux-image-\* | grep ^ii
ii linux-image-2.6.38-13-server 2.6.38-13.52 Linux kernel image for version 2.6.38 on x86_64
ii linux-image-3.0.0-13-server 3.0.0-13.22 Linux kernel image for version 3.0.0 on x86_64
ii linux-image-3.0.0-14-server 3.0.0-14.23 Linux kernel image for version 3.0.0 on x86_64
ii linux-image-3.0.0-15-server 3.0.0-15.26 Linux kernel image for version 3.0.0 on x86_64
ii linux-image-3.0.0-16-server 3.0.0-16.29 Linux kernel image for version 3.0.0 on x86_64
ii linux-image-3.0.0-17-server 3.0.0-17.30 Linux kernel image for version 3.0.0 on x86_64
ii linux-image-3.2.0-24-generic 3.2.0-24.39 Linux kernel image for version 3.2.0 on 64 bit x86 SMP
ii linux-image-3.2.0-25-generic 3.2.0-25.40 Linux kernel image for version 3.2.0 on 64 bit x86 SMP
ii linux-image-3.2.0-26-generic 3.2.0-26.41 Linux kernel image for version 3.2.0 on 64 bit x86 SMP
Quand j'essaie d'enlever le plus ancien avec ceci:
$ sudo apt-get purge linux-image-2.6.38-13-server
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
linux-image-server : Depends: linux-image-3.2.0-27-generic but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
Comment puis-je libérer ou étendre le démarrage sans gâcher mon installation?
upgrade
apt
partitioning
Strifey16
la source
la source
Remove-Unused-Dependencies
pas la valeur par défaut?Réponses:
Libérer de l'espace sur le système de fichiers racine
Pour libérer de l'espace sur le système de fichiers racine, vous pouvez essayer de l'exécuter
apt-get clean
.Si cela ne fonctionne pas, vous pouvez
/var/cache/apt/archives
supprimer manuellement quelques fichiers du cache pour récupérer de l'espace, par exemple:Cela ne fera pas de mal de supprimer tous les
.deb
fichiers ici si vous en avez besoin - c'est ce que vous faitesapt-get clean
. Ils seront automatiquement re-téléchargés parapt
s'ils sont nécessaires à nouveau.Libérer de l'espace sur le système de fichiers / boot
L’affiche originale a une
/boot
partition séparée , c’est ce qui est plein et empêche leapt
système de fonctionner. Il lui faudra libérer de l'espace.S'il y a presque assez d'espace libre, allez dans
/boot
et supprimez un fichier de configuration ou deux:par exemple, mais en utilisant le nom de l’une des versions du noyau que vous souhaitez malgré tout supprimer. Cela libérera un peu d’espace (environ 144K pièce).
Si vous avez besoin de plus d' espace supprimer individuellement vieux
vmlinuz
,initrd
,abi
et lesSystem.map
fichiers jusqu'à ce que vous avez suffisamment d' espace (environ 22M pour un de mes versions du noyau i386).Quoi que vous fassiez, ne les supprimez pas tous . Vous devez au moins conserver les deux dernières versions correspondantes de chaque type de fichier, pour chaque type de noyau que vous utilisez.
Continuez ensuite avec vos commandes apt-get install. Comme mentionné ci-dessus, ils devront peut-être télécharger à nouveau certaines des résolutions que vous avez supprimées, mais si c'est le cas, cela se fera automatiquement. Lorsque vous aurez à nouveau utilisé apt, nettoyez-le en utilisant apt-get pour supprimer les paquets correspondant aux fichiers que vous avez supprimés - pour que tout corresponde.
Le fichier de configuration présent
/boot
est la configuration du noyau utilisée par l’équipe du noyau pour construire le noyau du même nom. Il devrait être inoffensif de l'enlever à moins que vous ne le vouliez pour référence ou pour vous aider à construire vos propres noyaux.Enfin, vous supprimez manuellement un ancien package de noyau ou deux de la
/boot
partition pour laisser encore plus de place au nouveau.la source
sudo rm
pour retirer de / boot. Utilisez plutôtsudo dpkg --purge
pour supprimer un ancien paquet linux-image. Par la suite, utilisezsudo apt-get -f install
pour réparer la dépendance brisée.rm
peut être utilisé alors.Dans mon cas, les
apt
commandes et ladpkg
commande n'ont pas pu être terminées ni supprimées. La mise à jour automatique a échoué lors de l'installation2.6.32-56-server
.Ma première étape a été d'identifier l'espace à utiliser,
J'avais environ 30 noyaux et fichiers de support.
J'ai fait un
uname -a
pour obtenir le noyau en cours d’exécution, j’ai identifié que j’étais sur une machine de remplacement Linux2.6.32-43-server
et j’ai fait l’unetar
des 6 versions qui ne fonctionnaient pas et qui étaient anciennes.J'ai ensuite fait une copie
rm -rf
de ce que j'avais sauvegardé:Je montre ces commandes à titre d'exemple, vous devrez décider avec quoi vous travaillerez dans votre situation.
Maintenant que j'avais de la place
/boot
, je pouvais courirPour nettoyer l'installation échouée de
2.6.32-56-server
.J'ai ensuite fait un
Cela m'a donné de la place pour remettre ce que j'avais sauvegardé.
Pour nettoyer, je pourrais alors exécuter:
J'ai redémarré et je dois maintenant utiliser 4% de
/boot
.la source
Vous pouvez utiliser à la
dpkg
place deapt-get
supprimer les anciens noyaux:la source
/boot
partition séparée ).J'ai remarqué qu'il y avait encore des fichiers des anciennes versions dans le répertoire de démarrage:
Et le gestionnaire de paquets listerait les anciennes versions:
J'ai donc utilisé cette commande (
autoremove
supprimerait également les images plus récentes que je ne souhaite pas supprimer)Il me restait quelques en-têtes:
Alors j'ai fait ça:
Enfin, il restait un paquet que je ne pouvais pas supprimer avec apt-get purge:
Source: Supprimer un paquet marqué comme rc par dpkg
la source
Vérifiez l'utilisation de
/var/tmp
avecdu -sh /var/tmp/
. Tous les fichiers de ce dossier peuvent être supprimés pour libérer de l'espace.Vous pouvez ensuite exécuter ce qui suit pour supprimer les anciens noyaux:
la source
/var/tmp
rapport avec les vieux noyaux? Et il n’est pas toujours prudent de tout effacer/var/tmp
...C'est ce que j'ai utilisé:
Faites cela pour tous les anciens noyaux et ne gardez que les deux plus récents.
Si vous voulez supprimer automatiquement les anciens noyaux et mettre à jour GRUB, voyez ceci: Documentation Ubuntu
la source
J'ai trouvé que la seule chose qui fonctionnait pour moi utilisait Aptitude.
Ensuite, lorsqu’il s'ouvre, il indique généralement quelque chose à propos des dépendances non satisfaites. Vous pouvez appuyer sur la lettre
g
pour procéder à la suppression suggérée. Cela vous mènera à une page où il énumère ce qui va se passer.Il devrait y avoir un moins à
-
côté des noyaux brisés. Appuyez àg
nouveau pour supprimer les noyaux cassés. Appuyez surq
pour quitter. Ensuite, vous devriez pouvoir utilisersudo apt-get autoremove
pour vous débarrasser des vieux noyaux et libérer de l'espace.la source
Vous ne pouvez pas agir sur des paquetages, mais vous pouvez agir sur d'autres fichiers. Tout d’abord, parcourez votre dossier personnel et voyez s’il ya quelque chose que vous pouvez supprimer. Sinon, essayez de déplacer une bonne quantité de fichiers vers une autre partition (ou un lecteur flash), puis essayez
sudo apt-get install -f
de nettoyer les problèmes de dépendance des paquets (vous avez probablement installé un fichier .debdpkg
), puis purgez tous les anciens noyaux. Une fois que vous avez au moins 10 Mo en toute sécurité, essayez de purger les logiciels ou fichiers inutiles.la source
Utilisez le gestionnaire de paquets Synaptic. Il suffit de choisir le paquet que vous voulez supprimer et il vous sera demandé de supprimer également les paquets qui en dépendent. D'après mon expérience, les packages de noyau sont toujours groupés par deux (ou plus, selon votre décompte) interdépendants. Vous pouvez généralement retrouver les anciens rapidement en utilisant le filtre "local / obsolète".
la source
Je me suis battu avec ce problème de temps en temps, et je n'ai toujours pas trouvé de solution qui fasse le travail complet. Dans certains cas, la suppression de vieux noyaux aboutit à des dépendances qui m'empêchent de supprimer quoi que ce soit et j'ai dû supprimer les noyaux manuellement dans / boot. Cependant, je voulais toujours faire tout le travail car j'imagine que les noyaux supprimés manuellement sont enregistrés quelque part et peuvent causer de futurs problèmes, lorsqu'un élément signale des fichiers manquants à cause de mon enregistrement rm -rf sur les fichiers.
J'ai donc écrit ce script, basé sur de nombreuses suggestions recherchées dans Google, qui ne nécessite aucune installation supplémentaire. Le script a été modifié à quelques reprises pour prendre en charge certaines situations "inattendues". Par exemple, en exécutant ceci sur un Raspberry Pi, update-grub n’existe probablement pas. Et dans certains cas, lors de l'exécution des derniers programmes de mise à jour, les serveurs étaient bloqués avec IPv6 où certains sites étaient inaccessibles.
Le script détermine s'il doit supprimer de manière forcée les noyaux complètement bloqués en raison de la génération de dépendances, sinon s'il peut le faire de la "bonne" façon.
la source
Courir simplement a
sudo apt-get -f autoremove
résolu mon problème.la source
/dev/sda1
est monté sur/
Lance ça:
Source: J'obtiens cette erreur après upgade. s'il vous plaît aider
la source
apt
la suppression des packages du noyau échouera, car le processus de suppression lui-même génère des fichiers/boot
déjà pleins. C'est pourquoiapt-get autoremove
échoue. La question que vous recherchez est askubuntu.com/q/142926/158442 , qui a déjà étéautoremove
répertoriée.J'ai vu quelques articles sur / boot en cours de saturation qui ne sont pas résolus par dpkg en purgeant les anciens noyaux Linux, car apt-get -f install ou apt-get -f autoremov réinstallent les noyaux.
Dans mon cas, au moins, les paquetages signés et supplémentaires devaient également être supprimés - les noyaux étant des dépendances de ces paquetages, ils les ont donc réinstallés. En règle générale, les packages de noyau associés doivent être purgés avant d'appeler «install». Si vous avez essayé de mettre apt-get à niveau juste après la purge, le message d'erreur aurait dû indiquer quels paquets avaient une dépendance non satisfaite du noyau que vous veniez de purger.
Dans mon cas, la tactique suivante a fonctionné:
la source
Installez l' outil linux-purge comme ceci .
Puis lancez dans le terminal:
Puis continuez à enlever les noyaux par exemple
Supplémentaire:
Si vous souhaitez utiliser linux-purge pour la suppression du noyau sans assistance au lieu de procéder à des mises à niveau sans assistance, vous devez désactiver la suppression des éléments inutilisés en modifiant /etc/apt/apt.conf.d/50unattended-upgrades et en configurant un service systemd. l'exécution
quand tu veux.
la source