Thursday, 13. February 2014 Week 7
- Properly shutdown the guest:
guest# poweroff
- Create an LVM volume of the same size on the new machine:
newmachine# lvcreate -L 120G -n myguest myvolgroup
- Copy the disk from the old machine over to the new one:
oldmachine# dd if=/dev/vg_foo/lv_bar | ssh newmachine dd of=/dev/volgroup/myguest
- Wait for the transfer to complete (on a 100Mbit/s connection it took about 3.5 hours to transfer the 120GB).
- Copy /etc/libvirt/qemu/myguest.xml from the old machine over to the new machine and adapt the LVM path for the disk.
- Reload the libvirt configuration:
newmachine# /etc/init.d/libvirt-bin reload
- Start up the guest on the new machine:
newmachine# virsh start myguest
- Boot from a helper system and get a root shell (I used the rescue mode of the Debian installer)
- Check the filesystem of the partition to resize:
e2fsck -f /dev/vg_foo/lv_bar
- Resize the filesystem (make it a bit smaller than the target size, to have a safety margin when resizing the logical volume):
resize2fs /dev/vg_foo/lv_bar 180G
- Reduce size of the logical volume:
lvreduce -L 190G /dev/vg_foo/lv_bar
- Grow the filesystem to the new size of the logical volume:
resize2fs /dev/vg_foo/lv_bar
- For good measure run another filesystem check:
e2fsck -f /dev/vg_foo/lv_bar
Sunday, 19. January 2014 Week 3
When renewing certificates it is a good idea to verify that the newly installed SSL certificate matches the newly installed private key (eg. to make sure no mixup between the new and old files occurred).
This can be done by comparing the modulus of the two files:
openssl x509 -in <certificatefile> -noout -modulus|sha1sum
openssl rsa -in <privatekeyfile> -noout -modulus|sha1sum
Sunday, 12. January 2014 Week 2
Loading the configuration from http://config.server/configfile.xml (provisioning has to be enabled on the phone):
http://<PHONEIP>/admin/resync?http://config.server/configfile.xml
Upgrading the firmware with the image from http://upgrade.server/firmware.bin:
http://<PHONEIP>/upgrade?http://upgrade.server/firmware.bin
Wednesday, 1. January 2014 Week 1
Create the PKA DNS record:
# localpart=andreas domain=jaggi.info url=http://andreas-jaggi.ch/1C6AC951.asc
# LANG=C gpg --fingerprint ${localpart}@${domain}|awk -v local=$localpart -v domain=$domain -v url=$url \
'/fingerprint/{printf("%s._pka.%s. TXT \"v=pka1;fpr=%s;uri=%s\"\n",local,domain,$4$5$6$7$8$9$10$11$12$13,url)}'
andreas._pka.jaggi.info. TXT "v=pka1;fpr=1073501542F38352FC85788207A32EAB1C6AC951;uri=http://andreas-jaggi.ch/1C6AC951.asc"
Test DNS resolution:
# dig +short -t txt andreas._pka.jaggi.info.
"v=pka1\;fpr=1388580990F38352FC85788207A32EAB1C6AC951\;uri=http://andreas-jaggi.ch/1C6AC951.asc"
Test with GPG:
# gpg --auto-key-locate pka -ea -r ${localpart}@${domain}
Detailed explanation of the different DNS publication mechanisms for PGP Keys:
Publishing PGP Keys in DNS
(via)
Sunday, 29. December 2013 Week 52
Instead of the easily brute-forceable one-pass MD5/AES128 password protection format used by SSH per default, you should use the PKCS#8 format to store your private key files. PKCS#8 allows to choose proper key-derivation functions and encryption schemes (for example PBKDF2 and PBES2).
The following commands convert an existing password protected SSH private key file to PKCS#8 format (using PBKDF2, PBES2 and AES-256):
mv ~/.ssh/id_rsa{,.old}
openssl pkcs8 -topk8 -v2 aes256 -in ~/.ssh/id_rsa.old -out ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
rm ~/.ssh/id_rsa.old
(via Martin Kleppmann)
Sunday, 15. December 2013 Week 50
Found this neat trick in Brendan Gregg's Blazing Performance with Flame Graphs talk.
Switching to LANG=C improved performance by 2000x
In a quick test I directly got a performance gain of factor 50.22.
This is quite an achievement for only changing one environment variable.
real:~# du -sh /var/log/querylog
148M /var/log/querylog
real:~# time grep -i e /var/log/querylog > /dev/null
real 0m12.807s
user 0m12.437s
sys 0m0.068s
real:~# time LANG=C grep -i e /var/log/querylog > /dev/null
real 0m0.255s
user 0m0.196s
sys 0m0.052s
I suspect that the performance gain may vary quite a lot depending on the search pattern.
Also, please note that this trick only works when you know that the involved files and search patterns are ASCII only.
(via Standalone Sysadmin)
Sunday, 1. December 2013 Week 48
Another nice discovery from Metropop: WOODKID
Woodkid - Run Boy Run
Wednesday, 21. August 2013 Week 34
Major Look - Too Late
Friday, 5. July 2013 Week 27

(via blog.quux.de)