Archiv

Artikel Tagged ‘XFS’

Auf der Suche nach dem richtigen Datei- und Betriebssystem…

6. März 2009

Bisher residieren meine Daten auf Festplatten mit dem XFS-Dateisystem (SGI XFS | XFS.org Wiki). Dies hat sich bei mir mit etlichen hundert Gigabyte Daten (Fotos, Musik, …) im Einsatz unter Linux sehr gut bewährt.

Notfalls klappt auch ein Zugriff von (beliebigen) anderen Systemen aus (getestet mit Windows und Mac OS X 10.5 „Leopard”), indem ich eine virtuelle Linux-Maschine mit Vollzugriff auf diese Platten einrichte und deren Inhalt per Samba über das Netzwerk anbiete. Leistungsmäßig kann das natürlich nur eine Behelfslösung sein (z.B. eben bei meinen seltenen Ausflügen in die Windows-Welt oder aber, um irgendwann auf ein anderes Dateisystem umzustellen).

So langsam denke ich über eine Modernisierung meiner Rechnerausstattung nach. Dazu gehört auch die Frage nach dem passenden Betriebs- und Dateisystem. Vielleicht lohnt sich — obwohl ich mit meinem Ubuntu Linux sehr zufrieden bin — ein Blick über den Tellerrand.

Da ich (außer einer DVB-S-Karte) kaum irgendwelche spezielle Hardware habe und Windows, wenn überhaupt, hauptsächlich in der VirtualBox benutze, hängt die Frage nach dem Betriebssystem für mich sehr eng mit den unterstützten Dateisystemen zusammen:

  • Solaris/OpenSolaris hat natürlich von Haus aus volle Unterstützung für ZFS. Für XFS bleibt nur die o.g. „Behelfslösung”.
  • FreeBSD kann ab Release 7 das XFS lesen und hat experimentelle Unterstützung für ZFS.
  • Mac OS X 10.5 „Leopard” kann ZFS lesen, Schreibunterstützung ist für Mac OS X 10.6 „Snow Leopard” geplant bzw. kann von MacOSForge „nachgerüstet” werden.

Außerdem gibt es eine Handvoll Programme, die unter dem jeweiligen Betriebssystem laufen sollten:

  • OpenOffice.org (Linux, Solaris, Mac OS X)
  • TrueCrypt (Linux, Mac OS X)
  • VirtualBox (Linux, Solaris, Mac OS X)
  • MATLAB (Linux, Mac OS X; Solaris nur auf UltraSPARC)
  • NetBeans (Linux, Mac OS X, Solaris, Java)
  • LaTeX
  • Adobe Reader (Linux, Mac OS X; Solaris nur auf SPARC)
  • Adobe Flash Plugin (Linux, Mac, Solaris)

Bei einigen anderen Programmen, die ich regelmäßig benutze, mache ich mir kaum Sorgen, da diese auf etlichen Plattformen verfügbar sind (The GIMP, Pidgin, Mozilla Firefox, …).

Sieht wohl bisher so aus, als ob der Mac das Rennen macht (und dann Linux-Multi-Boot oder Linux in der VirtualBox?). Na ja, mal sehen…

Links

Linux, Mac OS X , , , , , , , , , ,

Zugriff auf Linux-Dateisysteme (XFS, ext2fs, ext3fs, ReiserFS, JFS …) unter Mac OS X

25. August 2008

Tux

Wenn ich nun schon Mac OS X, Linux und Windows auf einem System habe, würde ich jetzt natürlich auch ganz gern von von Mac OS auf meine bestehenden Daten zugreifen.

Meine Daten sind über zwei SATA-Festplatten mit XFS-Dateisystem verteilt, eine für Musik und eine für sonstige Daten.

Unter Windows habe ich für diesen Zweck gute Erfahrungen mit coLinux und VirtualBox gemacht. Letzteres gibt es auch für Mac OS, aber unterstützt dort leider nicht den Zugriff auf phys. Festplatten (vielleicht kommt dies ja in einer späteren Version — unter Linux und Windows wird es ja unterstützt).

Meine (zugegebenermaßen nicht sonderlich elegante) Lösung für Mac OS setzt also auf das etwas weniger performante QEMU, bzw. dessen Mac-Variante Q.app. Darin habe ich die Servervariante von Ubuntu Linux 8.04 LTS „Hardy Heron” installiert.

QEMU bekommt nun Zugriff auf z.B. /dev/disk2 als zusätzliches Festplattenlaufwerk (mit der QEMU-Option -hdb /dev/disk2 erscheint diese Platte im Linux-Gast als /dev/sdb). Dieses kann nun im Linux-Gast gemountet und per Samba freigegeben werden.

Q.app gestattet die komfortable Einrichtung von Portweiterleitungen über die grafische Oberfläche. Wenn QEMU nicht als root ausgeführt wird, kann es sich allerdings nicht an Port 139 binden. Stattdessen könnte jedoch z.B. Port 1390 auf dem Wirtssystem an Port 139 auf dem Gastsystem weitergegeben werden. Leider unterstützt das von FreeBSD geerbte mount_smbfs(8) unter Mac OS X im Gegensatz zum entsprechenden Tool mount.cifs(8) aus der Samba-Suite unter Linux nicht die Angabe einer Portnummer, sondern verwendet immer Port 139.

Daher erzeuge ich (was jetzt nicht so elegant ist) einen SSH-Tunnel in die virtuelle Maschine, der den Samba-Server auf dem Wirtssystem zur Verfügung stellt (vorausgesetzt, dort werden nicht schon SMB-Freigaben bereitgestellt):

sudo ssh -c blowfish -p 2200 linuxbenutzer@localhost -L 139:localhost:139

Nun lassen sich die Samba-Shares in Mac OS X von der Kommandozeile aus einhängen (mit Angabe der Server-Adresse im Finder hatte ich leider keinen Erfolg):

mkdir /Volumes/Daten /Volumes/Musik
mount -o noowners -t smbfs "//WORKGROUP;smbbenutzer:smbpasswd@localhost/daten" /Volumes/Daten
mount -o noowners -t smbfs "//WORKGROUP;smbbenutzer:smbpasswd@localhost/musik" /Volumes/Musik

Diese Lösung ist also, wie schon beschrieben, aus mehreren Gründen noch sehr unelegant:

  • QEMU ist nicht soo sonderlich schnell
  • die Verschlüsselung aller Dateien mit SSH kostet unnötig Performance — dies ließe sich leicht umgehen, indem QEMU priviligiert ausgeführt wird und sich somit an Port 139 binden darf oder durch Verwendung von Netcat, um den Verkehr z.B. von Port 1390 auf Port 139 umzuleiten.
  • auf dem lokalen Rechner darf bei dieser Lösung nicht selbst schon ein SMB-Server laufen

Als Quick&Dirty-Hack reicht sie mir aber erstmal. Ich komme an meine Dateien von von XFS-Dateisystemen heran und die Performance reicht für Fotos, Musik und Dokumente locker aus.

Hinweis

Da ich oben schreibe, dass QEMU für diese Lösung nicht sonderlich performant ist, möchte ich an dieser Stelle aber noch erwähnen, dass QEMU als CPU-Emulator gegenüber Virtualisierern wie VirtualBox, VMware oder Parallels durchaus Vorteile hat, wie z.B. dass er im unpriviligierten Anwender-Modus läuft und auch andere Architekturen als die des Wirtssystems emulieren kann.

Nachtrag

Inzwischen habe ich eine QEMU-Version für Mac OS X, die sich als priviligierter Benutzer von der Kommandozeile ausführen lässt: Mehr dazu in diesem Artikel.

Computer, Linux, Mac OS X , ,

Aargh! Der Daten-Super-GAU ist eingetreten…

5. August 2008

Und ich bin auch noch selbst Schuld…

Letzte Nacht habe ich im Halbschlaf versucht, zusätzlich Windows auf meinem Linux-Rechner zu installieren.

Resultat: Versehentlich die falsche Platte, nämlich meine Datenplatte (vorher XFS-Dateisystem), mit NTFS überformatiert…

xfs_repair(8) konnte jedoch zum Glück nach längerer Suche den „secondary superblock” ausfindig machen und etliche Dateien wiederherstellen. Allerdings hat die Verzeichnisstruktur ziemlich gelitten und viele der Dateien liegen jetzt einfach „durchnumeriert” im Verzeichnis lost+found. Das sind jetzt so ca. dreizehntausend Einträge in dem Verzeichnis. Kann etwas dauern, bis ich die durchforstet hab…

Nachtrag (6.8.2008) — jetzt auch noch ein Hardwareausfall…
(…und ich bin nicht Schuld)

Als ob das noch nicht genug gewesen wäre…: Jetzt hat es auch noch meine Systemfestplatte gerissen. Allerdings ist es diesmal wohl ein Hardwaredefekt (zumindest ist der S.M.A.R.T.-Status schlecht). Zum Glück war da nichts Wichtiges drauf… Da Western Digital auf die Platte 5 Jahre Garantie gegeben hat, hoffe ich natürlich auf Ersatz.

Hier ist ein Ausschnitt aus dem Ergebnis von smartctl -a /dev/sda:

=== START OF INFORMATION SECTION ===
Model Family:     Western Digital Caviar RE Serial ATA series
Device Model:     WDC WD5000YS-01MPB0
Serial Number:    WD-WMANU1697511
Firmware Version: 07.02E07
User Capacity:    500.107.862.016 bytes
[...]

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: FAILED!
Drive failure expected in less than 24 hours. SAVE ALL DATA.
See vendor-specific Attribute list for failed Attributes.

[...]
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   195   195   051    Pre-fail  Always       -       9053
  3 Spin_Up_Time            0x0003   226   223   021    Pre-fail  Always       -       5675
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       635
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000f   200   200   051    Pre-fail  Always       -       0
  9 Power_On_Hours          0x0032   093   093   000    Old_age   Always       -       5689
 10 Spin_Retry_Count        0x0013   100   100   051    Pre-fail  Always       -       0
 11 Calibration_Retry_Count 0x0012   100   100   051    Old_age   Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       630
194 Temperature_Celsius     0x0022   253   253   000    Old_age   Always       -       50
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0012   192   192   000    Old_age   Always       -       678
198 Offline_Uncorrectable   0x0010   194   194   000    Old_age   Offline      -       518
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
200 Multi_Zone_Error_Rate   0x0009   001   001   051    Pre-fail  Offline  FAILING_NOW 19251

SMART Error Log Version: 1
ATA Error Count: 283 (device log contains only the most recent five errors) [...]

Error 283 occurred at disk power-on lifetime: 5689 hours (237 days + 1 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 08 1e 62 c1 e0  Error: UNC 8 sectors at LBA = 0x00c1621e = 12673566

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  25 00 08 1e 62 c1 35 00      20:11:28.146  READ DMA EXT
  27 00 00 00 00 00 00 00      20:11:28.146  READ NATIVE MAX ADDRESS EXT
  ec 00 00 00 00 00 00 00      20:11:28.137  IDENTIFY DEVICE
  ef 03 46 00 00 00 00 00      20:11:28.130  SET FEATURES [Set transfer mode]
  27 00 00 00 00 00 00 00      20:11:28.130  READ NATIVE MAX ADDRESS EXT
[...]

Nachtrag 2 (7.8.2008) — Dateien nach Typ sortieren (trotz fehlender Dateiendung)

Um mir das Sortieren der von xfs_repair(8) nach lost+found verschobenen Dateien etwas zu erleichtern, habe ich ein kleines Shell-Skript geschrieben, welches die Dateien entsprechend ihren Typs in ein anderes Verzeichnis verschiebt. Da zusammen mit den Dateinamen auch die Dateinamenserweiterung verlorengegangen ist, muss dies mit file(1) anhand der „magic numbers” geschehen.

#!/bin/bash
for F in *;
	do MAGIC=`file "$F"`;
	if [[ $MAGIC =~ "JPEG" ]]; then
		echo $MAGIC;
		mv "$F" /mnt/tera/restore/bilder/
	fi
done;

Computer , , , , , , ,