Als ich versuchte Ubuntu Edgy auf meinem Dell Dimension 5150 zu installieren, brach der Installer schon beim Starten mit der Meldung Starting System log daemon: syslogd, klogd. ab. Zwar konnte das Problem durch den Bootparameter debian-installer/probe/usb=false behoben werden, doch sollte derartiges gar nicht nötig sein. An den USB-Bus angeschlossen sind ein Logitech Keyboard, eine alte Microsoft Maus sowie ein Lide30-Scanner von Canon. Bei der Installation von Dapper Drake auf gleicher Hardware gab es noch keine Probleme. Ich bin gespannt, wie sich Feisty Fawn schlagen wird. Selbst wenn Geräte am USB-Bus kaputt sind, sollte das System dadurch nicht einfrieren.
Wozu /media?
Gemäß den Empfehlungen des FHS sollte /media zum Einbinden von Wechseldatenträgern wie CD-ROMs, DVDs, USB-Sticks und ähnlichen in unixartigen Betriebssystemen genutzt werden. Warum nicht /mnt als „Mount point for a temporarily mounted filesystem“ ebenfalls für Wechseldatenträger genutzt werden sollte, die als solche ebenfalls nur temporär eingebunden werden, erschließt sich mir nicht ganz. Spätestens bei USB-Festplatten verliert die Unterscheidung zwischen /mnt /media meines Erachtens an Eindeutigkeit.
Meine Top 10 Unixshell-Kommandos
IBM hat unter Productivity tips einen interessanten Artikel veröffentlicht, der einige Tipps enthält, wie mensch seine Produktivität auf der Kommandozeile optimieren kann.
Als sehr aufschlussreich empfinde ich die vorgestellte Möglichkeit durch Kombination bekannter UNIX-Tools eine Statistik der am häufigsten in der Shell aufgerufenen Kommandos zu erstellen.
$ history|tail -1000|awk '{print $2}'|awk 'BEGIN {FS="|"} {print $1}'|sort|uniq -c|sort -r
Auf dem MacBook:
92 cd
89 ls
44 vim
34 gcc
30 awk
31 make
17 sudo
13 wget
13 java
10 echo
9 top
Auf dem Server:
80 ls
51 cd
47 sudo
41 apt-get
40 tail
23 exit
17 df
10 grep
10 rm
10 chmod
9 cat
Um eine repräsentativere Statistik zu erstellen, wäre es ratsam mit history -c sparsamer umzugehen. 😉
ext2 unter Windows
Linux ist oft die letzte Rettung, um Daten von einer zerstörten Windows Partition zu retten. Das Problem ist nur, wohin die Daten sichern? Die Schnittmenge der von Windows und Linux unterstützten Dateisysteme bildet FAT32. FAT32 hat viele Unzulänglichkeiten, von denen in Praxis am schwersten wiegt, dass Dateien nicht größer als 4 GB sein dürfen. Das Spiegeln einer Partition mit dd wird damit unmöglich, ohne das Dump in mehrere kleine Dateien zu splitten.
Der Schreibzugriff auf NTFS-Volumes ist unter Linux nur auf Umwegen über captive Userland“treiber“ zu empfehlen, wenngleich der im Linux-Kernel implementierte NTFS-Support seit Version 2.6.12 nicht mehr als experimentell eingestuft wird. Captive kann jedoch leider nicht immer genutzt werden, da dazu der original Treiber ntfs.sys von Microsoft vorliegen muss. Außerdem ist der Zugriff über captive auf NTFS-Volumes sehr langsam, da ein erheblicher Overhead durch die API-Emulation entsteht.
Einen Ausweg aus der Misere bietet explore2fs, ein Open Source Tool für Windows, das es ermöglich ext2 und ext3 Partitionen und Images zu öffnen. Der Lesezugriff funktioniert damit auf ext2 und ext3 formatierte Volumes sehr zuverlässig, so dass es kein Problem darstellt auch größere Datenmenge von einer NTFS-Partition unter Linux zu sichern, um sie später unter Windows mit Hilfe vom explore2fs wiederherzustellen.
ProFTPD – langsame Logins
Dauert das Anmelden auf einem mit ProFTPD betriebenen FTP-Server ungewöhnlich lange, ist die Ursache zumeist ein DNS Lookup des Clients.
Abhilfe schaffen die folgenden Optionen in der proftpd.conf:
UseReverseDNS off
IdentLookups off
Wird eine eingehende aktive oder ausgegehende passive Datenverbindung angestoßen, versucht der FTP-Server die IP-Adresse des Clients in einen Namen aufzulösen. Das braucht ein wenig Zeit; und sofern die Auflösung der IP nicht möglich ist, weil zum Beispiel der DNS durch eine Firewall blockiert wird, wartet ProFTD bis zum Timeout durch die libc.
Ähnlich verhält es sich mit den IdentLookups: Hier versucht der FTP-Server mittels Ident-Protokoll den Benutzernamen des Clients zu erfragen – wird das Protokoll vom Client nicht unterstützt oder die Abfrage durch einen Portfilter (aka Firewall) blockiert, muss ProFTPD auf ein Timeout warten.
Spaß mit C++
Welchen Wert hat i?
int i = 44; i = i-- - i--;
Zu gewinnen gibt es nichts, außer der Bestätigung die Wirkung Postdecrementoperators verinnerlicht zu haben und zu wissen, warum gut daran getan ist ihn nicht kombiniert mit anderen Anweisungen zu verwenden, wenn gut wartbarer Code gefragt ist. Als kleinen Bonus erhält man noch Antwort auf die Frage nach dem Leben, dem Universum und dem ganzen Rest.
Any fool can write code that a computer can understand.
Good programmers write code that humans can understand.
Martin Fowler
Linux kann NTFS lesen – Windows XP nicht
Heute bat mich ein Bekannter um Hilfe, nachdem er seine Windows Systempartition unbrauchbar gemacht hatte. Das Unglück geschah beim Versuch mit Hilfe des Acronis Partition Expert die Clustergröße seiner Windows XP Systempartition zu verändern – natürlich ohne vorher ein Backup der Partition anzulegen. Nach scheinbar erfolgreichem Abschluss der Clustergrößenänderung fand der installierte Bootloader grub die Windowspartition nicht mehr. Der Versuch das Problem auf der Windows Rettungskonsole zu beheben scheiterten daran, dass die Systempartition von Windows lediglich als unpartitionierter Speicherplatz erkannt wurde. Auch eine mit BartPE erstellte LiveCD vermochte die Partition nicht zu erkennen. Allen Anschein nach hatte der Acronis Partition Expert die Partitionstabelle arg beschädigt.
Allerdings konnte die parallel installierte openSUSE 10.2 problemlos die Windows-Systempartition mounten und lesen. Dank dd war die vermeintlich zerstörte Partition schnell als Image auf eine externe Festplatte geschrieben. Der Rest wird einfach: Partition löschen, Windows neu installieren, mit einer beliebigen LiveCD starten, Image einbinden und sämtliche Dateien zurückspielen.
Was bleibt ist die Frage, warum Windows die Partition nicht lesen kann. Ist nun also der auf reserve engineering basierende NTFS Support von Linux tatsächlich stabiler oder zumindest fehlertoleranter als der von Microsoft selbst?
[tex]\LaTeX{}[/tex] mit WordPress
Fuktioniert jetzt auch dank mimeTeX auf meinem Sharedhosting Account bei all-inkl. 🙂
\sum_{k=1}^n~k = 1+2+...+n = \frac{n\cdot(n+1)}{2}
\Large\hspace{5}\unitlength{1} \picture(175,100){~(50,50){\circle(100)} (1,50){\overbrace{\line(46)}^{4$\;\;a}} (52,50){\line(125)}~(50,52;115;2){\mid}~(52,55){\longleftar[60]} (130,56){\longrightar[35]}~(116,58){r}~(c85,50;80;2){\bullet} (c85,36){3$-q}~(c165,36){3$q} (42,29){\underbrace{\line(32)}_{1$a^2/r\;\;\;}}~}
Kaputtes AirPort Extreme Update 2007-001
Die bittere Erkenntnis, dass Softwareaktualisierungen oftmals mehr neue Probleme verursachen als lösen, habe ich als Gelegenheitswindosuser mittlerweile verinnerlicht. Törichterweise habe ich Apple mehr Vertrauen geschenkt und bedenkenlos das AirPort Extreme Update 2007-001 installiert, obwohl mein WLAN bislang zufrieden stellend funktionierte. Die Rache folgte stehenden Fußes: Nach wenigen Minuten wurde die Verbindung zum Router unterbrochen und ließ sich selbst durch Neuinitialisierung des AirPort-Adapters meines MacBooks nicht wieder aufbauen. Einzig und allein ein Neustart schuf Abhilfe für durchschnittlich 15 Minuten.
Die Logs gaben auch nicht viel her:
Jan 29 13:12:47 macbook /System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport: Error: WirelessAssociate2() = 88001006 for network wlan_s. The operation timed out.
Testweise habe ich die WPA2-Verschlüsslung für das Netzwerk deaktiviert (auf Dauer keine gute Idee!), die bevorzugten Netzwerke in den Systemeinstellungen gelöscht und schlussendlich alle relevanten Propertylists (com.apple.internetconfig.plist, com.apple.internetconfigpriv.plist, com.apple.internetconnect.plist) gelöscht. Nichts half.
Mir blieb nichts anders ürbig, als das Update wieder zu entfernen. Leider scheint Mac OS X 1.4.8 keine Option vorzusehen, einmal installierte Updates wieder zu deinstallieren. Zum Glück bietet Apple wenigstens
Da das Problem das AirPort-Kernelmodul zu betreffen scheint, sollte es genügen die Datei IO80211Family.kext im Verzeichnis /System/Library/Extensions auszutauschen. Solche Eingriffe sind zwar riskant, weil sich unter Umständen Versionskonfikte mit anderen Kernelmodulen und Systemfunktionen ergeben könnten, aber in Ermangelung anderer Lösungen oft einen Versuch wert.
Also bin ich wie folgt vorgegangen:
- Ganz wichtig: Backup von /System/Library/Extensions/IO80211Family.kext anlegen.
- Das letzte große Update auf Mac OS X 1.4.8 (206 MB) runterladen.
- Die DMG-Datei mounten, aber nicht installieren.
- Das enthaltene Paket MacOSXUpd10.4.8Intel.pkg zum Beispiel mit der Software Pacifist öffnen.
- Die Datei System/Library/Extensions/IO80211Family.kext aus dem Archiv nach /System/Library/Extensions/ entpacken.
- Den Mac neustarten.
Seitdem Eingriff läuft das WLAN wieder zufrieden stellend, zumindest bis zum nächsten Update. 😉