Moje / boot partition hit 100% a nyní nemohu upgradovat. Nelze odstranit staré jádra, aby se uvolnil prostor

141

Můj první problém byl, když jsem se pokoušelapt-get update neboapt-get upgrade. Při upgradu dostanu následující chybu:

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.

Snažil jsem se spustit apt-get install -f a to byl výstup (po řeči ano na výzvu)

(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)

Snažil jsem se spustitapt-get autoremove a dává mi stejnou chybu jakoapt-get upgrade.

Když spustímdf, dostanu to pro/boot:

/dev/sda1                    233191     230297         0 100% /boot

Takže jsem četl jinde, že bych se měl pokusit vyčistit staré jádro. Zkontroloval jsem, jaké jádro jsem měl:

$ 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

Pokud se pokouším nejdříve odstranit toto:

$ 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).

Jak mohu uvolnit nebo rozšířit boot bez toho, abych zablokoval instalaci?

    
dané Strifey16 02.08.2012 17:17

11 odpovědí

117

Uvolnění místa v kořenovém souborovém systému

Chcete-li uvolnit místo v kořenovém souborovém systému, můžete se pokusit spustitapt-get clean.

Pokud to nefunguje, můžete přejít na/var/cache/apt/archives a ručně odstranit několik souborů z mezipaměti, abyste získali nějaké místo, například:

sudo rm linux-headers-*

Nebude bolet odstranění všech souborů.deb zde, pokud potřebujete - to je to, coapt-get clean dělá. Budou automaticky znovu staženy zapt, pokud jsou znovu potřebné.

Uvolnění místa na systému / boot File System

Původní plakát má samostatný/boot oddíl, a to je to, co je plné a brání systémuapt pracovat. Bude nutné, aby tam uvolnil místo.

Pokud je skoro dostatek místa, přejděte na/boot a odeberte konfigurační soubor nebo dva:

sudo rm config-3.2.0-19-generic-pae

, například pomocí jména jádra, kterou chcete odstranit. Tím se uvolní malý prostor (asi 144 kB).

Pokud potřebujete více místa, odeberte staré souboryvmlinuz,initrd,abi aSystem.map, dokud nebudete mít dostatek místa (asi 22M pro jedno z jádra verze i386).

Ať děláte cokoliv, neodstraníte všechny . Měli byste uchovat nejméně dvě odpovídající verze každého typu souboru pro každý typ jádra, které používáte.

Pokračujte v příkazech instalace apt-get. Jak již bylo uvedeno výše, bude možná nutné znovu stáhnout některé debty, které jste odstranili, ale pokud se to stane automaticky. Až budete moci opět pracovat, vyčistěte pomocí apt-get, abyste odstranili balíčky odpovídající odstraněným souborům - takže se vše shoduje.

Konfigurační soubor v/boot je konfigurace jádra použita týmem jádra stavět jádro se stejným názvem. Měl by být neškodný odstranit, pokud nechcete, aby byl odkazován nebo vám pomohl při vytváření vlastních jader.

Konečně ručně odstraníte starý balíček nebo jádro jádra z oddílu/boot, čímž vytvoříte ještě větší prostor pro nový.

    
odpověděl John S Gruber 02.08.2012 17:54
60

V mém případě příkazyapt adpkg nemohly být dokončeny a nemohly být odstraněny. Autoupdate selhal při instalaci2.6.32-56-server.

Mým prvním krokem bylo zjistit místo, které chcete použít,

cd /boot
du -sk *|sort -n

Měl jsem asi 30 jader a podpůrných souborů.

Udělal jsemuname -a, abych získal běžící jádro, Zjistil jsem, že jsem na Linuxu střídavě2.6.32-43-server a udělaltar ze 6 verzí, které nebyly spuštěny a byly staré.

tar -cvf ~username/boot.tar *2.6.32-44-server *2.6.32-45-server *2.6.32-46-server *2.6.32-47-server *2.6.32-48-server *2.6.32-49-server

Pak jsem provedlrm -rf z toho, co jsem zálohoval:

rm -rf *2.6.32-44-server *2.6.32-45-server *2.6.32-46-server *2.6.32-47-server *2.6.32-48-server *2.6.32-49-server

Tyto příkazy zobrazuji jako příklady, budete se muset rozhodnout, s jakou situací budete pracovat.

Nyní, když jsem měl nějaký prostor na/boot, jsem mohl spustit

apt-get -f install 

Vyčistěte selhání instalace2.6.32-56-server.

Pak jsem udělal

apt-get remove linux-headers-2.6.32-38 linux-headers-2.6.32-38-server linux-image-2.6.32-38-server
apt-get remove linux-headers-2.6.32-39 linux-headers-2.6.32-39-server linux-image-2.6.32-39-server

To mi dalo prostor, abych vrátil to, co jsem podpořil.

tar -xf ~username/boot.tar
rm  ~username/boot.tar    

Chcete-li vyčistit, mohu spustit:

apt-get autoremove

Znovu jsem restartoval a nyní používám 4% z/boot.

    
odpověděl A.G. Russell 20.02.2014 17:48
19

Chcete-li odstranit starší jádra, můžete použítdpkg namístoapt-get:

sudo dpkg -r linux-image-3.2.0-29-generic
    
odpověděl psusi 08.04.2014 16:38
9

Všiml jsem si, že stále existují některé soubory starých verzí v zaváděcím adresáři:

$ ls /boot
vmcoreinfo-2.6.31-17-server

Správce balíčků uvede staré verze:

dpkg -l | grep linux-image

Proto jsem použil tento příkaz (autoremove by také odstranil novější snímky, které nechci odstranit)

sudo apt-get purge linux-image-2.6.31-17-server

Zbývá ještě několik záhlaví:

dpkg -l | grep linux-headers

Takže jsem udělal toto:

sudo apt-get purge linux-headers-2.6.32-34

Konečně tam byl jeden balík, který jsem nedokázal odstranit pomocí apt-get purge:

$ dpkg -l | grep linux-image
rc  linux-image-2.6.28-11-server

Zdroj: Odstraňte balíček označený jako rc od dpkg

p>
sudo dpkg --purge linux-image-2.6.28-11-server
    
odpověděl mreiter 24.10.2012 15:56
2

Toto jsem použil:

sudo apt-get autoremove linux-image-xxxx

Udělej to pro všechny staré jádra a udržuje jen poslední dva.

Pokud chcete automaticky odstranit stará jádra a aktualizovat GRUB viz následující: Dokumentace Ubuntu

    
odpověděl Samer 22.11.2015 18:33
2

Nelze jednat o balíčky, ale může jednat o jiné soubory. Nejprve projděte domovskou složku a zjistěte, zda je cokoliv , které můžete smazat. Pokud tomu tak není, pokuste se přesunout velké množství souborů na jiný oddíl (nebo flash disk) a zkustesudo apt-get install -f vyčistit problémy s balíčkem závislostí (s největší pravděpodobností jste nainstalovali soubor .deb přesdpkg) a pak očistěte všechny staré jádra. Jakmile bezpečně máte alespoň 10 MB, zkuste vymazat nepotřebný software nebo soubory.

    
odpověděl hexafraction 02.08.2012 17:20
1

Použijte Synaptic Package Manager. Stačí vybrat balíček, který chcete odstranit, a vyzve vás také k odebrání balíků, které jsou na něm závislé. Podle mých zkušeností balíčky jader vždy přicházejí ve skupinách po dvou (nebo více, v závislosti na tom, jak počítáte), které jsou vzájemně závislé. Staré filtry můžete obvykle rychle najít pomocí filtru "Místní / zastaralý".

    
odpověděl Wegko 03.08.2012 04:39
1

Jednoduché spuštěnísudo apt-get -f autoremove vyřešilo můj problém.

    
odpověděl forzagreen 26.04.2018 10:26
1

Zjistil jsem, že jediná věc, která pro mě pracovala, byla Aptitude.

sudo aptitude

Když se otevírá, bude obvykle říkat něco o nesplněných závislostech na dně. Chcete-li pokračovat s navrhovaným odstraněním, můžete stisknout tlačítkog. Dostane se na stránku, na níž je uvedeno, co se stane.

Vedle rozbitých jader by měla být mínus-. Opět stiskněteg a odstraní se rozbité jádra. Stiskněte tlačítkoq pro ukončení. Pak byste měli použítsudo apt-get autoremove, abyste se zbavili starých jader a uvolnili místo.

    
odpověděl Matthew Swanson 04.04.2017 01:29
1

Zkontrolujte použití/var/tmp sdu -sh /var/tmp/. Všechny soubory v této složce mohou být odstraněny, aby se vytvořil prostor.

Potom můžete spustit následující odstranění starých jader:

sudo apt-get clean
sudo apt install byobu
sudo purge-old-kernels
sudo apt autoremove
sudo update-grub
    
odpověděl Tertius 06.11.2017 10:29
1

Spusťte toto:

sudo apt-get autoremove
sudo apt-get --purge remove && sudo apt-get autoclean
sudo apt-get -f install
sudo dpkg-reconfigure -a

Zdroj: Mám tuto chybu po upgade. prosím, pomozte

    
odpověděl Ardi Nusawan 15.02.2017 19:41