Reserved Blocks bei Linux Dateisystemen (ext2, ext3, ext4)

Wird unter Linux ein neues Dateisystem erstellt (eine Partition „formatiert“) so werden einige Parameter per default gesetzt.

Ein sehr interessanter Parameter heisst „reserved blocks“.

Dieser legt die Anzahl von Blöcken fest, welche in jedem Fall für den root user freigehalten werden.
D.h. alle anderen User können nichts mehr schreiben, sobald diese Anzahl an freien Blöcken unterschritten wird.

Das ist auch sehr sinnvoll z.B. wenn im root Filesystem auch logfiles geschrieben werden.

Existieren allerdings extra Datenpartitionen, auf denen sowieso nur als Benutzer geschrieben wird, dann kann dieser Speicherplatz einfach nicht genutzt werden.

Der default Wert beträgt 5%. D.h. bei einer 3TB Datenpartition werden auf diese Weise 150GB Platz verschenkt.

Zum Glück lässt sich der Parameter ganz einfach im laufenden Betrieb umstellen, und sogar mit df prüfen :

# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/md2 3.0T 2.1T 769G 74% /data2
# tune2fs -m 0 /dev/md2
tune2fs 1.41.12 (17-May-2010)
Setting reserved blocks percentage to 0% (0 blocks)
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/md2 3.0T 2.1T 922G 70% /data2

Damit ist die Anzahl nun auf „0“ gesetzt; auch normale Benutzer dürfen die Partition randvoll anfüllen… 🙂

Raspberry PI 3 neuinstallation

Hab mich schon die ganze Zeit gewundert, warum mein PI3 lediglich auf Kernel 4.1.xx gelaufen ist.

Wollte ihn heute neu installieren, musste ein neues Image herunterladen. Das geht von den offiziellen Seiten her nur recht langsam. Darum hab ich einfach das Image von Chip.de probiert. Ist zwar schon etwas älter; März 2016.
Kann aber ned so schlimm sein.
Dachte ich.
Hab aber damit die gleichen Probleme, wie vor der Installation !!!
z.B. Speicherzugriffsfehler, „vi“ geht plötzlich nicht mehr etc.etc…

-> Kein PI Image von Chip.de nehmen.
Lieber einen langsameren Download in kauf nehmen.

Update zum Cubot Dinosaur

Nach einigem hin- und her habe ich nun eine neue Firmware für mein Cubot Dinosaur gefunden :

(http://) forum.cubot.net/viewtopic.php?f=21&t=1028

Der Mega Link hat aber bei mir nicht funktioniert. Hab es von hier runtergeladen :

https://yunpan.cn/ckcQFpHqxIfKn (PW = 3084, ist recht lustig, die richtigen chinesischen Knöpfe zu finden g***)

Man erhält (nach 1-2 Stunden Download) eine zip Datei namens „update CUBOT_DINOSAUR_V12_20160627“ (487MB). Diese NICHT entpacken, sondern einfach auf die microSD Karte kopieren. Dann unter Einstellungen – Über das Telefon – Nach Software suchen – Lokales Update einspielen.
Achtung : ein Backup der Daten auf dem Telefon ist zwingend erforderlich. Nach dem Update kann man zwar noch booten, aber bis zum Werksreset geht so gut wie gar nix. (Apps schmeissen nur Fehler)
Das Update benötigt etwa eine Stunde (Akku vorher voll aufladen, bzw. Ladegerät angesteckt lassen).

Danach läuft das Telefon – soweit ich das sehe – fehlerfrei, d.h. alle Benachrichtigungen (Whatsapp, Slack, u.s.w.) Laufen nun wie es sein soll.

SNAT vs MASQUERADE

Hab mittlerweile ein wenig herumprobiert, um zu testen, wie sich die Performance eines NAT Routers verändert, wenn man statt Masquerading Snat verwendet.

Im Internet findet man dazu nur sehr wenig Informationen; eigentlich nur, dass Snat performanter sein soll; dafür aber für Dynamische IP Adressen nicht geeignet ist.
Nicht geeignet stimmt natürlich nicht. Ist halt Aufwändiger, weil die Firewall Regel jedes mal neu geschrieben werden muss, wenn sich die IP ändert.

Hab das jetzt mal so gelöst :

/etc/udhcpc.user

#!/bin/sh
/bin/other/detectip.sh

/bin/other/detectip.sh

#!/bin/sh
o=$(cat /tmp/ip.tmp 2>/dev/null)
ip=$(echo $(ifconfig eth1 | grep "inet addr:" | tr ":" " ") | cut -d" " -f3)
if test "$o" != "$ip"
then
 if test "$ip" != ""
 then
  /bin/log "$(date) Cron - neue Internet IP : $ip"
  if test "$o" != ""
  then
   /etc/dynfw D $o
  fi
  echo $ip > /tmp/ip.tmp
  /bin/other/dyndns.sh &
  /bin/other/internetstatus.sh 1 &
#  wget -O- http://10.0.9.7/cgi-bin/beep1.sh >/dev/null 2>&1 &
  wget -O- http://dynv6.com/api/update?hostname=xxxxxxxxxxxxx\&token=yyyyyyyyyyyyyyyyyyy\&ipv4=$ip
  /etc/dynfw I $ip
 fi
fi

/etc/dynfw

#!/bin/sh
ip=$2
if test "$1" == "I"
then
 x=A
 y=I
else
 if test "$1" == "D"
 then
  x=D
  y=D
 else
  echo "$0 I oder D und IP Adresse !"
  exit 0
 fi
fi
if test "$ip" == ""
then
 exit 0
fi
iptables -t nat -$y POSTROUTING -s (lokalesNetz)/24 -o eth1 -j SNAT --to $ip

Was bringt das ?

Interessanterweise macht das nicht immer und nicht mit jedem Endgerät einen Unterschied.
Am Laptop ist der Speedtest genau gleich schnell. Der Seitenaufbau allerdings wesentlich flüssiger.
Am Cubot Handy hab ich beim Speedtest jetzt etwa 30MBit statt etwa 10 vorher !! (das hat aber ein recht langsames WLAN)
Der Seitenaufbau am Handy geht natürlich auch um einiges flüssiger. Vorallem, wenn man nach längerer Standbyzeit zum ersten mal eine Seite aufmacht.
Gefühlt fällt auf einmal die „Gedenksekunde“ weg…

Werd ich derweil mal so lassen.