Tolles Printlabor & Tolles Fotopapier

Mein Kollege hat sich gerade das Musterpaket von theprintspace.de zuschicken lassen. Wau, die verschiedenen Fotopapiere sind große Klasse. Ich persönlich liebe die Haptik von Hahnemühle German Etching und für Farbbilder Fuji Flex & Kodak Metallic.

Wenn Ihr etwas Geld überhabt und mal einen tollen Fotopapiervergleich wollt, bestellt auch das Musterpaket http://www.theprintspace.de/bestellung-musterpaket.php.

PS: Schnell sind sie auch 😉

Keine Lust mehr „Lorem epsum“ zu tippen?

Es gibt ein tolles „Lorem epsum“ JS-Framework, mit dem sehr schnell HTML-Mockups erstellt werden können. Die bisherigen Möglichkeiten zur Blindtext- und Dummybilderzeugung sind folgende (Stand: 12.02.2013):
– generates random numbers (text)
– placehold.it (image)
– placekitten.com (image)
– baconmockup.com (image)
– placedog.com (image)
– baconipsum.com (text)
– lipsum.com (text)
– lorizzle.nl (text)
– robotipsum.com (text)
– hipsteripsum.com (text)
– tunaipsum.com (text)

Ihr findet es unter: https://github.com/ndreckshage/roughdraft.js/

Essential Toolkit for Web-Developers

Emmet Toolkit (previously known as Zen Coding) is a web-developer’s toolkit that can greatly improve your HTML & CSS workflow

Was soll man mehr sagen, ein wirklich tolles Toolkit für HTML und CSS. Ihr könnt das Toolkit für viele unterschiedliche Editoren verwenden, für mich sind die drei wichtigsten mit dabei: Sublime Edit, TextMate und Eclipse. Auf der Website sind einige kurze Videos, die die Mächtigkeit des Toolkits darstellen.

Besonders cool finde ich persönlich die Abkürzungen!

Viel Spaß beim emmeten 😉

Cron oder Anacron?

Eine kleinere Änderung bei CentOS release 6.3 (Final) hat mich ein wenig irritiert, da ich den Mailempfänger der STDOUT/STDERR Meldungen der cronjobs anpassen wollte und diesen in der Datei /etc/crontab unter dem Wert MAILTO=XXXX eingetragen hatte.
Dennoch kamen die E-Mails von /etc/cron.daily weekly usw. immer noch an den root-User, der die E-Mails eigentlich nicht erhalten sollte. Bei der Durchsicht der Datei /etc/crontab fiel mir nun auf, dass eben diese täglichen, wöchentlichen und ähnliche Aufrufe nicht mehr in dieser Datei aufgelistet waren. Ebenso war der Mailheader ‚Von: „Anacron root@server.de“‚!

Der anacron Dienst hat die /etc/cron.daily usw. Jobs übernommen, gleichzeitig ist der „normale“ crond installiert und läuft. Also falls Ihr Euch auch wundert, warum die eingetragene E-Mail in der /etc/crontab Datei „ignoriert“ wird, es ist nun der anacron-Deamon, der einen Teil der Cronjobs, genauer die /etc/cron.* Skripte übernommen hat 🙂

Man lernt nie aus und man sollte immer auf den Absender der cron-Meldungen schauen 😉

Recover einer defekten Software RAID Festplatte

Ich habe mich an die sehr gute Anleitung von GWDG gehalten (Erstellen eines Mirrors mit mdadm und Austausch einer Festplatte)

Gute Informationen, wie man eine SCSI Platte während des Betriebs entfernt und u.U. wieder einbindet findet Ihr unter How do I make Linux recognize a new SATA /dev/sda drive I hot swapped in without rebooting? (serverfault)

Diese Anleitung hat super und schnell geklappt, vielen Dank! Natürlich ist die Anleitung ohne Gewähr und für Datenverluste wird nicht gehaftet 😉

ACHTUNG!

Egal welche Anleitung Ihr verwendet. Macht vorher ein Backup von allen Daten! Ohne Backup solltet Ihr keinerlei Aktionen starten. Falls Ihr wissen wollt warum, googled einfach nach „I must not loose the data“. Für diese Anleitung gilt natürlich, alles ohne Gewähr 😉

Problem und Lösung

In meinen Fall war die defekte Platte /dev/sdb und die „heile“ Platte /dev/sda.


# sfdisk -l /dev/sdb

Disk /dev/sdb: 121601 cylinders, 255 heads, 63 sectors/track

sfdisk: ERROR: sector 0 does not have an msdos signature
/dev/sdb: unrecognized partition table type
No partitions found

# sfdisk -l /dev/sda

Disk /dev/sda: 121601 cylinders, 255 heads, 63 sectors/track
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

Device Boot Start End #cyls #blocks Id System
/dev/sda1 0+ 486 487- 3911796 fd Linux raid autodetect
/dev/sda2 487 730 244 1959930 82 Linux swap / Solaris
/dev/sda3 731 121600 120870 970888275 fd Linux raid autodetect
/dev/sda4 0 - 0 0 0 Empty

# dd if=/dev/sda of=/dev/sdb count=1 bs=512
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.001284 seconds, 399 kB/s

ACHTUNG: Die eben genannte Methode zur Übertragung des Partitionstable hat auf einen Rechner mit logischen Partitionen nicht funktioniert. Dort konnte ich den Partitiontable mit folgender Methodik übertragen, siehe Linux Software RAID:

# sfdisk -d /dev/sda | sfdisk /dev/sdb

Kontrolliert anschließend unbedingt den Partitiontable!

# sfdisk -l /dev/sdb

Disk /dev/sdb: 121601 cylinders, 255 heads, 63 sectors/track
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

Device Boot Start End #cyls #blocks Id System
/dev/sdb1 0+ 486 487- 3911796 fd Linux raid autodetect
/dev/sdb2 487 730 244 1959930 82 Linux swap / Solaris
/dev/sdb3 731 121600 120870 970888275 fd Linux raid autodetect
/dev/sdb4 0 - 0 0 0 Empty

Den Partiontable im Kernel bekannt geben. Idealerweise sollte ein Reboot durchgeführt werden, aber ACHTUNG wenn die erste Festplatte defekt ist, ist das System nicht bootbar! (In diesem Fall sollte ein Recovery System (z.B. sysrescue-CD) vorhanden sein.
# sfdisk -R /dev/sdb

Beschleunigung: Vor der Wiederherstellung sollten die aktuellen Werte vom RAID (speed_limit_min und speed_limit_max) kontrolliert und ggf. erhöht werden.
# cat /proc/sys/dev/raid/speed_limit_min
1000
# echo 10000 > /proc/sys/dev/raid/speed_limit_min
# cat /proc/sys/dev/raid/speed_limit_max
20000
# echo 40000 > /proc/sys/dev/raid/speed_limit_max

# mdadm /dev/md1 -a /dev/sdb1
mdadm: added /dev/sdb1

Bemerkung: In verschiedenen Forenbeiträgen wurde empfohlen das interne Bitmap für den Wiederherstellungsprozess zu aktivieren und anschließend wieder zu deaktivieren. Es sollte den Prozess beschleunigen:
# mdadm --grow --bitmap=internal /dev/md2
# mdadm /dev/md2 -a /dev/sdb2
# mdadm --grow --bitmap=none /dev/md3

# watch cat /proc/mdstat
Personalities : [raid1]
md3 : active raid1 sda3[1]
970888192 blocks [2/1] [_U]

md1 : active raid1 sdb1[2] sda1[0]
3911680 blocks [2/1] [U_]
[===>.................] recovery = 15.1% (591040/3911680) finish=1.4min speed=36940K/sec

unused devices: <none>

Grub Bootloader der „ersten“ Festplatte

Ergänzung für die Reinitialisierung des MBR/Grub Bootloader. Wenn die „erste“ Festplatte defekt ist, muss u.U. der MBR neu installiert werden. Deshalb befindet man sehr wahrscheinlich in einem Rescue-System. Dort kann man die betreffenden Platten mounten und einbinden, aber wie installiere ich grub neu?

Eine Anleitung dazu findet man unter: https://fermilinux.fnal.gov/documentation/tips/mount-bind-chroot

In meinen Fall war die Platte /dev/sda aus einem Software RAID defekt (/dev/md1 und /dev/md3)


rescue:/~# cd /media
rescue:/media# mkdir md1
rescue:/media# mount /dev/md1 md1
rescue:/media# mount -o bind /proc /media/md1/proc
rescue:/media# mount -o bind /dev /media/md1/dev
rescue:/media# mount -o bind /sys /media/md1/sys
rescue:/media# chroot /media/md1

Ab hier kann es sein, das der LVM Manager wieder gestartet werden muss! Wenn es LVM’s Partitionen gibt, so müssen diese über den LVM-Manager aktiviert werden. Dies geschieht mit dem ‚lvm‘ Commando. Wenn es keine LVM-Volumns gibt, dann kann dieser Schritt übergangen werden. (Die Tipps habe ich unter http://jim-zimmerman.com/?p=587 gefunden)


rescue:~# lvm vgscan -v
Creating directory "/var/lock/lvm"
Wiping cache of LVM-capable devices
Wiping internal VG cache
Reading all physical volumes. This may take a while...
Finding all volume groups
Finding volume group "vg00"
Found volume group "vg00" using metadata type lvm2
rescue:~# lvm vgchange -a y
3 logical volume(s) in volume group "vg00" now active
rescue:~# lvm lvs --all
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
home vg00 -wi-a- 30.00G
....
rescue:~# mount /home
.....

Sind keine LVM Volumnes vorhanden, können die Partionen ohne zusätzliche Operationen gemountet werden, falls sie für das grub-install Commando notwendig sind.


rescue:/# mount -a
rescue:/media# grub-install /dev/sda

Installation finished. No error reported.
This is the contents of the device map /boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script `grub-install'.

# this device map was generated by anaconda
(hd0) /dev/sda

Der Reboot wird dann über das jeweilige Interface ausgeführt und sollte auf den "normalen" Booteintrag verweisen!

Welche Module sind in Apache installiert

Diese Frage kann leicht mit dem apachectl bzw. apache2ctl Programm beantwortet werden:


# apachectl -t -D DUMP_MODULES
Loaded Modules:
core_module (static)
mpm_prefork_module (static)
http_module (static)
so_module (static)
...
Syntax OK