it-swarm.dev

Kořenová jednotka nemá dostatek místa na disku. Jak mohu uvolnit místo?

Používám Ubuntu 11.04 a chci uvolnit místo v kořenovém adresáři, který je přetížený. Obzvláště chci změnit cestu používanou pro instalaci aplikací (instalují se přímo na kořenovou jednotku).

Další úvahou je, že pracuji na databázovém serveru MySQL. Server je nainstalován v samotném kořenovém adresáři, takže nechci riskovat ztrátu dat.

Dejte nám prosím několik tipů, které vám pomohou tento problém vyřešit.

37
rihan

Nedávno jsem čelil podobné situaci. Nainstalovalo se příliš mnoho aplikací a začaly používat můj kořenový připojovací prostor. Uvádím několik kroků, které jsem následoval, a doufám, že byste je mohli také použít.

  1. Vyčistit mezipaměť apt-get. Následující příkaz odstraní všechny stažené soubory deb z adresáře mezipaměti apt-get.

    Spusťte tento příkaz: Sudo apt-get clean

  2. Přesun/domovský bod připojení na jinou jednotku . Dříve byla moje domovská složka umístěna na kořenové jednotce. Takže jsem přesunul svou domovskou složku na samostatnou jednotku. To mi pomohlo uvolnit hodně stresu z kořenového připojení, protože většina aplikací ukládá svá data do složky/home/user_name /. Číst jak přesunout domovskou složku na samostatnou jednotku.

  3. Zvětšit velikost kořenového oddílu Vím, že je to velmi zřejmá odpověď. Ale věřte mi, naše data potřebují časem změnit. Myslel jsem, že by stačilo 20 GB/root root, ale za rok jsem změnil velikost mého root root a zvýšil se na 50 GB.

38
Amey Jah

Úspěšně jsem vyčistil 3,5 GB odstraněním starých záhlaví a obrázků pomocí následujícího příkazu:

dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs Sudo apt-get -y purge

Můžete zkontrolovat, jaké balíčky budou vymazány provedením první části příkazu:

dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d'

Reference

32
homebrand

Použijte dpkg-query najít největší balíčky a odstranit ty, které už nepotřebujete ( source ):

dpkg-query --show --showformat='${Package;-50}\t${Installed-Size}\n' | sort -k 2 -n | grep -v deinstall | awk '{printf "%.3f MB \t %s\n", $2/(1024), $1}'
22
michaeljoseph
Sudo apt autoclean  # clean /var/cache/apt/archives folder which save packages while install.
Sudo apt autoremove # this command remove unused packages.

Sudo shutdown -rf   # it will restart your PC immediately and check filesystem in next boot.
13
shantanu

Odstranění starých verzí jádra (jak již navrhl homebrand )) může uvolnit slušné množství místa, pokud jste se k tomu ještě nedostali.

Existuje několik způsobů, jak odstranit staré verze jádra a v odpovědích zveřejněných je možné najít celou řadu různých možností: Jak odstraním staré verze jádra, abych vyčistil spouštěcí nabídku?

Moje preferovaná metoda je většinou tato odpověď z penreturns , kde je rozdělena do celkem jednoduchých srozumitelných kroků:

Otevřete terminál a zkontrolujte své aktuální jádro:

uname -r

NEODSTRAŇUJTE TENTO KERNEL!

Dále zadejte níže uvedený příkaz pro zobrazení/výpis všech nainstalovaných jader ve vašem systému.

dpkg --list | grep linux-image

Najděte všechna jádra, která jsou nižší než vaše současné jádro. Když víte, které jádro odstranit, pokračujte níže a odstraňte jej.

Spusťte níže uvedený příkaz a odstraňte vybrané jádro.

Sudo apt-get purge linux-image-x.x.x.x-generic

Odpověď pak říká „update-grub2“, když jste dokončili čištění, což je pravděpodobně nyní zastaralé: Sudo update-grub by mělo stačit pro Ubuntu 14.04. Poté také řeknou „Restartujte váš systém“ (což se zdá být tak, abyste viděli vyčištěnou spouštěcí nabídku), takže v tomto případě není nutné.

Nabídka zavaděče grub sloužila k zobrazení všech starších verzí jádra na hlavní stránce, ale nyní jsou umístěna mimo cestu za dílčí nabídkou. Je to mnohem hezčí, ale nováček v Ubuntu/Linux nemusí vědět, že tam zabírá místo.

Jak je doporučeno, neodstraňujte aktuální jádro a je také vhodné zachovat předchozí verzi jádra, jen pro případ, že byste se měli vrátit k této verzi.

Existují rychlejší způsoby, jak toho dosáhnout, ale já dávám přednost jednoduchosti této metody hlavně proto, že umím každý příkaz na cestě pochopit:

"Jakou verzi jádra používám? Jaké verze jádra mám? Dobře, očistit to jednu."

Opláchněte, opakujte, obdivujte prostor, který jste uvolnili.

Je docela snadné zkopírovat název konkrétního staršího jádra, které chcete odstranit z výsledků, které dpkg --list | grep linux-image vám dává v terminálu a poté použijte Sudo apt-get purge a zkopírujte zkopírované jméno do.

Odstraněním 3 nebo 4 starších jader se obvykle uvolní asi GB místa v kořenové jednotce.

10
pHeLiOn

Když potřebuji více volného místa na serverech, používám tento příkaz:

find / -type f -size +50M -exec du -h {} \; | sort -n

Nalezne všechny soubory větší než 50 MB a „du -h "vytvořte lepší seznam souborů a "sort -n "za potrubím vytvoří seznam číselně seřazený podle velikosti souboru.

9
zorbon.cz

Zde je skript, který spustím, abych uvolnil místo v kořenovém oddílu

function myclean {
    ## Show free space
    df -Th | grep -v fs
    # Will need English output for processing
    LANG=en_GB.UTF-8

    ## Clean apt cache
    apt-get update
    apt-get -f install
    apt-get -y autoremove
    apt-get clean

    ## Remove old versions of snap packages
    snap list --all | while read snapname ver rev trk pub notes; do
        if [[ $notes = *disabled* ]]; then
            snap remove "$snapname" --revision="$rev"
        fi
    done
    ## Set snap versions retain settings
    if [[ $(snap get system refresh.retain) -ne 2 ]]; then snap set system refresh.retain=2; fi
    rm -f /var/lib/snapd/cache/*

    ## Remove old versions of Linux Kernel
    # This one-liner is deprecated since 18.04
    # dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs apt-get -y purge
    # New 2 lines to remove old kernels
    dpkg --list | grep 'linux-image' | awk '{ print $2 }' | sort -V | sed -n '/'"$(uname -r | sed "s/\([0-9.-]*\)-\([^0-9]\+\)/\1/")"'/q;p' | xargs apt-get -y purge
    dpkg --list | grep 'linux-headers' | awk '{ print $2 }' | sort -V | sed -n '/'"$(uname -r | sed "s/\([0-9.-]*\)-\([^0-9]\+\)/\1/")"'/q;p' | xargs apt-get -y purge

    ## Rotate and delete old logs
    /etc/cron.daily/logrotate
    find /var/log -type f -iname *.gz -delete
    Sudo journalctl --rotate
    Sudo journalctl --vacuum-time=1s

    ## Show free space
    df -Th | grep -v fs
}
8
cmak.fr

Podle pokynů v buntu community docs Objevil jsem obrovský soubor koše - vypadal to jako záloha /var/log/syslog.1, pravděpodobně něco chrlí spoustu výstupu do syslogu ...

Příkaz, který zjistil, že byl:

Sudo find / -size +1G

A pak jakýkoli velký soubor ve složce s názvem .Trash je pravděpodobně dobré smazat ...

7
hwjp

V Ubuntu může mít každá složka svůj vlastní systém souborů. To znamená, že můžete přesunout libovolnou složku do vlastního oddílu, jiného disku nebo dokonce ve vzdálené síti. To je zvláště oblíbené u domácích adresářů, protože to znamená, že můžete Ubuntu přeinstalovat beze změny osobních nastavení nebo ztráty souborů. Populární je také v sítích, kde by se uživatelé měli moci přihlásit k různým strojům a stále si získávat svá osobní nastavení a soubory. Je to však užitečné v mnoha různých případech, jako je ten váš.

Aplikace se nenainstalují do konkrétní složky, jak se zdá, že navrhujete. Různé části aplikace jsou umístěny v různých částech souborového systému. Hlavní program je obvykle umístěn v/usr/bin, zatímco konfigurační soubory jsou umístěny například v/etc. Ve vašem případě MySQL jsou samotné databáze umístěny někde v/var. Myslím/var/mysql.

Protože/usr a/var jsou oba adresáře v kořenovém souborovém systému, budou používat prostor kořenových souborových systémů. Ale jak jsem řekl, můžete je přesunout do různých souborových systémů. V případě MySQL můžete nakonfigurovat, kde jsou databáze uloženy. Například můžete snadno přesunout databáze do /home/username/.mysql/databases.

3

Pokud máte mnoho samostatných souborových systémů, může se vám hodit následující trik: Mount/jindy, ale tentokrát pod/mnt. Nyní můžete provádět vyhledávání velkých nebo mnoha souborů bez procházení nesprávných souborových systémů.

Může také pomoci najít soubory, které jsou skryty pod jiným připojením.

1
steviethecat

Nemůžete změnit cestu, kde správce balíků instaluje aplikace. Většina souborů aplikace je uložena do /usr. Pokud chcete obnovit kořenový oddíl, přesuňte /usr do jiného oddílu je možné řešení.

Z komentářů:

  • Při kopírování zachovejte oprávnění, tzn. Lépe si použijte příkazový řádek, pokud si nejste jisti, co váš správce souborů udělá.

  • Správný způsob, jak toho dosáhnout, je připojit nový souborový systém k/usr nebo použít mount --bind. Není jasné, jak dobře bude odkaz fungovat.

1
Jan

Od dnešního dne je lepší použít novou funkci (od 14.04) k odstranění starších obrázků jádra:

Sudo apt autoremove

Podívejte se na další podrobnosti: Proč Ubuntu neodstraní automaticky stará jádra?

1
ywu

Zkontrolujte, která složka zabírá místo v kořenové části

du -hsc *

Našel jsem\timeshift složku zabírající většinu místa. (Pravděpodobně jste povolili tento pravidelný snímek). Toto můžete přesunout z kořenového adresáře do\home (za předpokladu, že jste připojili domov do jiného oddílu). Nebo snižte frekvenci z časového rozhraní GUI a pokud se domníváte, že je to bezpečné, odstraňte starší zálohy.

0
Alex Punnen

Pokud máte nainstalovaný databázový server mssql, může dojít ke ztrátě paměti. Run NCurses Disk Useage

$ Sudo ncdu / 

Chcete-li zkontrolovat, které složky a soubory zabírají maximální úložiště. Data mssql jsou obvykle uložena na

/var/opt/mssql/backup/
0
Yogesh