Archiv der Kategorie: Dateisysteme

F3 (Fight Fake Flash)

Tools zum Testen von Flash-Speichern (USB-Sticks, SD-Karten etc.)

f3write, f3read

Ausführlicher Test des Speichers. Zunächst werden Daten mit f3write geschrieben und anschließend mit f3read verifiziert:

f3write /media/user/device/
f3read /media/user/device/
  • Den Pfad entsprechend dem Mountpunkt anpassen.

Hierbei wird das selbe Dateiformat verwendet, dass auch das Windows-Tool h2testw.exe (link) der c’t verwendet.

f3probe

Schneller Test der real vorhandenen Größe.

Dabei werden sowohl alle Daten auf dem Speicher als auch die Formatierung überschrieben!

Alle Partitionen des Datenträgers zuvor ausbinden:

sudo umount /dev/sdxn

Das Device „/dev/sdxn“ entsprechend aller eingebundenen Partitionen anpassen.

sudo f3probe --destructive --time-ops /dev/sdx
  • Das Device „/dev/sdx“ entsprechend anpassen.
    Achtung, das angegebene Device wird unwiderruflich gelöscht!

f3fix

Erzeugt eine (unformatierte) Partition, die der tatsächlichen Speichergröße entspricht. Hierfür können die Ergebnisse von f3probe verwendet werden. (Alle Partitionen des Datenträgers müssen zuvor ausgebunden werden – siehe f3probe).

sudo f3fix --last-sec=16477878 /dev/sdx
  • Der „Letzte Sektor“ (–last-sec) des tatsächlich zur Verfügung stehenden Speichers wird von f3probe ausgegeben (Zeile „Usable size:“, dort die Zahl direkt vor „blocks“).
  • Das Device „/dev/sdx“ entsprechend anpassen.

Anmerkung: Sofern f3fix meldet, dass die Anpassungen nicht an den Kernel gemeldet werden konnten, muss der Speicher einmal ausgesteckt und wieder eingesteckt werden, bevor er formatiert werden kann.

Anschließend kann die Partition formatiert werden:

sudo mkfs.fat /dev/sdx1
  • Das Device „/dev/sdx1“ entsprechend anpassen.

“Welcome to emergency mode!” – PC startet nicht mehr

Nach einer Neuinstallation kann es sein, dass der Computer nicht mehr startet und man im „emergency mode“ landet. Dann sind vermutlich die Festplatten nicht richtig in der fstab eingetragen. Ob es an diesem Problem liegt kann man herausfinden indem man beim Booten, wenn das Booticon erscheint auf „Esc“ drückt und dann erscheint eine Statusmeldung bei der der Computer 90Sekunden lang die Platte sucht, aber sie nicht findet.
Nachdem die „emergency mode“-Meldung erscheint, kann man sich ganz normal im Terminal anmelden. Mit lsblk oder fdisk -l ermittelt man die /dev/sd* Adressen der Partitionen und trägt diese nachher in der /etc/fstab anstelle der UUID ein.

Ausgabe von lsblk

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 232,9G  0 disk 
├─sda1   8:1    0  18,6G  0 part /
├─sda2   8:2    0     1K  0 part 
├─sda5   8:5    0   953M  0 part [SWAP]
└─sda6   8:6    0 213,3G  0 part /home
sr0     11:0    1  1024M  0 rom  

In der „/etc/fstab“ sieht es dann folgendermaßen aus:

# ursrpüngliche Zeile für die Systempartition:
#  UUID=4ad934e4-ebfd-4b80-b870-e5905ffa5c6c /               ext4    errors=remount-ro 0       1
# neue Zeile für die Systempartition:
/dev/sda1 /               ext4    errors=remount-ro 0       1
# ursrpüngliche Zeile für die Homepartition:
# UUID=76bb5b11-ae98-4f50-a006-7c1be5315512 /home           ext4    defaults        0       2
# neue Zeile für die Homepartition:
/dev/sda6 /home           ext4    defaults        0       2
# swap was on /dev/sda5 during installation
/dev/sda5 none            swap    sw              0       0

Nach einem Neustart sollte der Computer wieder problemlos starten.

Papierkorb bei eingehängter NTFS-Partition benutzten

Unter Linux muss man eine NTFS-Partition(Windows-Partition) wie folgt einhängen, dass man auch hier den Papierkorb benutzten kann.

Mounteintrag in der /etc/fstab:

UUID=XXXXXXXXXXXXXXXX /mnt/windowsdaten ntfs-3g rw,uid=1000 0 0

Fehlermeldung: Uhr falsch

Wenn beim booten die Fehlermeldung:

systemd-fsck[272]: Der Zeitpunkt des letzten Schreibens des Superblocks liegt in der Zukunft.
systemd-fsck[272]: (weniger als ein Tag, wahrscheinlich aufgrund falsch gesetzter Hardware-Uhr) REPARIERT.

erscheint, bringt folgender Befehl Anhilfe:

timedatectl set-local-rtc 0

automount funktioniert nicht

Unter Debian testing kann der automount von CDs und DVDs mitunter nicht funktionieren.

Mittels udisks --mount /dev/sr0 lässt sich des Laufwerk händisch einbinden.

Abhilfe schafft ansonsten die Installation von udisks-glue. Dann sollten die Datenträger wieder automatisch eingebunden werden.

Evtl. muss der Deamon einmal händisch gestartet werden: udisks --mount /dev/sr0

Festplatten mit LVM reparieren

Festplatten, die mit dem Logical Volume Manager formatiert sind lassen sich mit einer Live-CD nicht so leicht einbinden. So löst man das Problem:

Mit lvm vgscan -v die Volumes anzeigen.

Dann mit lvm vgchange -a y aktivieren.

Nun kann man die logischen Laufwerke sehen: lvm lvs --all .

Dann kan man sie mounten: mount /dev/vg_centhost/LogVol00 /mnt/

home-Verzeichnis verschlüsseln unter Debain

Unter Ubuntu kann man (direkt bei der Installation) die einzelnen home-Verzeichnisse des jeweiligen Users so (mit encfs) verschlüsseln, so dass diese mit dem jeweiligen Login autmoatisch für den jeweiligen user entschlüsselt werden. Unter Debian ist dies nur nachträglich möglich und zwar wie folgt:

1) Notwendige Pakete installieren:

sudo apt-get install ecryptfs-utils rsync

2) Ggf. das Modul ecryptfs in den Kernel integrieren (sofern dies nicht automatisch geschieht):

sudo modprobe ecryptfs

3) Die Dateien des Users können nun über ein Skript automatisch verschlüsselt in ein ecryptfs Verzeichnis kopiert werden. Folgender Befehl muss als root im root-Verzeichnis ausgeführt werden:

ecryptfs-migrate-home -u USERNAME

Wichtig: Der entsprechende user darf dabei nicht eingeloggt sein!

4) Die Ausgaben von ecryptfs-migrate-home unbedingt befolgen:
– Sofort mit dem entsprechenden User einloggen und prüfen, ob alle Daten vorhanden sind.
– Sofern alles passt, den Backupordner löschen.
– Den Passwortschlüssel abfragen und an einem sicheren ort speichern:

su ecryptfs-unwrap-passphrase .ecryptfs/wrapped-passphrase

5) Ebenso die swap-Partition verschlüsseln:

ecryptfs-setup-swap

WebDAV

WebDAV (Web-based Distributed Authoring and Versioning) ist ein offener Standard zur Bereitstellung von Dateien im Internet.

In der Konsole kann auf WebDAV über cadaver zugegriffen werden:

  • GMX:  cadaver http://mediacenter.gmx.net
  • Strato:  cadaver http://webdav.strato.de/

Hierfür müssen die Pakete ca-certificates und davfs2 installiert sein:

sudo apt-get install ca-certificates davfs2

WebDAV mounten

Temporär als root in der Konsole

sudo mount.davfs http://webdav.adresse.de /mnt/tausch

Eine weitere Möglichkeit besteht über gvfs-mount. Dieses Vorgehen wird in https://wiki.ubuntuusers.de/gvfs-mount/ ausführlich beschrieben.

Als normaler user über einen Eintrag in der fstab

Eintrag in der fstab:

# WebDAV
https://<webdavurl> <mountpunkt> davfs user,noauto 0 0

Damit jeder Benutzer WebDAV-Laufwerke einbinden darf, muss das SUID-Bit für den Befehl mount.davfs gesetzt werden:

sudo dpkg-reconfigure davfs2

Jeder Benutzer, der das WebDAV-Laufwerk ohne Root-Rechte einbinden darf, muss außerdem der Gruppe davfs2 angehören:

sudo usermod -aG davfs2 <benutzername>

Damit der Benutzername und das Passwort nicht jedes mal eingegeben werden müssen, gibt es zwei Möglichkeiten diese Daten zu hinterlegen:

1. Global für alle Benutzer in /etc/davfs2/secrets (als root bearbeiten):

# Allgemein
# <Mountpunkt / WebDAV-URL> <login> <passwort>
# Beispiel
/mnt manfred.mustermann@gmx.de geheimespasswort
# oder
https://mediacenter.gmx.net manfred.mustermann@gmx.de geheimespasswort

2. Für einen einzelnen Benutzer in ~/.davfs2/secrets (Dateirechte: 600):

# Allgemein
# <Mountpunkt / WebDAV-URL> <login> <passwort>
# Beispiel
/home/otto/mnt/gmx manfred.mustermann@gmx.de geheimespasswort

Hotcopy

Download unter: http://www.idera.com/ProductsSolutions/FreeTools/SBLinuxHotCopy.aspx

Einrichtung:

  1. Programm installieren
  2. sudo hcp-setup --get-module

Hotcopy kann unmittelbar und online Snapshots von jedem gemounteten Device erzeugen. Die Snapshots sind les- und schreibbar, lasen sich aber auch read-only anlegen. Sie brauchen im Unterschied zu LVM keinen vorher reservierten Platz und sind sehr schnell. Einen Snapshot der Partition /dev/sda5 erzeugt beispielsweise:
sudo hcp --read-only /dev/sda5
Das erzeugt augenblicklich eine Kopie der Daten unter dem virtuellen Device /dev/hcp1. Ein normales Backup von diesem Device wird automatisch zur Online-Sicherung, die sich nicht mehr um offene Files zu scheren braucht. Danach kann man den Snapshot mit
sudo hcp -r /dev/hcp1
wieder verwerfen. Will man ein riskantes Skript testen, legt man sich zunächst wieder einen Snapshot seiner Systempartition an, der automatisch an /var/hotcopy/Devicename gemountet wird:
# hcp /dev/sda5
Nun setzt man den Snapshot temporär als neues Root-Directory ein
# chroot /var/hotcopy/sda5
In dieser Umgebung lässt sich jetzt gefahrlos das Skript testen, das einem nicht geheuer war.
# diff --recursive / /var/hotcopy/sda5
zeigt anschließend, was das Skript geändert hätte.

e2fsck

ext2/ext3-Dateisysteme überprüfen

  • e2fsck -f /dev/xxx erzwingt einen Dateisystemtest auf dem Dateisystem /dev/xxx
  •  e2fsck -b Blocknummer  Falls der Superblock defekt ist, kann der Ersatz-Superblock im Block „Blocknummer“ verwendet werden. Diese Blocknummer kann mit  mke2fs -n /dev/xxx 
    ermittelt werden.
  • e2fsck -fD /dev/xxx stellt bereits existierende Dateien auf dir_index
    um. Zuvor muss diese Option mit tune2fs
    aktiviert werden. Weiterhin werden beim Aufruf dieser Option ungültige Einträge aus den Verzeichnisdateien gelöscht (die Namen gelöschter Dateien bleiben dort nämlich gespeichert) und die Baumstruktur der Dateinamen wird neu aufgebaut. Dies bringt deutliche Geschwindigkeitsvorteile bei Verzeichnisoperationen.

badblocks

Physikalische Überprüfung des Datenträgers

badblocks -vsn /dev/sda1

Optionen:

-n nicht-destruktiver Lesemodus
-s Fortschritt wird angezeigt
-v Verbose-Modus
-w Test mit Schreibzugriff

Verschlüsseltes Dateisystem

Verschlüsseltes Dateisystem (encfs)
Einbindung eines verschlüsselten Dateisystems mit Hilfe von encfs

Voraussetzungen:
Kernelmodul fuse muss vorhanden sein. Alle Benutzer, die encfs benutzen sollen, müssen der Gruppe fuse zugeordnet werden!

  1. apt-get install encfs
    hierbei wird die Gruppe fuse angelegt
  2. Alle notwendigen User der Gruppe fuse zuordnen
  3. Zwei Ordner erstellen. In den versteckten Ordner werden die Dateien verschlüsselt abgespeichert und über den nicht versteckten Ordner kann man darauf zugreifen:
    mkdir /home/user/.secure
    mkdir /home/user/secure
  4. Filesystem einhängen mit: encfs -raw /home/user/.secure /home/user/secure
    Beim ersten Start die Standard-Konfiguration wählen.
  5. Filesystem aushängen mit: fusermount -u /home/user/secure

Skript  mountsafe zum automatischen mounten/unmounten des Dateisystems:
Skript starten über: mountsafe /home/user/.secure /home/user/secure
Hier das Skript:

#!/bin/sh
# Mounts/unmounts encFS path
# Source (encFS encrypted path)
SRC=$1
# Destination (mount point for encrypted path)
DST=$2

if [ "$(cat /proc/mounts | grep encfs | grep $DST)" != "" ];
then
  $(kdialog --title "encFS: unmount $DST..." --warningyesno "encFS: should $DST be unmounted?")
  if [ $? == 0 ]
  then
    fusermount -u $DST &
  else
    konqueror $DST &
  fi
else
  kdialog --title "encFS: Enter passphase..." --password "Enter passphrase for [$DST]" | encfs $SRC $DST && konqueror $DST
fi

partimage

partimage -z1 -b -d save /dev/hda1 /mnt/home/image.img.gz sichert hda1 nach image.img.gz.000
partimage restore /dev/hda1 /mnt/home/image.img.gz stellt die Sicherung wieder her.

Für die Wiederherstellung des Master Boot Record (MBR) schreibt man partimage restmbr /mnt/home/image.img.gz

Das Programm partimage kann aber auch einfach so gestartet werden.
Beispielskript zur automatischen Erstellung eines Backups (z.B. von der System-Rescue-CD aus)

#! /bin/bash
# Startwerte setzen
src_part=hda2   # Partition, die gesichert werden soll
dst_part=hdb3   # Partition, auf die das Backup geschrieben werden soll
path="backup/sysbackup"    # in diesen Pfad auf der Zielpartition (dst_part) 
                             wird das Backup geschrieben

# Zielpartition mounten 
mkdir /mnt/$dst_part
mount /dev/$dst_part /mnt/$dst_part
echo Wait for /dev/$dst_part to be mounted ...
while [ ! -d "/mnt/$dst_part/$path" ]; do
  sleep 1
done

# Backup starten
datum=`date +%y%m%d`
partimage -z1 --volume 2085888 -b -f3 save /dev/$src_part /mnt/$dst_part/$path/sysbackup_$datum

# Zielpartition unmounten
echo Wait for /dev/$dst_part be unmounted ...
while [ -d "/mnt/$dst_part/$path" ]; do
  umount /dev/$dst_part
  sleep 1
done
rm -rf /mnt/$dst_part

# System neu starten
echo Restarting system ...
reboot

mkfs

Einrichten von Dateisystemen
mke2fs ext2- oder ext3-Dateisystem einrichten
mkreiserfs Reiser-Dateisystem einrichten
mkswap Swap-Dateisystem einrichten. ( swapon - swapoff )
mkdosfs -F 32 -v /dev/sda1
Leichter geht das mit der grafischen Oberfläche von qtparted (System-Rescue-CD oder Knoppix)

mount

hängt ein Laufwerk in das System ein

  • mount
    gibt alle eingehängten Datenträger an
  • CD-ROM:
    mount -t iso9660 -o ro /dev/hdc /mnt/cdrom
  • Diskette:
    mount -t auto -o ro /dev/fd0 /mnt/floppy
  • Netzwerk:
    mount 196.168.0.2:/home /mnt/home/
  • ISO-Abbild einbinden:
    mount -t iso9660 -o loop cdrom.iso /mnt/tmp
  • Eine Partition ist nur lesbar und nicht schreibbar (ro) gemountet. Soll sie nun doch schreibbar sein gibt man als root folgendes ein:
    mount /dev/hda1 -o remount,rw

Weiterlesen

fstab

In der Datei /etc/fstab stehen die Zuordnungen zwischen Dateisystemen und deren Mountpunkten. Diese Dateisysteme können beim Systemstart automatisch gemountet werden. Die Spalten enthalten folgende Meldungen:
Gerätedatei – Mountpoint – Dateisystemtyp – Mount-Optionen – dump-Infos – fsck-Infos

Mount-Optionen:

async asynchroner Dateizugriff
atime ändern des Datums beim letzten Zugriff
auto automatisches Mounten mit -a möglich
defaults Standardeinstellungen (rw, suid, dev, exec, auto, nouser, async)
dev zeichen- und blockorientierte Geräte
exec ermöglicht Ausführung von Dateien
noatime keine Datumsaktualisierung
noauto kein automatisches Mounten mit -a möglich
nosuid s-Bit hat keine Wirkung
nouser normale User dürfen nicht mounten
remount erneutes Einhängen möglich
ro read-only
rw read-write
suid s-Bit kann verwendet werden
sync synchroner Zugriff
users jeder darf dieses System mounten
user der am Desktop angemeldete user darf mounten

dump/pass:
„Dump“ legt fest, ob die Partition von dem Backupprogramm Dump gesichert werden soll. „Pass“ legt fest, ob und in welcher Reihenfolge die Partitionen auf Fehler überprüft werden sollen. Bei der Root-Partition sollte 1 stehen, bei allen anderen zu überprüfenden Partitionen eine 2. Wenn hier eine 0 eingetragen wird, wird die Platte nicht geprüft. Diese werden dann gleichzeitig getestet (evtl. hier nach physikalischen Festplatten trennen).

Beispiel einer fstab:

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
## Festplatte 1 /dev/hda
/dev/hda1       none            swap    sw              0       0
/dev/hda2       /               ext3    defaults        0       1
/dev/hda3       /mnt/hda3       ext3    defaults        0       2
## Festplatte 2 /dev/hdb
/dev/hdb1       /mnt/hdb1       ext3    defaults        0       2
/dev/hdb2       /mnt/hdb2       ext3    defaults        0       2
/dev/hdb3       /mnt/hdb3       ext3    defaults        0       2
## CD-Laufwerke
/dev/hdc        /media/cdrom0   udf,iso9660 user,noauto 0       0
/dev/hdd        /media/cdrom1   udf,iso9660 user,noauto 0       0
## Diskette
/dev/fd0        /media/floppy0  auto    rw,user,noauto  0       0
## USB-Einbindung mit DevMode 0666
none            /proc/bus/usb   usbfs   auto,devmode=0666 0       0

Mit mount -a wird die fstab wieder neu eingelesen.

Beim Einbinden von Laufwerken unter /media werden diese auf der Arbeitsfläche angezeigt. Beim Einbinden in anderen Pfaden ist das Laufwerk für den Anwender nicht auf den ersten Blick sichtbar.

Netzwerklaufwerke einbinden

Netzwerklaufwerke können wie folgt eingebunden werden:

192.168.1.9:/pfad_auf_dem_Server/ /pfad_auf_lokalem_Rechner/ nfs _netdev,noauto,user 0 0

Durch noauto wird das Laufwerk nicht automatisch gemountet, und kann später durch jeden User (wegen Angabe von „user“) eingebunden werden.

Auf einigen neuen Systemen wird der Systemstart vom systemd verwaltet. In diesem Fall müssen die Netzlaufwerke in der fstab wie folgt eingebunden werden:

192.168.1.9:/pfad_auf_dem_Server/ /pfad_auf_lokalem_Rechner/ nfs nofail,x-systemd.automount,x-systemd.requires=network-online.target,x-system.device-timeout=20,user 0 0

Spezifische Parameter für den systemd:

nofail Fehler beim Einbinden werden ignoriert und der Bootvorgang weitergeführt.
x-systemd.automount Das Laufwerk wird automatisch eingebunden
x-systemd.requires=network-online.target Vor dem Einhängen wird auf aktive Netzwerkverbindung gewartet.
x-system.device-timeout=20 Timeout für die Verbindung von 20 Sekunden

Wo befindet sich was?

/bin ausführbare Systemdateien
/boot Kernel und Bootmanager
/dev Geräte
/etc globale Konfigurationsdateien
/home persönliche Verzeichnisse
/lib Systembibliotheken
/media Unterverzeichnisse für Dateiträger
/mnt Unterverzeichnisse für Dateiträger
/opt Software
/proc Infos zu aktiven Prozessen
/sbin Systemdateien
/tmp temporäre Dateien
/usr/bin Programme
/usr/lib Bibliotheken
/var Log-Dateien, Spooler…
/lost+found wiederhergestellte Dateien

Laufwerke finden sich, ja nach Distribution, unter verschiedenen Bezeichnungen. Festplatten sind meist /dev/hda1 oder /dev/sda1. a ist dabei die erste Festplatte und 1 die erste Partition darauf. So wäre /dev/sdb2 die zweite Festplatte und die zweite Partition darauf.
CD- bzw. DVD-Laufwerke sind meist /dev/scd0 oder /dev/sr0. Die 0 bezeichnet das erste Laufwerk, das zweite wäre dann die 1.

Disketten kopieren

Diskette in Image-Dateien kopieren: dd if=/dev/fd0 of=floppyimage.img
Eine exakte Kopie der Diskette wird unter floppyimage.img abgelegt.
und wieder zurück: dd if=floppyimage.img of=/dev/fd0

df

zeigt die Belegung aller gemounteten Medien an
df -h .; echo; du -m --max-depth=1 . 2>/dev/null | sort -nr | head -10 zeigt den freien Platz auf der aktuellen Partition plus die zehn vollsten Unterverzeichnisse des aktuellen Verzeichnisses