Hårddisk full? Startar inte.

Frågor om LiveCDn samt installation och uppgradering av Ubuntu och dess varianter
Henrik Jansson
Inlägg: 799
Blev medlem: 10 feb 2008, 23:06
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS

Hårddisk full? Startar inte.

Inlägg av Henrik Jansson »

Jag ska hjälpa en kompis med en datorn med Linux Mint 19.2 på.
Den har en SSD disk på 128 Gb tror jag. Endast Linux Mint installerat. På senare har den på något sätt varnat för att hårddisken börjar bli full, och nu startar inte operativsystemet alls.
Den går att starta och köra med Linux på USB, så det är inget fel på datorn, och man kan därifrån titta på hårddisk och kopiera filer därifrån.

Efter att ha läst lite på nätet om sådant här så verkar det kunna bli så att gamla kärnor finns kvar i datorn och tar massor med plats, kanske andra uppdateringar också?
Vi har lyckats titta på hur många gamla kärnor som finns kvar, och det är många.. kanske 100 st.
Jag läste några kommandon man kunde skriva i terminalen för att ta bort dessa, något var "sudo apt remove linux-image-4.15.0-191-generic" men det funkade inte. Eller är det felskrivet?
Ett annat var "sudo apt-get clean" som skulle ta bort allt gammalt, men det funkad inte heller.

Är det någon som vet hur man från terminalen med Linux på USB kan ta bort gamla kärnor och eller annat som har fyllt hårddisken?
Och hur förhindrar man detta att hända igen?
Användarvisningsbild
Osprey
Inlägg: 6310
Blev medlem: 06 apr 2008, 00:09
OS: Ubuntu
Ort: Göteborg/Mölndal/Falkenberg
Kontakt:

Re: Hårddisk full? Startar inte.

Inlägg av Osprey »

Att rensa gamla kärnor gör nog inte så stor skillnad, de är trots allt relativt små. Då tror jag att det ger mer att köra "sudo apt-get clean", som rensar bort alla nedladdningar av paket som har hämtats hem av apt/apt-get. Själva installationen av sakerna förändras inte och inget av den tas bort. Det enda som tas bort är själva paketet som installationen utgick ifrån.

För att kunna göra det, så måste du starta upp från en USB-pinne (eller CD) och sedan göra "chroot" till datorns eget operativ. Annars rensas det bara på USB-pinnen.

Enklaste sättet att göra en fullgod "chroot", är att starta upp från USB-pinnen och sedan installera "arch-install-scripts", med:

Kod: Markera allt

sudo apt-get install arch-install-scripts
Då kan du sedan montera den fulla hårddisken på t.ex /mnt och sedan köra:

Kod: Markera allt

sudo arch-chroot /mnt
När du gjort det, så kan du köra:

Kod: Markera allt

sudo apt-get clean
Det borde räcka för att den ska gå att starta och sedan kan du köra diskanvändningsanalysatorn (eller baobab) för att hitta var det ligger stora filer som kan vara idé att ta bort.

Du kan för den delen köra diskanvändningsanalysatorn/baobab när du startat från USB-pinnen också och kolla /mnt därifrån. Disken måste vara monterad på /mnt, men "chroot" behövs inte för detta...

(För den delen så bör du kunna starta upp den i en "recovery boot" också och logga in som "root". Det finns alltid lite utrymme reserverat för root, för just den här typen av situation. Men kör du via USB-pinnen nu om du vill, det ger samma resultat)
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
Användarvisningsbild
Osprey
Inlägg: 6310
Blev medlem: 06 apr 2008, 00:09
OS: Ubuntu
Ort: Göteborg/Mölndal/Falkenberg
Kontakt:

Re: Hårddisk full? Startar inte.

Inlägg av Osprey »

Kör förresten gärna en fsck på den disken/partitionen som du monterar på /mnt också, t.ex med:

Kod: Markera allt

sudo e2fsck -f -y -v -C 0 -D /dev/vad-den-nu-heter
Om du inte har e2fsck installerat redan, så kan du börja med:

Kod: Markera allt

sudo apt-get install e2fsprogs
Detta bör du göra innan du kör chroot, men det går bra efteråt också, men då måste du avbryta chroot med Ctrl-D, eller "exit" (när det du kör är färdigt och du ligger vid prompten på det "chrootade" systemet). Du måste också avmontera disken/partitionen från /mnt.
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
Användarvisningsbild
anth
Inlägg: 512
Blev medlem: 22 aug 2019, 15:35
OS: Ubuntu
Utgåva: 23.04 Lunar Lobster

Re: Hårddisk full? Startar inte.

Inlägg av anth »

Min erfarenhet är att man måste installera och tanka ner mycket skit innan man fyller 128 GB på en Linuxdator.
Ett första steg är att försöka räkna ut vad din kompis gjort för att fylla disken och sedan plocka bort den skiten.
- Har din kompis synkat mobilen så det finns en kopia av mobilen på datorn?
- Har din kompis sparat filmer, stora bilder eller pdf:er på datorn?
- Har din kompis installerat spel eller Windowsprogram på datorn?
- Har din kompis sparat sin mail lokalt på datorn?
- Har din kompis tagit backup från någon annanstans och lagt på datorn?

Ett enkelt sätt att frigöra hårddiskutrymme är att manuellt rensa webbläsarens cache.
Har man inte gjort det på ett tag är det inte ovanligt att det ligger över 1 GB skräpfiler där.
Gå till kompisens hemkatalog och sedan till den dolda underkatalogen .cache och se vad som finns under webbläsaren.
Har kompisen använt Firefox skriver man t.ex.:

Kod: Markera allt

$ rm -rf /home/user/.cache/mozilla/firefox/*
Där user är kompisens hemkatalog.

Ett annat bra ställe man kan rensa är kompisens Download-katalog.

Om kompisen använt en swap file kan man ta bort den för att frigöra några GB.

Bra terminalkommandon för att hitta stora filer på hårddisken är: df , du , find . Ex:

Kod: Markera allt

df -hT
du -a /home | sort -nr | head -n 10
find /home -printf '%s %p\n'| sort -nr | head -10
Df är "disk free" och visar hur mycket utrymme som används på diskarna.
Du är "disk used" och visar ALLA filer i katalogen och alla underkataloger samt deras storlek. Man vill inte använda du direkt på roten "/" för den klarar inte av /proc. Mitt exempel listar de 10 största katalogerna under /home.
Find används för att hitta filer. Mitt exempel lstar de 10 största flerna under /home.

När ni rensat så mycket att datorn startar igen ska ni fortsätta att rensa.
En SSD-disk ska ALDRIG vara mer än 90 % full, så ni ska rensa den till 70%-80%.
Man kan bara skriva ett visst antal gånger till varje minnesenhet på SSD-disken, sedan är den delen av disken sönderskriven och går inte att använda.
Därför har SSD-disken en inbyggd programvara som ser till att alla delar av SSD:n används lika mycket.
Det är därför man ALDRIG ska defragmentera en SSD.
Använder man 90 % av en SSD kan den bara skriva till de 10 % som är ledigt och man kommer man skriva sönder den lediga delen av disken, vilket resulterar i att man inte har något ledigt utrymme alls.
viewtopic.php?f=113&t=61999&hilit=smartctl

###

Hur förhindrar man att detta händer igen?
Steg ett är givetvis att agera när datorn varnar.
Ett annat är att regelbudnet ägna sig åt lite datorvård och köra df i terminalen någon gång i veckan.

En lösning är att skriva ett skript som kör df och varnar när usage är mer än 90 % och sedan göra ett cronjob för skriptet.
Det är en utmärkt lösning för servrar, men inte lika bra för hemdatorer helt enkelt för att hemdatorer normalt inte står på dygnet runt. Å andra sidan kan man sätt tiden för cronjobbet när det är störst chans att man använder datorn, t.ex. 20:00 om man brukar använda datorn då.
Googlar man "linux alert disk space" får man massor med exempel, de flesta av dem har en lösning där ett mail skickas med en varning.
@Osprey du är bättre på skript, kan man använda wall eller liknande för att det ska dyka upp ett meddelande på anändarens skärm istället för att ett mail skickas?
(automatiska mail från arbetsstationer fungerar normalt inte)

Kommer man åt skrivbordet finns det flera grafiska program man kan använda. Stacer och BleachBit är de två vanliga programmen om man vill rensa sin Linuxdatorfrån skräp.

Vill man snabbt hitta stora filer finns det ett par grafiska program som kan hjälpa en.
Det finns ett grafiskt program som heter Disk Usage Analyzser som brukar följa med alla GNOME-skrivbord som Ubuntu. Jag vet inte om det är förinstallerat i Mint. Där kan man snabbt hitta stora filer.
Jag tycker personligen att det är krångligt att använda och är van vid WinDirStat från Windows. I Linux heter motsvarande program QDirStat och K4DirStat.
Användarvisningsbild
Osprey
Inlägg: 6310
Blev medlem: 06 apr 2008, 00:09
OS: Ubuntu
Ort: Göteborg/Mölndal/Falkenberg
Kontakt:

Re: Hårddisk full? Startar inte.

Inlägg av Osprey »

Här har du ett litet script som jag själv "hackat ihop" för att enkelt kunna hitta stora filer, när det blir problem.

Själv kallar jag scriptet för "big", men du kan välja själv:

Kod: Markera allt

#! /bin/bash
#
#####################################################################
#
function usage {
	cat << EOD

usage: big {-d | -f}

       -d|--dir|--directory
           Show size of directories listed from smallest to biggest.

       -f|--file
           Show biggest files (this is the default).

       -h|--help
           Show this.

       -l NUM|--list=NUM
           Number of files or directories to list. NUM is an integer value.
	   The default is 10.

       r|--rec|--recurs|--recursive
           Normally big only checks the current directory when -f is specified,
	   but if -r is also given, it also checks all subdirectories.

EOD
exit
}
#
#####################################################################
#
TEMP=`getopt -odfhl:r --long help,dir,directory,file,list:,rec,recurs,recursive: -n $(basename $0) -- "$@"`
if [[ $? -ne 0 ]]; then
	usage
fi
eval set -- "$TEMP"
DIRECTORY=false
FILE=false
LIST=false
LISTNUM=10
MAXDEPTH=1
CMDNAME=$(basename $0)
while true; do
	case $1 in
		-h|--help)
			usage
			exit
			;;
		-d|--dir|--directory)
			DIRECTORY=true
			shift
			;;
		-f|--file)
			FILE=true
			shift
			;;
		-l|--list)
			shift
			LISTNUM=$1
			shift
			;;
		-r|--rec|--recurs|--recursive)
			MAXDEPTH=99
			shift
			;;
		--)
			shift
			break
			;;
		*)
			echo "-Got a star... [$1]"
			exit
			;;
	esac
done
#
if [[ $DIRECTORY == false && $FILE == false ]]; then
	FILE=true
elif [[ $DIRECTORY == true && $FILE == true ]]; then
	echo
	echo "-Not possible to specify both directory and file..."
	usage
	exit
fi
#
#####################################################################
#
echo
if [[ $DIRECTORY == true ]]; then
	du --max-depth 1 $1 | sort -n | tail -$LISTNUM | awk '{ print substr($0, index($0,$2)) }' | \
	while read DIR; do
		if [[ "$DIR" != "." ]]; then
			du --max-depth 0 -h "${DIR}" 2> /dev/null
		fi
	done
	# du --max-depth 0 -h .
elif [[ $FILE == true ]]; then
	find . -maxdepth $MAXDEPTH -type f -exec ls -hs {} \; | sort -n | tail -$LISTNUM
fi
echo
Senast redigerad av 2 Osprey, redigerad totalt 20 gång.
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
Användarvisningsbild
Osprey
Inlägg: 6310
Blev medlem: 06 apr 2008, 00:09
OS: Ubuntu
Ort: Göteborg/Mölndal/Falkenberg
Kontakt:

Re: Hårddisk full? Startar inte.

Inlägg av Osprey »

anth skrev:@Osprey du är bättre på skript, kan man använda wall eller liknande för att det ska dyka upp ett meddelande på anändarens skärm istället för att ett mail skickas?
(automatiska mail från arbetsstationer fungerar normalt inte)
wall har jag inte använt på många år. På den tiden man körde textterminaler så skickades ett meddelande direkt till alla just nu inloggade terminaler. Jag vet faktiskt inte hur det är nu när man kör grafiskt. Det borde väl komma en popup, men det kan jag inte lova...

Däremot borde man ju kunna använda Nagios för att hålla koll på sådant här och få en varning när det börjar bli fullt...
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
Skriv svar

Återgå till "Installation och uppgradering"