sobota, 20 lutego 2016

Linux - 0 bytes available but many gigs free

Today I woke up and found out that one of my servers stopped responding.
After attaching LCD and a reboot I was welcomed by a message stating that one of drives has bad sectors and needs to be replaced.

I decided to copy all the data from that drive to another witch had more than enough free space.
After a few hours of copying the precess stopped with a message stating that 0 bytes on target drive are available.

Quick check using df showed that there are 137GB free but 0 is available.
The drive is a 3TB WD Red with one 3TB ext4 partition.

After some digging I found out that this is normal on Linux.
When you create a partition, Linux reserves 5% of it's capacity for root user. It is intended to store logs and settings so that system has space to write even if users use all storage.
The thing is that it is not needed on all disks - if drive is used only to store let's say CCTV recordings you want all storage available. It is needed mainly on partition containing /var folder.

How to fix it? - use tune2fs

The command is as follows (need to run it as root/use sudo, replace XX with the number of your partition):

tune2fs -m 0 /dev/sdXX

on Ubuntu use

sudo tune2fs -m 0 /dev/sdXX


I hope this will save you some time.

Linux - 0 bajtów dostępne mimo, że wolne jest jeszcze wiele GB

Obudziłem się dzisiaj i zauważyłem, że mój serwer nie jest dostępny w sieci.
Podłączyłem więc monitor, zresetowałem i otrzymałem informację, że jeden z dysków jest uszkodzony (badsektory).
Postanowiłem więc skopiować z niego pliki (zanim jeszcze się da) na inny dysk, na którym było jeszcze pozornie dużo miejsca.
Kilka godzin kopiowania później kopiowania otrzymałem jednak komunikat, że jest za mało miejsca.

Dysk docelowy ma pojemność 3TB i jedną partycją ext4.
System raportuje 137GB wolne, ale 0bajtów dostępne

WTF?

Po dłuższym dochodzeniu okazało się, że przyczyna jest prosta i wynika ze standardowego zachowania systemu.

W momencie tworzenia partycji pod linuksem, system automatycznie rezerwuje 5% miejsca na danej partycji dla użytkownika root. W zamyśle jest to potrzebne do poprawnego działania systemu (jeśli użytkownicy zużyją całe miejsce, to nie będzie gdzie zapisywać logów).
Jest to dobre rozwiązanie ale pod warunkiem, że na danej partycji system faktycznie będzie coś zapisywał (zwykle na takiej partycji będzie folder /var).
Jeśli dany wolumen jest używany wyłącznie do przechowywania powiedzmy nagrań z kamer, to nie jest nam ta rezerwa potrzebna.

Jak zwolnić zablokowaną przestrzeń dla użytkowników?

tune2fs -m 0 /dev/sdXY

XY = dokładne namiary na konkretną partycję.

Mam nadzieję, że ta informacja zaoszczędzi komuś pracy.

Pozdrawiam.

LXDE - menu nie wyświetla się po kliknięciu w lewym dolnym rogu ekranu

Jako, że od pewnego czasu używam pod linuksem LXDE (IMHO najlepiej działa w Hyper-V), to w trakcie jego użytkowania wyszło na jaw kilka denerwujących dla mnie spraw.
Jednym z najbardziej denerwujących elementów w normalnej pracy był jednak fakt, że jeśli klikniemy myszą w lewym, dolnym rogu ekranu (w miejscu, gdzie oczekujemy wyświetlenia menu), to zwyczajnie nic się nie dzieje.
Przyznam się, że walczyłem z tym od dłuższego czasu a irytacja tym faktem urosła do tego stopnia, że spędziłem dłuższy czas na odnalezienie przyczyny.

Okazuje się, że rozwiązanie jest proste - przycisk menu jest odsunięty od krawędzi o 1px.
Panel na dole ekranu ma 26px wysokości
Przycisk menu ma 24px wysokości i wyrównany jest w pionie do środka panelu (powstaje więc luka po 1px u góry i na dole).
Najłatwiejszym rozwiązaniem jest zmiana wysokości ikon na panelu, aby miały te 26px.