Festplattendefekt

Jetzt hatte ich mal ein größeres Problem: Mein Laptop funktionierte nicht mehr, weil die Festplatte defekt war. Grub meldete: „invalid filesystem”

FestplatteJetzt hatte ich mal ein größeres Problem: Mein Notebook funktionierte nicht mehr, weil die Festplatte defekt war. Grub meldete: „invalid filesystem”

Ich habe eine neue Festplatte für das Notebook gekauft, mit dem positiven Nebeneffekt, jetzt mehr Speicherplatz zur Verfügung zu haben. Ich musste das System natürlich komplett neu aufsetzen, und versuchte mich dann in der Datenrettung von der alten Festplatte. Denn so viel war sicher, das System hat sie ja noch erkannt, sonst wäre Grub nicht gestartet. Und da /home auf einer eigenen Partition liegt, hatte ich die Hoffnung, die Daten noch retten zu können.

Zunächst setzte ich die Platte als zweites Laufwerk ins Notebook ein, was bei den HP 17-Zöllern ja ohne weiteres möglich ist. Aber das bremste mir das System dermaßen aus, weil es immer wieder versuchte, die Lesefehler zu korrigieren, dass ich die Festplatte schnell wieder ausgebaut habe. Statt dessen kaufte ich ein Gehäuse für externe Festplatten, und baute das defekte Laufwerk darin ein.

Ich kann die Platte nun am USB-Anschluss betreiben, und Dolphin zeigte mir auch den Inhalt der Daten-Partition an. Die einstige System-Partition wurde nicht erkannt. Allerdings hatte ich jetzt das Problem, dass ich die Daten zwar sehen, nicht aber auf die neue Festplatte kopieren konnte. Es kam immer wieder zu Lesefehlern.

Nach dem Bemühen von Tante Gurgel ließ mich das Studium diverser Foren dann den Befehl

sudo fsck -v -f -c -y /dev/sdb2

ausführen, mit dem Erfolg, jetzt nur noch einen leeren Datenträger zu sehen.

fsck auf der Konsole
Die Ausgabe von sudo fsck -v -f -c -y /dev/sdb2 auf der Konsole

Ich habe zwar ein Backup der Festplatte, aber da fehlen ein paar der zuletzt erstellten Dateien. Das letzte Backup ist etwa eine Woche vor dem Festplattencrash erstellt, und das am Vorabend des Crashs fällige Backup wurde, vermutlich wegen des Schadens, nicht mehr erfolgreich erstellt.

Hat jemand einen Tipp, wie ich wieder an die Daten komme?

Yeah, ich hab GIMP 2.8

Vor ein paar Wochen ist die Bildbearbeitungs-Software GIMP in Version 2.8 erschienen, die jetzt endlich auch den Einfenster-Modus unterstützt. In den offiziellen Repos von Canonical ist das aber noch immer nicht enthalten.

GIMP 2.8 Splash ScreenVor ein paar Wochen ist die Bildbearbeitungs-Software GIMP in Version 2.8 erschienen, die jetzt endlich auch den Einfenster-Modus unterstützt. In den offiziellen Repos von Canonical ist das aber noch immer nicht enthalten.

Ich habe gestern Abend trotzdem mit wenig Aufwand die neue Version installieren können. Eine kurze Suche auf Google brachte mir neben jeder Menge englischsprachiger Seiten an Platz 2 auch eine deutsche Seite vom Computerclub Diedorf e.V., wo es eine kurze und einfache Anleitung gibt.

Eigentlich muss man nur ein neues Repository hinzufügen, und schon lässt sich GIMP ganz einfach auf Version 2.8 aktualisieren. Am einfachsten geht das über die Konsole:

sudo add-apt-repository ppa:otto-kesselgulasch/gimp

Das fügt das neue Repo hinzu, danach führt man einfach über apt-get das Update durch:

sudo apt-get update && sudo apt-get dist-upgrade

Damit wird GIMP, sofern installiert, auf 2.8 aktualisiert, und evtl. weitere verfügbare Updates werden auch gleich mit eingespielt. Ist GIMP noch nicht installiert, schaufelt man es mit folgendem Befehl auf die Platte:

sudo apt-get update && sudo apt-get install gimp

Abhängigkeiten werden dabei aufgelöst, und ggf. erforderliche Pakete gleich mitinstalliert.

Um den Einfenster-Modus in GIMP zu aktivieren, muss man im Hauptfenster der Bildbearbeitung im Menu Fenster den Haken bei Einzelfenster-Modus setzen. Wenn der Menüpunkt Fenster nicht zu sehen ist, einfach das GIMP-Hauptfenster breiter ziehen. :clap:

GIMP 2.8
GIMP 2.8 im Einfenster-Modus

tinc-VPN als sicheren Exit-Node

Guten Morgen,

nachdem der letzte Eintrag jetzt ja doch wieder ein Weilchen her ist (keine Sorge, ich habe auch die Artikelserie zum Thema Sicherheit nicht vergessen, ich bin nur aktuell 1. beschäftigt und 2. nicht sonderlich motiviert) habe ich hier mal wieder ein Goodie für euch:

Ein Script, das dafür sorgt, dass man seinen tinc-VPN-Server als Exitnode für einen Tunnel nehmen kann ohne sich dabei die Finger zu brechen.

Warnung: YMMV, ich habe alles auf der Konsole gemacht, ich habe keine Ahnung, ob sich das Script mit GUI-Foo wie z.B. dem network-manager verträgt.

Vorbereitung:

tinc installieren:

# apt-get install tinc

tinc.conf erstellen:

# echo "# Kurzname des Routers/Computers
Name = $NAME_DES_NODES
# Mit folgenden Computern versuchen zu verbinden
ConnectTo = $DEIN_SERVER
# Arbeitsweise des VPN
Mode = Router
# alternativen Port zu 655 verwenden
Port = 8656" > /etc/tinc/$DEIN_NETZWERK/tinc.conf

tinc-up erstellen:

# echo "#!/bin/sh
ip addr add dev $INTERFACE 1.2.3.4/24 broadcast 1.2.255.255
ip link set dev $INTERFACE up" > /etc/tinc/$DEIN_NETZWERK/tinc-up

tinc-down erstellen:

# echo "#!/bin/sh
ip route del default
ip route add default via $ORIGINAL_GATEWAY dev $INTERFACE" > /etc/tinc/$DEIN_NETZWERK/tinc-down

Dateien ausführbar machen:

# chmod +x /etc/tinc/$DEIN_NETZWERK/tinc-*

Keys erstellen:

# mkdir /etc/tinc/$DEIN_NETZWERK/hosts
# tincd -n $DEIN_NETZWERK -K

Dieser Befehl erstellt einen private- und einen public-key. Bitte beim private-key einfach mit Enter bestätigen und beim public-key
den Speicherort /etc/tinc/$DEIN_NETZWERK/hosts/$NAME_DES_NODES wählen.

Jetzt passt Du die host-Datei an

# vi /etc/tinc/$DEIN_NETZWERK/hosts/$NAME_DES_NODES

Folgende Eintragungen sind vor dem Key zu machen:

Address = $IP_DES_NODES
Address = $FQDN_DES_NODES_1
Address = $FQDN_DES_NODES_2
Port = 8656

Geh jetzt die gleichen Schritte auf Deinem Server nochmals durch. Du solltest jetzt auf Client und Server jeweils ein Exemplar der host-Datei haben, diese sollten natürlich unterschiedliche IPs haben und unterschiedliche Namen. Mein Laptop z.B. heißt loki, der Server heißt bifroest.

Jetzt kopierst Du die host-Datei von Deinem Client auf den Server und umgekehrt:

# scp /etc/tinc/$DEIN_NETZWERK/hosts/$NAME_DES_NODES root@server.

Wenn beide Dateien ausgetauscht sind sollten die beiden Rechner miteinander reden können:

# tincd -d 3 -n $DEIN_NETZWERK

startet den tinc-daemon mit log-level 3.

# tail -f /var/log/syslog

zeigt euch den Output. Wenn keine Fehlermeldungen aufblinken sollte es so weit tun.

Bis hierher ist das alles noch nichts besonderes, ihr habt jetzt also den ersten Schritt gemacht und könnt euren Server über ein VPN erreichen. So lange jetzt aber nicht alle Verbindungen über diesen Server geroutet werden, bringt euch das nicht wirklich weit.

Um sicherzustellen, dass das ganze Ding jetzt tut, was es soll, müsst ihr zunächst dem Server beibringen, das Richtige ™ zu tun.

Einsatz als Exitnode:

Dazu verbindet ihr euch mit dem Server:

$ ssh root@server.tld

und führt dort folgende Befehle durch:

# iptables -t nat --append POSTROUTING -i $DEIN_NETZWERK -j MASQUERADE
iptables -t nat --append POSTROUTING -j MASQUERADE
iptables -t nat --append PREROUTING -i $DEIN_NETZWERK -j ACCEPT
cat /proc/sys/net/ipv4/ip_forward

Das sorgt dafür, dass euer Server Verbindungen einfach durchschleift und sie nicht zwischendrin blockiert.

Wenn der Server so weit vorbereitet ist, könnt ihr das folgende Script auf dem Client ausführen:

#!/bin/sh
#I don't think that this is necessary but I'll do it anyway:
#License: CC
 
#define variables
 
GW="$(ip r get 8.8.8.8 | gawk '{print $3}')"
TUN="$IP_DES_SERVERS_IM_VPN"
INTERFACE="$(ip r get 8.8.8.8 | gawk '{print $5}')"
EXIT="$IP_DEINES_SERVERS/32"
 
# change routes
ip route del default
ip route add $EXIT via ${GW%0x*} dev ${INTERFACE%0x*}
ip route add $TUN dev $DEIN_NETZWERK
ip route add default via $TUN dev $DEIN_NETZWERK
echo 'nameserver 8.8.8.8' > /etc/resolv.conf
echo "routes established"
ip r show

Ja, das sind mindestens 2 dirty hacks: awk den Hex-Wert abgewöhnen und die resolv.conf überschreiben aber es funktioniert. Ich habe
das Script unter /etc/tinc/$DEIN_NETZWERK/tinc-route gespeichert. Außerdem habe ich ein weiteres Script angelegt:

# echo "#!/bin/sh
tincd -n $DEIN_NETZWERK" > /etc/tinc/$DEIN_NETZWERK/tinc-auto

Dieses dient dazu, beim Start der Netzwerkverbindung den tinc-daemon automatisch anlaufen zu lassen.

Meine /etc/network/interfaces habe ich angepasst wie folgt:

# dhcp-basiertes Kabelnetz
iface auto inet dhcp
pre-up "/etc/tinc/bifroest/tinc-auto"
post-up "/etc/tinc/bifroest/tinc-route"

Damit startet zunächst der tinc-daemon, dann bezieht das interface eine IP und dann werden die Routen angepasst.

Wenn ihr jetzt # mtr eingebt, sollte eure Route über euren Server verlaufen.

Fragen oder Anmerkungen wie immer jederzeit gern in den Kommentaren.

Seite mit Konsolen-Befehlen

Meine Frage letzte Tage, was Ihr hier lesen wollt, hat bisher neben den Tipps & Tricks die Konsole ganz vorne. Daher habe ich mal begonnen, eine Seite zu erstellen, wo die wichtigsten Befehle für die Konsole zusammengestellt und kurz erklärt werden.
 
 

Meine Frage letzte Tage, was Ihr hier lesen wollt, hat bisher neben den Tipps & Tricks die Konsole ganz vorne. Daher habe ich mal begonnen, eine Seite zu erstellen, wo die wichtigsten Befehle für die Konsole zusammengestellt und kurz erklärt werden.

Bisher habe ich dort einige Befehle für Datei- und Verzeichnisoperationen zusammen getragen, aber die Liste wird ständig erweitert.

Schaut einfach mal rein, wir sind offen für Anregungen.

Böse Linux-Befehle

rm -rf / ist ja sicher der Klassiker unter den „bösen“ Befehlen. Er löscht alles ab dem Root-Verzeichnis, rekursiv und ohne lästige Rückfragen.

Jetzt hat Jun Auza in seinem TechSource Blog die 7 tödlichsten Befehle für Linux-Systeme aufgelistet, mit einer englischsprachigen Beschreibung, was die so tun. Und in den Kommentaren sind noch einige Befehle dazu gekommen.

Eine deutsche Übersetzung der 7 Befehle bzw. deren Bedeutung hat die LinuxCommunity veröffentlicht, über die ich auch darauf aufmerksam wurde.

Also viel Spaß beim Zerstören Eurer Systeme :mrgreen:

Linux auf einem Blatt

Eine unverzichtbare Hilfe auf der Suche nach den richtigen Konsolen-Befehlen ist für mich „Linux auf einem Blatt“. Es handelt sich hierbei um ein CheatSheet vom Christian Helmbold, einem zweiseitigen DIN A4 Blatt, auf dem die wichtigsten Befehle gelistet und kurz erklärt sind. Die Befehle sind in Kategorien unterteilt, wie z.B. „Dateien“, „Verzeichnisse“ oder „Benutzer und Gruppen“.

Für mich wie gesagt unverzichtbar. Ich habe das ausgedruckt, laminiert und immer in Reichweite liegen.

Ihr könnt Euch die allerdings nicht mehr taufrische Version (29.03.2006) als PDF von www.helmbold.de/linux herunterladen.

http://helmbold.de/linux/Linux-auf-einem-Blatt.pdf

sudo rm -rf /

Das ist ein Befehl, den man an einem Linux- und Mac-System in die Konsole eingeben kann, ABER NICHT EINGEBEN SOLLTE! Mit „sudo“ hole ich mir die Admin-Rechte. „rm“ ist der Remove-Befehl, mit dem ich Verzeichnisse und Dateien löschen kann. Der Parameter „-r“ sorgt dafür, das alle Unterverzeichnisse, auch nicht leere, in den Löschbefehl einbezogen werden. „-f“ heißt dazu noch: Mach einfach und frag nicht nach.

Das ist ein Befehl, den man an einem Linux- und Mac-System in die Konsole eingeben kann, ABER NICHT EINGEBEN SOLLTE! Mit „sudo“ hole ich mir die Admin-Rechte. „rm“ ist der Remove-Befehl, mit dem ich Verzeichnisse und Dateien löschen kann. Der Parameter „-r“ sorgt dafür, das alle Unterverzeichnisse, auch nicht leere, in den Löschbefehl einbezogen werden. „-f“ heißt dazu noch: Mach einfach und frag nicht nach. Und mit „/“ Gebe ich das Wurzelverzeichnis als Start an. Der Befehl „sudo rm -rf /“ löscht also, nach Eingabe des root-Passworts, ein Linux- oder Mac-System während des Betriebes komplett von der Platte, inkl. der Heimatverzeichnisse der User und somit den persönlichen Dateien. Futsch ist die MP3-Sammlung, und auch die Fotos von der DigiCam sind weg!

Also diesen Befehl niemals an einem Linux-Rechner oder Mac ausführen! Wer es dennoch versuchen will, ist hoffentlich gegen groben Unfug versichert. Ich übernehme keine Verantwortung für zerschossene Systeme!