# [risolto]  "no space left on device" solo per user

## btbbass

Cavolo, ho lasciato ieri ilmio computer bello e funzionante, oggi lo accendo, e non riesco a loggarmi in kde.. provo da root e tuto funziona.. per controllo, do un'occihata allo spazio libero su disco, e vedo che la partizione / è al 100% di spazio occupato, e ci rimane anche se cancello decine di Mb...

La partizione è formattata in ext3.

Infatti s ad esempio do :

```

┌-(ale 2.6.15-gentoo-r1)-(18 April 2006 - 17:32)-(pts/1)

└─-(~)-> mkdir alep

mkdir: cannot create directory `alep': No space left on device

```

mentre se provo da root:

```

┌-(root 2.6.15-gentoo-r1)-(18 April 2006 - 17:37)-(pts/1)

└─-(~)-> mkdir ale

┌-(root 2.6.15-gentoo-r1)-(18 April 2006 - 17:37)-(pts/1)

└─-(~)->     

```

Cosa potrebbe essere successo?? ho già anche provato a fare un controllo con chkfs.ext3..

In pratica spazio libero ce n'è, ma non è correttamente riconosciuto se ho permessi normali, mentre da root, nn sembrano esserci problemi...

----------

## gamberetto

Probabilmente è dovuto al fatto che una parte dello spazio su disco è riservata all'utente root: per esempio se la quota riservata a root è del 10%, puoi aver riempito il disco al 90% con files "non-root" e quindi per un utente normale la partizione risulta piena, mentre l'utente root può ancora utilizzare lo spazio libero a lui riservato.

Naturalmente potrei sbagliarmi!

----------

## btbbass

No, nn credo dipenda da quello, perchè non ho mai applicato quote o cose del genere.. 

Inoltre mi da che lo spazio è pieno anche da root e

anche se cancello dei files sia da user che da root, lo spazio continua da essere pieno

----------

## mrfree

 *btbbass wrote:*   

> No, nn credo dipenda da quello, perchè non ho mai applicato quote o cose del genere..

 

Quello che dice gamberetto è vero, a meno che tu non abbia indicato una percentuale di spazio riservato pari a 0 nella creazione del filesystem di default è il 5%  *man mke2fs wrote:*   

> -m reserved-blocks-percentage
> 
>               Specify the percentage of the filesystem blocks reserved for the
> 
>               super-user.   This  avoids  fragmentation, and allows root-owned
> ...

 

Se anche eliminando dei file lo spazio rimane occupato questo può dipendere dal fatto che alcuni processi hanno probabilmente ancora aperti dei riferimenti ad esso, credo tu lo possa verificare con fuser; infatti il file viene effettivamente cancellato (o meglio lo spazio da esso occupato reso disponibile) quando l'ultimo riferimento ad esso viene rimosso.

----------

## gamberetto

 *btbbass wrote:*   

> Cavolo, ho lasciato ieri ilmio computer bello e funzionante, oggi lo accendo, e non riesco a loggarmi in kde.. provo da root e tuto funziona.. per controllo, do un'occihata allo spazio libero su disco, e vedo che la partizione / è al 100% di spazio occupato, e ci rimane anche se cancello decine di Mb...
> 
> La partizione è formattata in ext3.
> 
> [...]

 

Puoi postare un 

```
$ df -h
```

 e un 

```
# du -sh /*
```

?

----------

## btbbass

Eccomi:

allora

```

df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/hda8             3.7G  3.6G     0 100% /

none                  247M     0  247M   0% /dev/shm

none                  247M     0  247M   0% /dev/shm

/dev/hda2              22G   21G  1.3G  94% /mnt/c

/dev/hda5              10G  9.7G  303M  98% /mnt/d

none                  247M     0  247M   0% /mnt/ramfs

/dev/hda1             1.7G  1.4G  351M  80% /usr/portage

/dev/hda6             479M  447M  7.8M  99% /usr/src

192.168.1.100:/backup

                       12G  2.5G  8.1G  24% /mnt/c/stage4

```

e 

```

du -sh /*

6.5M    /bin

964K    /boot

11M     /boot3

0       /dev

27M     /etc

337M    /home

42M     /lib

16K     /lost+found

4.0K    /media

30G     /mnt

196M    /opt

1.2M    /proc

18M     /root

7.8M    /sbin

0       /sys

5.3M    /tmp

4.0G    /usr

675M    /var

```

PS: io mi sto preparando un bel backuppone!!

----------

## gamberetto

 *btbbass wrote:*   

> 
> 
> PS: io mi sto preparando un bel backuppone!!

 

Ottima idea!

Meglio fare una root da almeno 5-6GB se non fai una /usr tutta a parte (secondo me), poi dipende da quanta roba installi nel PC.

Per caso usi ccache? Nel caso prova a pulire la cache per recuperare spazio.

Comunque confermo la mia ipotesi: il 5% di 3.7GB sono circa 180MB quindi il disco è effettivamente pieno.

----------

## btbbass

OK, proverò ancora a cancellare qualcosa, anche se non ho ccache...

Purtroppo cme hai visto sono strettissimo di spazio, infatti quando ho installato non sapevo ancora bene quanto spazio riservare a linux... con l'andare del tempo ho dovuto perfino usare la partizione di ripristino del portatile...

EDIT: aggiornamente in tempo reale:

ho effettuato alcuni emerge -C e ho liberato un po di spazio...

```

df -h PRIMA DELL' EMERGE -C

/dev/hda8         3.7    3.6      100%

```

e dopo l'emerge -C

```

/dev/hda8        3.7    3.4      100% 

```

Quindi non è cambiato nemmeno dell'1 percento...

Inoltre da root posso continuare tranquillamente  a scrivere, mentre da user no...

Naturalmente tutti gli fscheck non rilevano problemi, tranne in questo caso (pericoloso)

/dev/hda8 montato e  e2fsck lanciato con

```
e2fsck -fn /dev/hda8
```

In questo caso (con -n non toccherà in realtà nulla, si limita a controllare) trova degli errori, che mi dice di non aver corretto!!

Con /dev/hda8 smontato (sia da live cd che in fase di boot) non trova nulla

----------

## btbbass

Niente..

Esiste qualche tool per provare a riparare ext3 ?

ps: tranquilli, ho backuppato

----------

## .:deadhead:.

O_o da montato? No no no non si fanno queste cose a partizione montata: è normale che ti dia errori se non smontata [cioè la cosa strana è che ti permetta di far quelle cose a partizione montata, a dir la verità, ma vabbè].

IMHO se ha spazio copia tutti i dati da un'altra parte [mantenendo i permessi dei file, mi raccomando] ricrea la struttura del disco in maniera un po' + logica. Ci son numerosi 3d a riguardo. IMHO potresti crearne giusto 3/4 : una per la root di windows, un'altra per la root di linux, una per condividere i dati tra i 2 sistemi ed eventualmente la swap in fondo. L'ordine fallo tu, in base alle tue esigenze. Se quella C contiene windows, la copia magari falla usando dd, per esser sicuro di non perderti nulla. 

IMHO

Se qualcosa non ti è chiaro chiedi pure

----------

## btbbass

 *.:deadhead:. wrote:*   

> O_o da montato? No no no non si fanno queste cose a partizione montata: è normale che ti dia errori se non smontata [cioè la cosa strana è che ti permetta di far quelle cose a partizione montata, a dir la verità, ma vabbè].
> 
> 

 

si, con l'opzione -nf ti permette di farlo, senza però toccare nulla.

 *Quote:*   

> 
> 
> IMHO se ha spazio copia tutti i dati da un'altra parte [mantenendo i permessi dei file, mi raccomando] ricrea la struttura del disco in maniera un po' + logica. Ci son numerosi 3d a riguardo. IMHO potresti crearne giusto 3/4 : una per la root di windows, un'altra per la root di linux, una per condividere i dati tra i 2 sistemi ed eventualmente la swap in fondo. L'ordine fallo tu, in base alle tue esigenze. Se quella C contiene windows, la copia magari falla usando dd, per esser sicuro di non perderti nulla. 
> 
> 

 

Per le parizioni hai ragione, ma devo mantenere più o meno l'ordine che c'è perchè sono su un portatile...

Purtroppo il cd di ripristino di wincows modificato da Asus non mi permette di decidere che spazio assegnare a windows, e formatta AUTOMAGICAMENTE l'hard disk per installarsi in quella parte ben precisa dell'hard disk...

Quidni se volgio salvare la mia gentoo quando per caso devo reinstallare winblows, devo per forza usare più o meno quelle partizioni... potrei giusto togliere  quella di /usr/src, ex partizione di swap...

----------

## Ic3M4n

beh... puoi sempre fregartene del cd di win... con un dd della partizione al posto che reinstallare con il cd di win semplicemente da linux ributti dentro la tua installazione con dd

----------

## nightshadow

scusami ma non capisco.. come fai ad avere queste due cose tutte e due insieme?

```

/dev/hda8             3.7G  3.6G     0 100% / 

4.0G    /usr 

```

delle volte accade anche che lo spazio libero sia 0 byte ma se provi a salvare un file il salvataggio avviene con successo. perche'?

in parte e' perche il sistema usa un sistema di caching dei dischi per cui se liberi spazio cancellando alcuni MB il sistema per prima cosa scrive cio che ha nella cache.

l'altra ragione e' che stai usando un file system di tipo journal, che piu o meno (almeno per il tuo caso) fa la stessa cosa della cache... il journal occupa spazio, e conserva i dati prima di "syncarli" con il filesystem. ora.. che sia 400MB mi suona strano, in ogni caso fai conto di avere un journal quasi pieno e la partizione strapiena. se cancelli qualcosa per prima cosa viene syncato il journal.. (mi scuso con i tecnici e i puristi per la non correttezza tecnica di alcune informazioni, ma volevo essere il piu possibile chiaro..)

hai provato a eliminare i distfiles da /usr/portage/distfiles?

----------

## btbbass

Me ne vergogno profondamente, ma alla fine non era nulla di danneggiato!!    :Embarassed:   :Embarassed:   :Embarassed:   :Embarassed:   :Embarassed:   :Embarassed:   :Embarassed: 

Mi ha insospettito la dimensione eccessiva di /var/. controllando melgio c'erano più di 400Mb per /var/tmp/portage, che una volta cancellati hanno permesso finalmente di vedere dello spazio libero!!

Ne approfitto per chiedere un'altra cosa: ho notato che /var/cache/edb occupa molto spazio, sui 200 Mb. A quando un portage che fra distfile e cache varie mi occuperà meno di 600 Mb ???

----------

## Kernel78

 *btbbass wrote:*   

> Me ne vergogno profondamente, ma alla fine non era nulla di danneggiato!!         
> 
> Mi ha insospettito la dimensione eccessiva di /var/. controllando melgio c'erano più di 400Mb per /var/tmp/portage, che una volta cancellati hanno permesso finalmente di vedere dello spazio libero!!
> 
> Ne approfitto per chiedere un'altra cosa: ho notato che /var/cache/edb occupa molto spazio, sui 200 Mb. A quando un portage che fra distfile e cache varie mi occuperà meno di 600 Mb ???

 

Ci sono dei tip interessanti nella sezione apposita, grazie a quelli il mio portage occupa 31 mega  :Wink: 

/EDIT:ovviamente per quanto riguarda i distfile non ti puoi lamentare, più roba vuoi installare e più spazio ti occupa, ma prova ad usare eclean-dist che elimina oculatamente ciò che non serve più.

----------

## Cazzantonio

i distfiles una volta che li hai compilati puoi anche cancellarli... ovviamente se ricompili un programma ti toccherà riscaricare tutto ma se per te non è un problema....   :Rolling Eyes: 

----------

## Ic3M4n

 *Cazzantonio wrote:*   

> i distfiles una volta che li hai compilati puoi anche cancellarli... ovviamente se ricompili un programma ti toccherà riscaricare tutto ma se per te non è un problema....  

 sotto questo punto di vista sarebbe più corretto e corrispondente ad una buona netiquette, almeno per quanto riguarda la filosofia di gentoo, salvare un po' di banda ai mirror mantenendo almeno l'ultima versione di ogni pacchetto, cosa che si può fare senza molti problemi con eclean.

----------

## Kernel78

 *Ic3M4n wrote:*   

>  *Cazzantonio wrote:*   i distfiles una volta che li hai compilati puoi anche cancellarli... ovviamente se ricompili un programma ti toccherà riscaricare tutto ma se per te non è un problema....   sotto questo punto di vista sarebbe più corretto e corrispondente ad una buona netiquette, almeno per quanto riguarda la filosofia di gentoo, salvare un po' di banda ai mirror mantenendo almeno l'ultima versione di ogni pacchetto, cosa che si può fare senza molti problemi con eclean.

 

Proprio quello che ho suggerito anche io.

----------

## mrfree

Personalmente uso tmpwatch con questo

```
# Delete everything in DISTDIR that hasn't been accessed in 6 months (going

# by 30 day months)

#

if [[ -d ${DISTDIR:-/usr/portage/distfiles} ]]; then

  ${TMPWATCH} --mtime --fuser 4320 ${DISTDIR:-/usr/portage/distfiles}

fi

```

----------

## Kernel78

 *mrfree wrote:*   

> Personalmente uso tmpwatch

 

Lo usavo anche io ma da quando ho scoperto eclean ho smesso di usare tmpwatch visto che anche se eclean è molto più lento è di sicuro molto più affidabile.

----------

