Linux Ramdisk mit tmpfs für mehr Speed

Keine Ahnung wozu man den ganzen Ram benutzen soll, den man heute hat? Etwas runterladen und danach gleich wieder löschen? Selbst den Kernel kann man in einer großen Ramdisk festplattenschonend kompilieren. Und ganz im Gegensatz zu Windows steht der Arbeitsspeicher dem Betriebssystem und anderen Anwendungen frei, wenn er nicht von der Ramdisk benötigt wird.

Einfach ein Verzeichnis $HOME/ram erzeugen und in die /etc/fstab einfügen:


tmpfs /home/BENUTZER/ram tmpfs defaults,user,uid=BENUTZER,mode=0700 0 0

und schon habt ihr eure ganz persönliche Ramdisk, die ihr selbst (un)mounten könnt.


Und wenn das nicht schön schnell aussieht:
$ dd bs=512k count=1000 if=/dev/zero of=ram/test
1000+0 Datensätze ein
1000+0 Datensätze aus
524288000 Bytes (524 MB) kopiert, 0,927082 Sekunden, 566 MB/s


Die maximale Größe ist der halbe physikalische Ram, änderbar mit z.B. size=1024m.

Das soll auch mehr Geschwindigkeit und etwas Sicherheit bringen:
tmpfs /tmp tmpfs defaults,nosuid,size=128m 0 0

Und wie immer: Viel Spaß!

Mal ne Pause machen -- Schlanke Alternative zu Workrave für Linux

Eine schlanke Alternative zu Workrave ist xwrits. Man muss es dafür komplizierter Starten. Aber ich habe hier eine ganz ordentliche Vorlage:

xwrits +mouse +beep +lock +top -idle -quota maxhands=1 +clock +breakclock t=59 b=1

Sperrt nach t=59 Minuten für b=1 Minute den Bildschirm. Das sollte das allermindeste sein. Mehr Optionen erfahrt ihr über man xwrits.

Die Zeit sollte man aufstehen, umhergehen und zumindest in die Ferne gucken. Und etwas Handgymnastik schadet auch nicht.

Bei mir verbraucht das (im Gegensatz zu Workrave) unter 1MB Ram. Die Übungen aus Workrave sollte man sich aber ruhig mal ansehen, immerhin sind sie von Fachärzten entwickelt.

Unter KDE lasse ich es dann automatisch starten: Durch Rechtsklick auf dem Desktop eine Neue Verknüpfung zu einem Programm anlegen, den obigen Befehl einfügen und unter ~/.kde/Autostart/xwrits.desktop ablegen. Ab sofort startet es bei jedem Sitzungsstart gleich mit.

Falls xwrits nicht gefällt, ist hier eine Liste mit weiteren Alternativen wie z.B. RSIBreak für KDE.

Init-Services komfortabel über die Kommandozeile (neu)starten und stoppen

Dafür habe ich mal ein kleines Skript geschrieben, dass ich "inid" nenne. Man kann damit auch mehrere Dienste gleichzeitig neustarten(beachtet die Anführungszeichen):
z.B. inid "xinetd sshd" restart.
Wenn kein zweiter Parameter angegeben wird, startet er den Dienst:
z.B. inid xinetd
#!/bin/sh
# inid 1.0
# (C) 2004 D. Jansen
# published under the GNU GPL 3.0
# for a copy see http://www.gnu.org/copyleft/gpl.html

if [ $# != 1 ] && [ $# != 2 ] ; then
echo Error: $# arguments given, but must be 1 or 2.
echo "Please put braces around the services if multiple."
echo ex. \#inid \"gpm apache cupsys\" stop;
exit 1;
fi

if [ $2 ]; then
arg=$2
else
arg=start
fi

for daemons in $1;
do
if [ -e /etc/init.d/$daemons ]; then
sudo /etc/init.d/$daemons $arg;
# you can use ". " instead of "sudo "
# if you only use it as root
else
echo /etc/init.d/$daemons not found!
fi
done

Einmal automatisch gewünschten Grub-Eintrag starten.

#!/bin/sh

/sbin/grub --no-floppy --batch </dev/null 2>/dev/null
root (hd0,1)
savedefault --once --default=7
quit
EOT

Die Nummer hinter --default= ist die Nummer des Eintrags im Grub-Menü, von oben gezählt, beginnend mit 0. Die Root-Partition müsst ihr natürlich anpassen. Guckt einfach in eurer /boot/grub/menu.lst nach. Dort muss außerdem default auf 0 stehen, damit es funktioniert:
default 0

DVB mit VLC über Internet streamen

vlc -v dvb: --dvb-frequency=658000000 --dvb-bandwidth=8 --program=16403 ":sout=#transcode{scale=0.5,vcodec=mp4v,vb=512,\
acodec=mp4a,ab=64,channels=2}:duplicate\
{dst=std{access=http,mux=ts,url=0.0.0.0:12345}}

Überträgt ProSieben in Berlin auf lokalem Port 12345.
vb=Video Bitrate, ab=Audio Bitrate, scale=Skalierungsfaktor.

Der Empfänger muss also vlc folgendermaßen starten:
vlc http://servername:12345

Wie die Frequenz und das Programm anpassen müsst, erfahrt ihr aus eurer channels.conf:
z.B. ProSieben:658000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:
QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:305:306:16403

Die erste Zahl ist die Frequenz, die letzte das Programm. Die channels.conf erzeugt ihr z.B. mit den dvb-utils:

scan /usr/share/doc/dvb-utils/examples/scan/dvb-t/de-Berlin > ../.channels.conf

Viel Erfolg!

Festplatte direkt einbinden unter VirtualBox

Benötigt wird die Binary-Edition des aktuellen VirtualBox. Also nicht die mitgelieferte Version, die sich einfach über Synaptic oder adept installieren lässt.

vboxmanage internalcommands createrawvmdk -filename VBoxRawHD.vmdk -rawdisk /dev/sdb

ACHTUNG: Die Festplatte kann komplett überschrieben werden, etc.

Nervigen PC-Lautsprecher abschalten

Das erledigt ein einfaches:

sudo rmmod pcspkr

Damit ist der PC-Lautsprecher des Mainboards auf jeden Fall und in allen Anwendungen still.

Raid-0 mit Ext3 unter aktuellem (K)Ubuntu anlegen

Ihr benötigt das Programm mdadm.
Nachdem ihr zwei ca. gleichgroße, komplett leere Partitionen (mit Fdisk-Typ "fd") auf unterschiedlichen Festplatten angelegt habt, könnt ihr mit folgendem Befehl den Raid-Verbund erzeugen:

mdadm --create [1] -n [2] --level=[3] [4]
z.B. mdadm --create /dev/md0 -n 2 --level=stripe /dev/sda7 /dev/sdb8

1. Zu erzeugendes Raid-Device, eine bisher nicht existierende Datei mit Namen /dev/md?.
2. Anzahl der Festplatten im Raid-Verbund (4 und 5 also zwei).
3. Die Art des Raids.
4. Die Partitionen im Raid.


Das Ext3-Dateisystem erzeugt ihr am besten wie folgt:
mke2fs -j -E stride=[1] -L [2] -b [3] [4]
z.B. mke2fs -j -E stride=16 -L LABEL -b 4096 /dev/md0

1 Die Stride-Angabe optimiert Ext3 für Raid0 bei Blockgröße 4k des Dateisystems und 64k großen Raid-Chunks (cat /proc/mdstat). Sie berechnet sich 64 k Raid-Chunk/4k Blockgröße=16.
2 Label der Partition( LABEL= ).
3 Blockgröße in Byte.
4 Device-Name des Raid-Verbunds.

Eine ordentliche aktuelle Distribution wird beim nächsten Start das Raid automatisch erkennen und zusammenfügen. Dafür muss denke ich der Fdisk-Typ "fd" bei beiden Partitionen gesetzt sein:

fdisk /dev/sda dann
t <- Patitionstyp ändern.
7 <- Partitionsnummer.
fd <- Auto-Raid-Typ

Am besten mountet ihr wie immer die Partition darauf über oben angelegtes LABEL oder ihre UUID, die man beide auch mit vol_id /dev/md0 rausbekommt.

Leiser Rechner trotz Hintergrundprozessen

Auf aktuellen Rechnern mit Stromspartechnik im Prozessor und aktuellem Kernel kann man mit folgendem Befehl Linux so einstellen, dass es alle Prozesse mit einem positiven "nice"-Wert bei der dynamischen Festsetzung des Prozessortakts ignoriert:
su -c "echo 1 > /sys/devices/system/cpu/cpu?/cpufreq/`cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor`/ignore_nice_load"

Das Fragezeichen ist beabsichtigt und sorgt dafür, dass alle Prozessoren/Prozessorkerne umgestellt werden.

"bash: /sys/devices/system/cpu/cpu?/cpufreq/ondemand/ignore_nice_load: No such file or directory" heißt es hat nicht funktioniert. :)

Zugriffsrechte einer Partition unter Ubuntu ändern

Ich zeige nur ganz kurz, wie man der Gruppe Plugdev, der neue Benutzer meine ich automatisch angehören, Schreibrechte auf das Partitionsverzeichnis gibt. Alle Befehle müssen als root ausgeführt werden. $1 ist das Verzeichnis, man kann das alles auch in ein Skript kopieren, wenn man es öfter benötigt und dann das Skript als root mit dem Verzeichnisnamen als Parameter aufrufen, z.B. sh plugdev-write.sh /media/MeineMountPunkt. Ich gehe davon aus, dass die Partition frisch erzeugt und leer ist.

# Gruppe rekursiv auf plugdev setzen.
chown -cR :plugdev $1

# Der Gruppe Schreibrechte geben.
chmod -cR g+w $1

# Das Lost+Found Verzeichnis sollte nur root gehören.
chown -cR :root $1/lost+found

Komfortabler FTP-Server unter Kubuntu

Für Linux gibt es viele gute FTP-Server(vsftpd, proftpd, ...), aber wenige mit einer einfachen Benutzeroberfläche. Sehr empfehlen kann ich GProFTPD, das GUI zu proftpd.
Dazu dann noch den FTP-Monitor (Paket ftpmonitor) unter KDE in der Taskbar (Miniprogramm hinzufügen) und schon hat man den totalen Überblick.

Aber Achtung: GProFTPD funktioniert nicht, wenn man proftpd über (x)inetd betreiben will. Außerdem muss man in der Konfiguration von gproftpd jeden Nutzer explizit hinzufügen und ihm nicht nur im Programm explizit die Rechte für die Verzeichnisse geben, auf die er zugreifen soll. Der Benutzer muss natürlich auch unter Linux in der einer Gruppe sein, die entsprechenden Zugriff auf das entsprechende Verzeichnis hat, siehe dazu man chmod.