Don't understand german? Read or subscribe to my english-only feed.

A Ceph war story

April 9th, 2021

It all started with the big bang! We nearly lost 33 of 36 disks on a Proxmox/Ceph Cluster; this is the story of how we recovered them.

At the end of 2020, we eventually had a long outstanding maintenance window for taking care of system upgrades at a customer. During this maintenance window, which involved reboots of server systems, the involved Ceph cluster unexpectedly went into a critical state. What was planned to be a few hours of checklist work in the early evening turned out to be an emergency case; let’s call it a nightmare (not only because it included a big part of the night). Since we have learned a few things from our post mortem and RCA, it’s worth sharing those with others. But first things first, let’s step back and clarify what we had to deal with.

The system and its upgrade

One part of the upgrade included 3 Debian servers (we’re calling them server1, server2 and server3 here), running on Proxmox v5 + Debian/stretch with 12 Ceph OSDs each (65.45TB in total), a so-called Proxmox Hyper-Converged Ceph Cluster.

First, we went for upgrading the Proxmox v5/stretch system to Proxmox v6/buster, before updating Ceph Luminous v12.2.13 to the latest v14.2 release, supported by Proxmox v6/buster. The Proxmox upgrade included updating corosync from v2 to v3. As part of this upgrade, we had to apply some configuration changes, like adjust ring0 + ring1 address settings and add a mon_host configuration to the Ceph configuration.

During the first two servers’ reboots, we noticed configuration glitches. After fixing those, we went for a reboot of the third server as well. Then we noticed that several Ceph OSDs were unexpectedly down. The NTP service wasn’t working as expected after the upgrade. The underlying issue is a race condition of ntp with systemd-timesyncd (see #889290). As a result, we had clock skew problems with Ceph, indicating that the Ceph monitors’ clocks aren’t running in sync (which is essential for proper Ceph operation). We initially assumed that our Ceph OSD failure derived from this clock skew problem, so we took care of it. After yet another round of reboots, to ensure the systems are running all with identical and sane configurations and services, we noticed lots of failing OSDs. This time all but three OSDs (19, 21 and 22) were down:

% sudo ceph osd tree
ID CLASS WEIGHT   TYPE NAME      STATUS REWEIGHT PRI-AFF
-1       65.44138 root default
-2       21.81310     host server1
 0   hdd  1.08989         osd.0    down  1.00000 1.00000
 1   hdd  1.08989         osd.1    down  1.00000 1.00000
 2   hdd  1.63539         osd.2    down  1.00000 1.00000
 3   hdd  1.63539         osd.3    down  1.00000 1.00000
 4   hdd  1.63539         osd.4    down  1.00000 1.00000
 5   hdd  1.63539         osd.5    down  1.00000 1.00000
18   hdd  2.18279         osd.18   down  1.00000 1.00000
20   hdd  2.18179         osd.20   down  1.00000 1.00000
28   hdd  2.18179         osd.28   down  1.00000 1.00000
29   hdd  2.18179         osd.29   down  1.00000 1.00000
30   hdd  2.18179         osd.30   down  1.00000 1.00000
31   hdd  2.18179         osd.31   down  1.00000 1.00000
-4       21.81409     host server2
 6   hdd  1.08989         osd.6    down  1.00000 1.00000
 7   hdd  1.08989         osd.7    down  1.00000 1.00000
 8   hdd  1.63539         osd.8    down  1.00000 1.00000
 9   hdd  1.63539         osd.9    down  1.00000 1.00000
10   hdd  1.63539         osd.10   down  1.00000 1.00000
11   hdd  1.63539         osd.11   down  1.00000 1.00000
19   hdd  2.18179         osd.19     up  1.00000 1.00000
21   hdd  2.18279         osd.21     up  1.00000 1.00000
22   hdd  2.18279         osd.22     up  1.00000 1.00000
32   hdd  2.18179         osd.32   down  1.00000 1.00000
33   hdd  2.18179         osd.33   down  1.00000 1.00000
34   hdd  2.18179         osd.34   down  1.00000 1.00000
-3       21.81419     host server3
12   hdd  1.08989         osd.12   down  1.00000 1.00000
13   hdd  1.08989         osd.13   down  1.00000 1.00000
14   hdd  1.63539         osd.14   down  1.00000 1.00000
15   hdd  1.63539         osd.15   down  1.00000 1.00000
16   hdd  1.63539         osd.16   down  1.00000 1.00000
17   hdd  1.63539         osd.17   down  1.00000 1.00000
23   hdd  2.18190         osd.23   down  1.00000 1.00000
24   hdd  2.18279         osd.24   down  1.00000 1.00000
25   hdd  2.18279         osd.25   down  1.00000 1.00000
35   hdd  2.18179         osd.35   down  1.00000 1.00000
36   hdd  2.18179         osd.36   down  1.00000 1.00000
37   hdd  2.18179         osd.37   down  1.00000 1.00000

Our blood pressure increased slightly! Did we just lose all of our cluster? What happened, and how can we get all the other OSDs back?

We stumbled upon this beauty in our logs:

kernel: [   73.697957] XFS (sdl1): SB stripe unit sanity check failed
kernel: [   73.698002] XFS (sdl1): Metadata corruption detected at xfs_sb_read_verify+0x10e/0x180 [xfs], xfs_sb block 0xffffffffffffffff
kernel: [   73.698799] XFS (sdl1): Unmount and run xfs_repair
kernel: [   73.699199] XFS (sdl1): First 128 bytes of corrupted metadata buffer:
kernel: [   73.699677] 00000000: 58 46 53 42 00 00 10 00 00 00 00 00 00 00 62 00  XFSB..........b.
kernel: [   73.700205] 00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
kernel: [   73.700836] 00000020: 62 44 2b c0 e6 22 40 d7 84 3d e1 cc 65 88 e9 d8  bD+.."@..=..e...
kernel: [   73.701347] 00000030: 00 00 00 00 00 00 40 08 00 00 00 00 00 00 01 00  ......@.........
kernel: [   73.701770] 00000040: 00 00 00 00 00 00 01 01 00 00 00 00 00 00 01 02  ................
ceph-disk[4240]: mount: /var/lib/ceph/tmp/mnt.jw367Y: mount(2) system call failed: Structure needs cleaning.
ceph-disk[4240]: ceph-disk: Mounting filesystem failed: Command '['/bin/mount', '-t', u'xfs', '-o', 'noatime,inode64', '--', '/dev/disk/by-parttypeuuid/4fbd7e29-9d25-41b8-afd0-062c0ceff05d.cdda39ed-5
ceph/tmp/mnt.jw367Y']' returned non-zero exit status 32
kernel: [   73.702162] 00000050: 00 00 00 01 00 00 18 80 00 00 00 04 00 00 00 00  ................
kernel: [   73.702550] 00000060: 00 00 06 48 bd a5 10 00 08 00 00 02 00 00 00 00  ...H............
kernel: [   73.702975] 00000070: 00 00 00 00 00 00 00 00 0c 0c 0b 01 0d 00 00 19  ................
kernel: [   73.703373] XFS (sdl1): SB validate failed with error -117.

The same issue was present for the other failing OSDs. We hoped, that the data itself was still there, and only the mounting of the XFS partitions failed. The Ceph cluster was initially installed in 2017 with Ceph jewel/10.2 with the OSDs on filestore (nowadays being a legacy approach to storing objects in Ceph). However, we migrated the disks to bluestore since then (with ceph-disk and not yet via ceph-volume what’s being used nowadays). Using ceph-disk introduces these 100MB XFS partitions containing basic metadata for the OSD.

Given that we had three working OSDs left, we decided to investigate how to rebuild the failing ones. Some folks on #ceph (thanks T1, ormandj + peetaur!) were kind enough to share how working XFS partitions looked like for them. After creating a backup (via dd), we tried to re-create such an XFS partition on server1. We noticed that even mounting a freshly created XFS partition failed:

synpromika@server1 ~ % sudo mkfs.xfs -f -i size=2048 -m uuid="4568c300-ad83-4288-963e-badcd99bf54f" /dev/sdc1
meta-data=/dev/sdc1              isize=2048   agcount=4, agsize=6272 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=0
data     =                       bsize=4096   blocks=25088, imaxpct=25
         =                       sunit=128    swidth=64 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=1608, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
synpromika@server1 ~ % sudo mount /dev/sdc1 /mnt/ceph-recovery
SB stripe unit sanity check failed
Metadata corruption detected at 0x433840, xfs_sb block 0x0/0x1000
libxfs_writebufr: write verifer failed on xfs_sb bno 0x0/0x1000
cache_node_purge: refcount was 1, not zero (node=0x1d3c400)
SB stripe unit sanity check failed
Metadata corruption detected at 0x433840, xfs_sb block 0x18800/0x1000
libxfs_writebufr: write verifer failed on xfs_sb bno 0x18800/0x1000
SB stripe unit sanity check failed
Metadata corruption detected at 0x433840, xfs_sb block 0x0/0x1000
libxfs_writebufr: write verifer failed on xfs_sb bno 0x0/0x1000
SB stripe unit sanity check failed
Metadata corruption detected at 0x433840, xfs_sb block 0x24c00/0x1000
libxfs_writebufr: write verifer failed on xfs_sb bno 0x24c00/0x1000
SB stripe unit sanity check failed
Metadata corruption detected at 0x433840, xfs_sb block 0xc400/0x1000
libxfs_writebufr: write verifer failed on xfs_sb bno 0xc400/0x1000
releasing dirty buffer (bulk) to free list!releasing dirty buffer (bulk) to free list!releasing dirty buffer (bulk) to free list!releasing dirty buffer (bulk) to free list!found dirty buffer (bulk) on free list!bad magic number
bad magic number
Metadata corruption detected at 0x433840, xfs_sb block 0x0/0x1000
libxfs_writebufr: write verifer failed on xfs_sb bno 0x0/0x1000
releasing dirty buffer (bulk) to free list!mount: /mnt/ceph-recovery: wrong fs type, bad option, bad superblock on /dev/sdc1, missing codepage or helper program, or other error.

Ouch. This very much looked related to the actual issue we’re seeing. So we tried to execute mkfs.xfs with a bunch of different sunit/swidth settings. Using ‘-d sunit=512 -d swidth=512‘ at least worked then, so we decided to force its usage in the creation of our OSD XFS partition. This brought us a working XFS partition. Please note, sunit must not be larger than swidth (more on that later!).

Then we reconstructed how to restore all the metadata for the OSD (activate.monmap, active, block_uuid, bluefs, ceph_fsid, fsid, keyring, kv_backend, magic, mkfs_done, ready, require_osd_release, systemd, type, whoami). To identify the UUID, we can read the data from ‘ceph --format json osd dump‘, like this for all our OSDs (Zsh syntax ftw!):

synpromika@server1 ~ % for f in {0..37} ; printf "osd-$f: %s\n" "$(sudo ceph --format json osd dump | jq -r ".osds[] | select(.osd==$f) | .uuid")"
osd-0: 4568c300-ad83-4288-963e-badcd99bf54f
osd-1: e573a17a-ccde-4719-bdf8-eef66903ca4f
osd-2: 0e1b2626-f248-4e7d-9950-f1a46644754e
osd-3: 1ac6a0a2-20ee-4ed8-9f76-d24e900c800c
[...]

Identifying the corresponding raw device for each OSD UUID is possible via:

synpromika@server1 ~ % UUID="4568c300-ad83-4288-963e-badcd99bf54f"
synpromika@server1 ~ % readlink -f /dev/disk/by-partuuid/"${UUID}"
/dev/sdc1

The OSD’s key ID can be retrieved via:

synpromika@server1 ~ % OSD_ID=0
synpromika@server1 ~ % sudo ceph auth get osd."${OSD_ID}" -f json 2>/dev/null | jq -r '.[] | .key'
AQCKFpZdm0We[...]

Now we also need to identify the underlying block device:

synpromika@server1 ~ % OSD_ID=0
synpromika@server1 ~ % sudo ceph osd metadata osd."${OSD_ID}" -f json | jq -r '.bluestore_bdev_partition_path'    
/dev/sdc2

With all of this, we reconstructed the keyring, fsid, whoami, block + block_uuid files. All the other files inside the XFS metadata partition are identical on each OSD. So after placing and adjusting the corresponding metadata on the XFS partition for Ceph usage, we got a working OSD – hurray! Since we had to fix yet another 32 OSDs, we decided to automate this XFS partitioning and metadata recovery procedure.

We had a network share available on /srv/backup for storing backups of existing partition data. On each server, we tested the procedure with one single OSD before iterating over the list of remaining failing OSDs. We started with a shell script on server1, then adjusted the script for server2 and server3. This is the script, as we executed it on the 3rd server.

Thanks to this, we managed to get the Ceph cluster up and running again. We didn’t want to continue with the Ceph upgrade itself during the night though, as we wanted to know exactly what was going on and why the system behaved like that. Time for RCA!

Root Cause Analysis

So all but three OSDs on server2 failed, and the problem seems to be related to XFS. Therefore, our starting point for the RCA was, to identify what was different on server2, as compared to server1 + server3. My initial assumption was that this was related to some firmware issues with the involved controller (and as it turned out later, I was right!). The disks were attached as JBOD devices to a ServeRAID M5210 controller (with a stripe size of 512). Firmware state:

synpromika@server1 ~ % sudo storcli64 /c0 show all | grep '^Firmware'
Firmware Package Build = 24.16.0-0092
Firmware Version = 4.660.00-8156

synpromika@server2 ~ % sudo storcli64 /c0 show all | grep '^Firmware'
Firmware Package Build = 24.21.0-0112
Firmware Version = 4.680.00-8489

synpromika@server3 ~ % sudo storcli64 /c0 show all | grep '^Firmware'
Firmware Package Build = 24.16.0-0092
Firmware Version = 4.660.00-8156

This looked very promising, as server2 indeed runs with a different firmware version on the controller. But how so? Well, the motherboard of server2 got replaced by a Lenovo/IBM technician in January 2020, as we had a failing memory slot during a memory upgrade. As part of this procedure, the Lenovo/IBM technician installed the latest firmware versions. According to our documentation, some OSDs were rebuilt (due to the filestore->bluestore migration) in March and April 2020. It turned out that precisely those OSDs were the ones that survived the upgrade. So the surviving drives were created with a different firmware version running on the involved controller. All the other OSDs were created with an older controller firmware. But what difference does this make?

Now let’s check firmware changelogs. For the 24.21.0-0097 release we found this:

- Cannot create or mount xfs filesystem using xfsprogs 4.19.x kernel 4.20(SCGCQ02027889)
- xfs_info command run on an XFS file system created on a VD of strip size 1M shows sunit and swidth as 0(SCGCQ02056038)

Our XFS problem certainly was related to the controller’s firmware. We also recalled that our monitoring system reported different sunit settings for the OSDs that were rebuilt in March and April. For example, OSD 21 was recreated and got different sunit settings:

WARN  server2.example.org  Mount options of /var/lib/ceph/osd/ceph-21      WARN - Missing: sunit=1024, Exceeding: sunit=512

We compared the new OSD 21 with an existing one (OSD 25 on server3):

synpromika@server2 ~ % systemctl show var-lib-ceph-osd-ceph\\x2d21.mount | grep sunit
Options=rw,noatime,attr2,inode64,sunit=512,swidth=512,noquota
synpromika@server3 ~ % systemctl show var-lib-ceph-osd-ceph\\x2d25.mount | grep sunit
Options=rw,noatime,attr2,inode64,sunit=1024,swidth=512,noquota

Thanks to our documentation, we could compare execution logs of their creation:

% diff -u ceph-disk-osd-25.log ceph-disk-osd-21.log
-synpromika@server2 ~ % sudo ceph-disk -v prepare --bluestore /dev/sdj --osd-id 25
+synpromika@server3 ~ % sudo ceph-disk -v prepare --bluestore /dev/sdi --osd-id 21
[...]
-command_check_call: Running command: /sbin/mkfs -t xfs -f -i size=2048 -- /dev/sdj1
-meta-data=/dev/sdj1              isize=2048   agcount=4, agsize=6272 blks
[...]
+command_check_call: Running command: /sbin/mkfs -t xfs -f -i size=2048 -- /dev/sdi1
+meta-data=/dev/sdi1              isize=2048   agcount=4, agsize=6336 blks
          =                       sectsz=4096  attr=2, projid32bit=1
          =                       crc=1        finobt=1, sparse=0, rmapbt=0, reflink=0
-data     =                       bsize=4096   blocks=25088, imaxpct=25
-         =                       sunit=128    swidth=64 blks
+data     =                       bsize=4096   blocks=25344, imaxpct=25
+         =                       sunit=64     swidth=64 blks
 naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
 log      =internal log           bsize=4096   blocks=1608, version=2
          =                       sectsz=4096  sunit=1 blks, lazy-count=1
 realtime =none                   extsz=4096   blocks=0, rtextents=0
[...]

So back then, we even tried to track this down but couldn’t make sense of it yet. But now this sounds very much like it is related to the problem we saw with this Ceph/XFS failure. We follow Occam’s razor, assuming the simplest explanation is usually the right one, so let’s check the disk properties and see what differs:

synpromika@server1 ~ % sudo blockdev --getsz --getsize64 --getss --getpbsz --getiomin --getioopt /dev/sdk
4685545472
2398999281664
512
4096
524288
262144

synpromika@server2 ~ % sudo blockdev --getsz --getsize64 --getss --getpbsz --getiomin --getioopt /dev/sdk
4685545472
2398999281664
512
4096
262144
262144

See the difference between server1 and server2 for identical disks? The getiomin option now reports something different for them:

synpromika@server1 ~ % sudo blockdev --getiomin /dev/sdk            
524288
synpromika@server1 ~ % cat /sys/block/sdk/queue/minimum_io_size
524288

synpromika@server2 ~ % sudo blockdev --getiomin /dev/sdk 
262144
synpromika@server2 ~ % cat /sys/block/sdk/queue/minimum_io_size
262144

It doesn’t make sense that the minimum I/O size (iomin, AKA BLKIOMIN) is bigger than the optimal I/O size (ioopt, AKA BLKIOOPT). This leads us to Bug 202127 – cannot mount or create xfs on a 597T device, which matches our findings here. But why did this XFS partition work in the past and fails now with the newer kernel version?

The XFS behaviour change

Now given that we have backups of all the XFS partition, we wanted to track down, a) when this XFS behaviour was introduced, and b) whether, and if so how it would be possible to reuse the XFS partition without having to rebuild it from scratch (e.g. if you would have no working Ceph OSD or backups left).

Let’s look at such a failing XFS partition with the Grml live system:

root@grml ~ # grml-version
grml64-full 2020.06 Release Codename Ausgehfuahangl [2020-06-24]
root@grml ~ # uname -a
Linux grml 5.6.0-2-amd64 #1 SMP Debian 5.6.14-2 (2020-06-09) x86_64 GNU/Linux
root@grml ~ # grml-hostname grml-2020-06
Setting hostname to grml-2020-06: done
root@grml ~ # exec zsh
root@grml-2020-06 ~ # dpkg -l xfsprogs util-linux
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version      Architecture Description
+++-==============-============-============-=========================================
ii  util-linux     2.35.2-4     amd64        miscellaneous system utilities
ii  xfsprogs       5.6.0-1+b2   amd64        Utilities for managing the XFS filesystem

There it’s failing, no matter which mount option we try:

root@grml-2020-06 ~ # mount ./sdd1.dd /mnt
mount: /mnt: mount(2) system call failed: Structure needs cleaning.
root@grml-2020-06 ~ # dmesg | tail -30
[...]
[   64.788640] XFS (loop1): SB stripe unit sanity check failed
[   64.788671] XFS (loop1): Metadata corruption detected at xfs_sb_read_verify+0x102/0x170 [xfs], xfs_sb block 0xffffffffffffffff
[   64.788671] XFS (loop1): Unmount and run xfs_repair
[   64.788672] XFS (loop1): First 128 bytes of corrupted metadata buffer:
[   64.788673] 00000000: 58 46 53 42 00 00 10 00 00 00 00 00 00 00 62 00  XFSB..........b.
[   64.788674] 00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
[   64.788675] 00000020: 32 b6 dc 35 53 b7 44 96 9d 63 30 ab b3 2b 68 36  2..5S.D..c0..+h6
[   64.788675] 00000030: 00 00 00 00 00 00 40 08 00 00 00 00 00 00 01 00  ......@.........
[   64.788675] 00000040: 00 00 00 00 00 00 01 01 00 00 00 00 00 00 01 02  ................
[   64.788676] 00000050: 00 00 00 01 00 00 18 80 00 00 00 04 00 00 00 00  ................
[   64.788677] 00000060: 00 00 06 48 bd a5 10 00 08 00 00 02 00 00 00 00  ...H............
[   64.788677] 00000070: 00 00 00 00 00 00 00 00 0c 0c 0b 01 0d 00 00 19  ................
[   64.788679] XFS (loop1): SB validate failed with error -117.
root@grml-2020-06 ~ # mount -t xfs -o rw,relatime,attr2,inode64,sunit=1024,swidth=512,noquota ./sdd1.dd /mnt/
mount: /mnt: wrong fs type, bad option, bad superblock on /dev/loop1, missing codepage or helper program, or other error.
32 root@grml-2020-06 ~ # dmesg | tail -1
[   66.342976] XFS (loop1): stripe width (512) must be a multiple of the stripe unit (1024)
root@grml-2020-06 ~ # mount -t xfs -o rw,relatime,attr2,inode64,sunit=512,swidth=512,noquota ./sdd1.dd /mnt/
mount: /mnt: mount(2) system call failed: Structure needs cleaning.
32 root@grml-2020-06 ~ # dmesg | tail -14
[   66.342976] XFS (loop1): stripe width (512) must be a multiple of the stripe unit (1024)
[   80.751277] XFS (loop1): SB stripe unit sanity check failed
[   80.751323] XFS (loop1): Metadata corruption detected at xfs_sb_read_verify+0x102/0x170 [xfs], xfs_sb block 0xffffffffffffffff 
[   80.751324] XFS (loop1): Unmount and run xfs_repair
[   80.751325] XFS (loop1): First 128 bytes of corrupted metadata buffer:
[   80.751327] 00000000: 58 46 53 42 00 00 10 00 00 00 00 00 00 00 62 00  XFSB..........b.
[   80.751328] 00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
[   80.751330] 00000020: 32 b6 dc 35 53 b7 44 96 9d 63 30 ab b3 2b 68 36  2..5S.D..c0..+h6
[   80.751331] 00000030: 00 00 00 00 00 00 40 08 00 00 00 00 00 00 01 00  ......@.........
[   80.751331] 00000040: 00 00 00 00 00 00 01 01 00 00 00 00 00 00 01 02  ................
[   80.751332] 00000050: 00 00 00 01 00 00 18 80 00 00 00 04 00 00 00 00  ................
[   80.751333] 00000060: 00 00 06 48 bd a5 10 00 08 00 00 02 00 00 00 00  ...H............
[   80.751334] 00000070: 00 00 00 00 00 00 00 00 0c 0c 0b 01 0d 00 00 19  ................
[   80.751338] XFS (loop1): SB validate failed with error -117.

Also xfs_repair doesn’t help either:

root@grml-2020-06 ~ # xfs_info ./sdd1.dd
meta-data=./sdd1.dd              isize=2048   agcount=4, agsize=6272 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=0, rmapbt=0
         =                       reflink=0
data     =                       bsize=4096   blocks=25088, imaxpct=25
         =                       sunit=128    swidth=64 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=1608, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

root@grml-2020-06 ~ # xfs_repair ./sdd1.dd
Phase 1 - find and verify superblock...
bad primary superblock - bad stripe width in superblock !!!

attempting to find secondary superblock...
..............................................................................................Sorry, could not find valid secondary superblock
Exiting now.

With the “SB stripe unit sanity check failed” message, we could easily track this down to the following commit fa4ca9c:

% git show fa4ca9c5574605d1e48b7e617705230a0640b6da | cat
commit fa4ca9c5574605d1e48b7e617705230a0640b6da
Author: Dave Chinner <dchinner@redhat.com>
Date:   Tue Jun 5 10:06:16 2018 -0700
    
    xfs: catch bad stripe alignment configurations
    
    When stripe alignments are invalid, data alignment algorithms in the
    allocator may not work correctly. Ensure we catch superblocks with
    invalid stripe alignment setups at mount time. These data alignment
    mismatches are now detected at mount time like this:
    
    XFS (loop0): SB stripe unit sanity check failed
    XFS (loop0): Metadata corruption detected at xfs_sb_read_verify+0xab/0x110, xfs_sb block 0xffffffffffffffff
    XFS (loop0): Unmount and run xfs_repair
    XFS (loop0): First 128 bytes of corrupted metadata buffer:
    0000000091c2de02: 58 46 53 42 00 00 10 00 00 00 00 00 00 00 10 00  XFSB............
    0000000023bff869: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
    00000000cdd8c893: 17 32 37 15 ff ca 46 3d 9a 17 d3 33 04 b5 f1 a2  .27...F=...3....
    000000009fd2844f: 00 00 00 00 00 00 00 04 00 00 00 00 00 00 06 d0  ................
    0000000088e9b0bb: 00 00 00 00 00 00 06 d1 00 00 00 00 00 00 06 d2  ................
    00000000ff233a20: 00 00 00 01 00 00 10 00 00 00 00 01 00 00 00 00  ................
    000000009db0ac8b: 00 00 03 60 e1 34 02 00 08 00 00 02 00 00 00 00  ...`.4..........
    00000000f7022460: 00 00 00 00 00 00 00 00 0c 09 0b 01 0c 00 00 19  ................
    XFS (loop0): SB validate failed with error -117.
    
    And the mount fails.
    
    Signed-off-by: Dave Chinner <dchinner@redhat.com>
    Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
    Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
    Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>

diff --git fs/xfs/libxfs/xfs_sb.c fs/xfs/libxfs/xfs_sb.c
index b5dca3c8c84d..c06b6fc92966 100644
--- fs/xfs/libxfs/xfs_sb.c
+++ fs/xfs/libxfs/xfs_sb.c
@@ -278,6 +278,22 @@ xfs_mount_validate_sb(
                return -EFSCORRUPTED;
        }
        
+       if (sbp->sb_unit) {
+               if (!xfs_sb_version_hasdalign(sbp) ||
+                   sbp->sb_unit > sbp->sb_width ||
+                   (sbp->sb_width % sbp->sb_unit) != 0) {
+                       xfs_notice(mp, "SB stripe unit sanity check failed");
+                       return -EFSCORRUPTED;
+               } 
+       } else if (xfs_sb_version_hasdalign(sbp)) { 
+               xfs_notice(mp, "SB stripe alignment sanity check failed");
+               return -EFSCORRUPTED;
+       } else if (sbp->sb_width) {
+               xfs_notice(mp, "SB stripe width sanity check failed");
+               return -EFSCORRUPTED;
+       }
+
+       
        if (xfs_sb_version_hascrc(&mp->m_sb) &&
            sbp->sb_blocksize < XFS_MIN_CRC_BLOCKSIZE) {
                xfs_notice(mp, "v5 SB sanity check failed");

This change is included in kernel versions 4.18-rc1 and newer:

% git describe --contains fa4ca9c5574605d1e48
v4.18-rc1~37^2~14

Now let’s try with an older kernel version (4.9.0), using old Grml 2017.05 release:

root@grml ~ # grml-version
grml64-small 2017.05 Release Codename Freedatensuppe [2017-05-31]
root@grml ~ # uname -a
Linux grml 4.9.0-1-grml-amd64 #1 SMP Debian 4.9.29-1+grml.1 (2017-05-24) x86_64 GNU/Linux
root@grml ~ # lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 9.0 (stretch)
Release:        9.0
Codename:       stretch
root@grml ~ # grml-hostname grml-2017-05
Setting hostname to grml-2017-05: done
root@grml ~ # exec zsh
root@grml-2017-05 ~ #

root@grml-2017-05 ~ # xfs_info ./sdd1.dd
xfs_info: ./sdd1.dd is not a mounted XFS filesystem
1 root@grml-2017-05 ~ # xfs_repair ./sdd1.dd
Phase 1 - find and verify superblock...
bad primary superblock - bad stripe width in superblock !!!

attempting to find secondary superblock...
..............................................................................................Sorry, could not find valid secondary superblock
Exiting now.
1 root@grml-2017-05 ~ # mount ./sdd1.dd /mnt
root@grml-2017-05 ~ # mount -t xfs
/root/sdd1.dd on /mnt type xfs (rw,relatime,attr2,inode64,sunit=1024,swidth=512,noquota)
root@grml-2017-05 ~ # ls /mnt
activate.monmap  active  block  block_uuid  bluefs  ceph_fsid  fsid  keyring  kv_backend  magic  mkfs_done  ready  require_osd_release  systemd  type  whoami
root@grml-2017-05 ~ # xfs_info /mnt
meta-data=/dev/loop1             isize=2048   agcount=4, agsize=6272 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=1 spinodes=0 rmapbt=0
         =                       reflink=0
data     =                       bsize=4096   blocks=25088, imaxpct=25
         =                       sunit=128    swidth=64 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=1608, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

Mounting there indeed works! Now, if we mount the filesystem with new and proper sunit/swidth settings using the older kernel, it should rewrite them on disk:

root@grml-2017-05 ~ # mount -t xfs -o sunit=512,swidth=512 ./sdd1.dd /mnt/
root@grml-2017-05 ~ # umount /mnt/

And indeed, mounting this rewritten filesystem then also works with newer kernels:

root@grml-2020-06 ~ # mount ./sdd1.rewritten /mnt/
root@grml-2020-06 ~ # xfs_info /root/sdd1.rewritten
meta-data=/dev/loop1             isize=2048   agcount=4, agsize=6272 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=0, rmapbt=0
         =                       reflink=0
data     =                       bsize=4096   blocks=25088, imaxpct=25
         =                       sunit=64    swidth=64 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=1608, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
root@grml-2020-06 ~ # mount -t xfs                
/root/sdd1.rewritten on /mnt type xfs (rw,relatime,attr2,inode64,logbufs=8,logbsize=32k,sunit=512,swidth=512,noquota)

FTR: The ‘sunit=512,swidth=512‘ from the xfs mount option is identical to xfs_info’s output ‘sunit=64,swidth=64‘ (because mount.xfs’s sunit value is given in 512-byte block units, see man 5 xfs, and the xfs_info output reported here is in blocks with a block size (bsize) of 4096, so ‘sunit = 512*512 := 64*4096‘).

mkfs uses minimum and optimal sizes for stripe unit and stripe width; you can check this e.g. via (note that server2 with fixed firmware version reports proper values, whereas server3 with broken controller firmware reports non-sense):

synpromika@server2 ~ % for i in /sys/block/sd*/queue/ ; do printf "%s: %s %s\n" "$i" "$(cat "$i"/minimum_io_size)" "$(cat "$i"/optimal_io_size)" ; done
[...]
/sys/block/sdc/queue/: 262144 262144
/sys/block/sdd/queue/: 262144 262144
/sys/block/sde/queue/: 262144 262144
/sys/block/sdf/queue/: 262144 262144
/sys/block/sdg/queue/: 262144 262144
/sys/block/sdh/queue/: 262144 262144
/sys/block/sdi/queue/: 262144 262144
/sys/block/sdj/queue/: 262144 262144
/sys/block/sdk/queue/: 262144 262144
/sys/block/sdl/queue/: 262144 262144
/sys/block/sdm/queue/: 262144 262144
/sys/block/sdn/queue/: 262144 262144
[...]

synpromika@server3 ~ % for i in /sys/block/sd*/queue/ ; do printf "%s: %s %s\n" "$i" "$(cat "$i"/minimum_io_size)" "$(cat "$i"/optimal_io_size)" ; done
[...]
/sys/block/sdc/queue/: 524288 262144
/sys/block/sdd/queue/: 524288 262144
/sys/block/sde/queue/: 524288 262144
/sys/block/sdf/queue/: 524288 262144
/sys/block/sdg/queue/: 524288 262144
/sys/block/sdh/queue/: 524288 262144
/sys/block/sdi/queue/: 524288 262144
/sys/block/sdj/queue/: 524288 262144
/sys/block/sdk/queue/: 524288 262144
/sys/block/sdl/queue/: 524288 262144
/sys/block/sdm/queue/: 524288 262144
/sys/block/sdn/queue/: 524288 262144
[...]

This is the underlying reason why the initially created XFS partitions were created with incorrect sunit/swidth settings. The broken firmware of server1 and server3 was the cause of the incorrect settings – they were ignored by old(er) xfs/kernel versions, but treated as an error by new ones.

Make sure to also read the XFS FAQ regarding “How to calculate the correct sunit,swidth values for optimal performance”. We also stumbled upon two interesting reads in RedHat’s knowledge base: 5075561 + 2150101 (requires an active subscription, though) and #1835947.

Am I affected? How to work around it?

To check whether your XFS mount points are affected by this issue, the following command line should be useful:

awk '$3 == "xfs"{print $2}' /proc/self/mounts | while read mount ; do echo -n "$mount " ; xfs_info $mount | awk '$0 ~ "swidth"{gsub(/.*=/,"",$2); gsub(/.*=/,"",$3); print $2,$3}' | awk '{ if ($1 > $2) print "impacted"; else print "OK"}' ; done

If you run into the above situation, the only known solution to get your original XFS partition working again, is to boot into an older kernel version again (4.17 or older), mount the XFS partition with correct sunit/swidth settings and then boot back into your new system (kernel version wise).

Lessons learned

  • document everything and ensure to have all relevant information available (including actual times of changes, used kernel/package/firmware/… versions. The thorough documentation was our most significant asset in this case, because we had all the data and information we needed during the emergency handling as well as for the post mortem/RCA)
  • if something changes unexpectedly, dig deeper
  • know who to ask, a network of experts pays off
  • including timestamps in your shell makes reconstruction easier (the more people and documentation involved, the harder it gets to wade through it)
  • keep an eye on changelogs/release notes
  • apply regular updates and don’t forget invisible layers (e.g. BIOS, controller/disk firmware, IPMI/OOB (ILO/RAC/IMM/…) firmware)
  • apply regular reboots, to avoid a possible delta becoming bigger (which makes debugging harder)

Thanks: Darshaka Pathirana, Chris Hofstaedtler and Michael Hanscho.

Looking for help with your IT infrastructure? Let us know!

Bookdump 01/2021

April 2nd, 2021

Foto vom Buchregal

Bücher, die ich in 2021 bisher gelesen habe:

  • Sei Kein Mann, von JJ Bola. Auf 149 Seiten schreibt der Autor und Aktivist JJ Bola über Einflüsse aus nichtwestlichen Traditionen, aus Popkultur und der LGBTQ+-Community und zeigt, wie vielfältig Männlichkeit sein kann. Kluge Worte.
  • Die Katze des Dalai Lama, von David Michie. David Michie hat eine mehrteilige Bücherreihe “die Katze des Dalai Lama” geschrieben, und ist ist der erste Teil dieser Reihe. Auf 268 Seiten buddhistische Gedanken aus dem Blickwinkel einer Katze vermittelt. Das geschieht kurzweilig und ohne belehren zu wollen. Sprachlich sehr anspruchslos und das amerikanische scheint durch, aber ein schöner Einstieg in das Thema Buddhismus.
  • Die Bienen und das Unsichtbare, von Clemens J. Setz. Ich bin als Setz-Fan mit den höchsten Erwartungen an die 407 Seiten gegangen, und wurde nicht enttäuscht. Ein fantastisches Buch, vor allem für all jene, die sich für (konstruierte) Sprachen begeistern können. Klare Leseempfehlung.
  • QualityLand (helle Edition), von Marc-Uwe Kling. Unterhaltsam geschriebene 381 Seiten, die ein ernstes Thema beleuchten. Die Idee mit den Nachnamen ist gut, es gibt Ausflüge zu den drei Gesetzen der Robotik von Asimov und Gedanken zu Freiheit, aber sprachlich hat mich das Buch leider nicht angesprochen, und vieles war mir zu offensichtlich und konstruiert.
  • Tyll, von Daniel Kehlmann. 474 fantastische Seiten über Tyll Ulenspiegel im 17. Jahrhundert. Nach “Die Vermessung der Welt” hatte ich hohe Erwartungen an Kehlmann, und dieser historischer Roman ist auch wieder ganz nach meinem Geschmack – klare Leseempfehlung.
  • Till Eulenspiegel, von Clemens J. Setz. Dieses Buch wollte ich erst nach dem Buch von Kehlmann (siehe oben) lesen. Diese 149 Seiten verarbeiten das Thema von Till Eulenspiegel in einem völlig anderen Stil, aber sehr unterhaltsam und ebenfalls sehr lesenswert.
  • Einspruch!, von Ingrid Brodnig. Besonders im familiären Umfeld neigen einige Debatten doch besonders hitzig zu werden, und Brodnig gibt dafür wichtige Strategien und Tipps mit auf den Weg. Die 144 Seiten sind schnell gelesen, nur schade, dass es keinen Index bzw. Überblick über die angesprochenen Effekte und Phänomene gibt.
  • Ich bleibe hier, von Marco Balzano. Auf 286 Seiten geht es um das Leben in Südtirol von 1925-1950, einen Stausee der Felder und Häuser überfluten wird, Faschismus und Widerstand. Kurzweilig.
  • QualityLand 2.0, von Marc-Uwe Kling. Diese 428 Seiten hätte ich ohne Lesegruppe nicht gelesen. Ein paar schöne Gedankenspiele sind zugegebenermaßen dabei, aber insgesamt war es auch in diesem Teil zu oft vorhersehbar und zu plakativ. Leider nicht mein Geschmack.
  • Das Buch vom Süden, von André Heller. Julian Passauer wächst im Dachgeschoss von Schloss Schönbrunn nach dem 2. Weltkrieg auf, und als LeserIn begleitet man ihn bei seiner Sehnsucht nach dem Süden. Der Duktus von Heller ist unverkennbar, und es finden sich einige sehr schöne und sinnliche Stellen. Aber mir fehlten Tiefgang und ausgebildete Charaktere, so haben mich diese 336 Seiten leider nicht begeistern können.
  • Ich, der Roboter, von Isaac Asimov. Dieser 1950 veröffentlichte Roman beinhaltet auf 303 Seiten neun miteinander versponnene Kurzgeschichten. Ich wollte die Grundregeln der Robotik (AKA Robotergesetze) einmal im “Original” lesen, und es ist zumindest eines der wenigen SF-Werke, die ich bis zum Schluss durchgehalten habe. Obwohl die Hauptfigur eine Frau spielt und das Buch für seine Zeit vermutlich sogar progressiv ist, sind die Geschlechterrollen streckenweise trotzdem nur schwer zu ertragen. Sprachlich gerade noch OK, einige Gedankenspiele und Fragestellungen waren aber doch sehr nett.
  • Because Internet, von Gretchen McCulloch. Ein Buch mit 404 Seiten zum Thema Internet muss eigentlich per Definition gut sein – und das Buch liefert. Die besonders gute Bewertung von Russ Allbery in seiner Rezension hat mich dazu veranlasst, das Buch zu lesen – und ich bereue es kein bisschen. Obwohl ich gemäß der Klassifizierung von McCulloch als “Old Internet Person” gelte, war mir so manches geschichtliches Wissen neu. Der Untertitel “Understanding the New Rules of Language” deutet es bereits an, dass es auch viel um Regeln in der Sprache geht, aber es geht auch um Memes, Emojis und den Wandel von Sprache. Besonders für Kritiker von Emojis eigentlich eine Pflichtlektüre, aber auch für Leute die viel “remote” kommunizieren und Sprachverliebte eine ganz klare Leseempfehlung.
  • 1984, George Orwell. Ich habe vor vielen Jahren 1984 in einer deutschen Übersetzung angefangen zu lesen, die ich aber – aus sprachlichen Gründen – nicht durchgehalten habe. Das Buch ist heuer in mehreren neuen Übersetzungen erschienen, siehe u.a. Wolff bei DTV, Schönfeld bei Insel/Suhrkamp, Fischer bei Nikol, Heibert bei S. Fischer, Haefs bei Manesse und Strümpel bei Anaconda. Ich habe ich mich mit der Übersetzung von Eike Schönfeld erneut an diesen Klassiker gewagt, und diesmal musste ich es nicht bereuen. Eine wunderbare und zeitgemäße Übersetzung, die auf 382 Seiten ein dem Panoptismus entsprechendes Stimmungsbild liefert.
  • Mädchen, Frau etc., von Bernardine Evaristo. Was für eine Wucht von einem Buch. Sprachlich, stilistisch und inhaltlich absolut überzeugend. Ich bin stark versucht, das Original in Englisch zu lesen, obwohl es an der deutschen Übersetzung (507 Seiten) absolut nichts auszusetzen gibt. Unbedingte Leseempfehlung.
  • Komplett Gänsehaut, Sophie Passmann. Auf 173 Seiten reflektiert Passmann uber den Mittelstand, das Bürgertum und Dinge die man nicht besitzt (“Es geht immer um das, was fehlt.“). Es dürfte wohl ein Risotto- und Pizza-Trauma geben, und das ein oder andere mal kann man sich in diesem Generationen-Essay doch ertappt fühlen.
  • Mein Algorithmus und Ich, Daniel Kehlmann. Schlanke 63 Seiten, auf denen Daniel Kehlmann über seinen Besuch im Silicon Valley und seinem Spiel mit der Künstlichen Intelligenz CTRL reflektiert. Schöne Kaffee-Lektüre.
  • Dicht, Stefanie Sargnagel. Ein Coming-of-Age-Roman auf 248 Seiten, in dem es um viel Schabernack geht. Bisher hat mir noch kein Buch so viel Lust auf Dosenbier gemacht, vom Feinsten.
  • Bot – Gespräch ohne Autor, Clemens Setz. Die 160 Seiten sind ungeordnete Texte aus dem elektronischen Tagebuch von Setz. Ein interessantes Format, mit dem ich Anfangs so meine Schwierigkeiten hatte, das aber zunehmend sympathischer wurde.
  • Zwischen Ruhm und Ehre liegt die Nacht, Andrea Petković. Auf 267 Seiten erfährt man in mehreren Kurzgeschichten einiges über die Lebensgeschichte der Tennis-Profispielerin und Literatur-Freundin Petković. Eine schöne Reflexion einer Spitzensportlerin auf ihre Karriere, die Schattenseiten des Profi und Promi-Lebens im Tenniszirkus. Andrea Petković betreibt übrigens unter “racquetbookclub” auf Instagram einen Lesezirkel.
  • Für mich soll es Neurosen regnen, Peter Wittkamp. Wittkamp versucht auf 316 Seiten die Abgrenzung, wann aus einer Macke ein Zwang wird, erzählt von seinem Ausflug in die Psychiatrie und allerlei rund um seine Zwänge. Der Schreibstil versucht sich locker flockig und amüsant zu geben, die inflationäre Verwendung von “ab und an” könnte aber auf einen weiteren Zwang des Autors hindeuten.
  • Die Vogelstraußtrompete, Clemens J. Setz. 84 Seiten kurzweilige Prosa.
  • Faserland, Christian Kracht. Diese 165 Seiten wollte ich als Vorbereitung für das 2021 erschienene Eurotrash von Kracht lesen. Durchaus faszinierend.

How to properly use 3rd party Debian repository signing keys with apt

February 16th, 2021

(Blogging this, since this is a recurring anti-pattern I noticed at several customers and often comes up during deployments of 3rd party repositories.)

Update on 2021-02-19: clarified, that Signed-By requires apt >= 1.1, thanks Vincent Bernat

Many upstream projects provide Debian repository instructions like this:

curl -fsSL https://example.com/stable/debian.gpg | sudo apt-key add -

Do not follow this, for different reasons, including:

  1. You do not see what you get before adding the GPG key to your global apt trust store
  2. You can’t easily script this via your preferred configuration management (the apt-key manpage clearly discourages programmatic usage)
  3. The signing key is considered valid for all your enabled Debian repositories (instead of only a specific one)
  4. You need GnuPG (either gnupg2 or gnupg1) on your system for usage with apt-key

There’s a much better approach to this: download the GPG key, make sure it’s in the appropriate format, then use it via `deb [signed-by=/usr/share/keyrings/…]` in your apt’s sources list configuration. Note and FTR: the Signed-By feature is available starting with apt 1.1 (so apt in Debian jessie/8 and older does not support it).

TL;DR:

  • Install GPG keys in ascii-armored / old public key block format as /usr/share/keyrings/example.asc and use `deb [signed-by=/usr/share/keyrings/example.asc] https://example.com/…` in apt’s sources.list configuration
  • Install GPG keys in binary OpenPGP format as /usr/share/keyrings/example.gpg and use `deb [signed-by=/usr/share/keyrings/example.gpg] https://example.com/…` in apt’s sources.list configuration

As an example, let’s demonstrate this with the Tailscale Debian repository for buster.
Downloading the GPG file will give you an ascii-armored GPG file:

% curl -fsSL -o buster.gpg https://pkgs.tailscale.com/stable/debian/buster.gpg
% gpg --keyid-format long buster.gpg 
gpg: WARNING: no command supplied.  Trying to guess what you mean ...
pub   rsa4096/458CA832957F5868 2020-02-25 [SC]
      2596A99EAAB33821893C0A79458CA832957F5868
uid                           Tailscale Inc. (Package repository signing key) <info@tailscale.com>
sub   rsa4096/B1547A3DDAAF03C6 2020-02-25 [E]
% file buster.gpg
buster.gpg: PGP public key block Public-Key (old)

If you have apt version >= 1.4 available (Debian >=stretch/9 and Ubuntu >=bionic/18.04), you can use this file directly as follows:

% sudo mv buster.gpg /usr/share/keyrings/tailscale.asc
% cat /etc/apt/sources.list.d/tailscale.list
deb [signed-by=/usr/share/keyrings/tailscale.asc] https://pkgs.tailscale.com/stable/debian buster main
% sudo apt update
[...]

And you’re done!

Iff your apt version really is older than 1.4, you need to convert the ascii-armored GPG file into a GPG key public ring file (AKA binary OpenPGP format), either by just dearmor-ing it (if you don’t care about checking ID + fingerprint):

% gpg --dearmor < buster.gpg > tailscale.gpg

or if you prefer to go via GPG, you can also use a temporary GPG home directory (if you don’t care about going through your personal GPG setup):

% mkdir --mode=700 /tmp/gpg-tmpdir
% gpg --homedir /tmp/gpg-tmpdir --import ./buster.gpg
gpg: keybox '/tmp/gpg-tmpdir/pubring.kbx' created
gpg: /tmp/gpg-tmpdir/trustdb.gpg: trustdb created
gpg: key 458CA832957F5868: public key "Tailscale Inc. (Package repository signing key) <info@tailscale.com>" imported
gpg: Total number processed: 1
gpg:               imported: 1
% gpg --homedir /tmp/gpg-tmpdir --output tailscale.gpg  --export-options=export-minimal --export 0x458CA832957F5868
% rm -rf /tmp/gpg-tmpdir

The resulting GPG key public ring file should look like that:

% file tailscale.gpg 
tailscale.gpg: PGP/GPG key public ring (v4) created Tue Feb 25 04:51:20 2020 RSA (Encrypt or Sign) 4096 bits MPI=0xc00399b10bc12858...
% gpg tailscale.gpg 
gpg: WARNING: no command supplied.  Trying to guess what you mean ...
pub   rsa4096/458CA832957F5868 2020-02-25 [SC]
      2596A99EAAB33821893C0A79458CA832957F5868
uid                           Tailscale Inc. (Package repository signing key) <info@tailscale.com>
sub   rsa4096/B1547A3DDAAF03C6 2020-02-25 [E]

Then you can use this GPG file on your system as follows:

% sudo mv tailscale.gpg /usr/share/keyrings/tailscale.gpg
% cat /etc/apt/sources.list.d/tailscale.list
deb [signed-by=/usr/share/keyrings/tailscale.gpg] https://pkgs.tailscale.com/stable/debian buster main
% sudo apt update
[...]

Such a setup ensures:

  1. You can verify the GPG key file (ID + fingerprint)
  2. You can easily ship files via /usr/share/keyrings/ and refer to it in your deployment scripts, configuration management,… (and can also easily update or get rid of them again!)
  3. The GPG key is valid only for the repositories with the corresponding `[signed-by=/usr/share/keyrings/…]` entry
  4. You don’t need to install GnuPG (neither gnupg2 nor gnupg1) on the system which is using the 3rd party Debian repository

Thanks: Guillem Jover for reviewing an early draft of this blog article.

Revisiting 2020

January 16th, 2021

*

Mainly to recall what happened last year and to give thoughts and plan for the upcoming year(s) I’m once again revisiting my previous year (previous editions: 2019, 2018, 2017, 2016, 2015, 2014, 2013 + 2012).

Due to the Coronavirus disease (COVID-19) pandemic, 2020 was special™ for several reasons, but overall I consider myself and my family privileged and am very grateful for that.

In terms of IT events, I planned to attend Grazer Linuxdays and DebConf in Haifa/Israel. Sadly Grazer Linuxdays didn’t take place at all, and DebConf took place online instead (which I didn’t really participate in for several reasons). I took part in the well organized DENOG12 + ATNOG 2020/1 online meetings. I still organize our monthly Security Treff Graz (STG) meetups, and for half of the year, those meetings took place online (which worked OK-ish overall IMO).

Only at the beginning of 2020, I managed to play Badminton (still playing in the highest available training class (in german: “Kader”) at the University of Graz / Universitäts-Sportinstitut, USI). For the rest of the year – except for ~2 weeks in October or so – the sessions couldn’t occur.

Plenty of concerts I planned to attend were cancelled for obvious reasons, including the ones I would have played myself. But I managed to attend Jazz Redoute 2020 – Dom im Berg, Martin Grubinger in Musikverein Graz and Emiliano Sampaio’s Mega Mereneu Project at WIST Moserhofgasse (all before the corona situation kicked in). The concert from Tonč Feinig & RTV Slovenia Big Band occurred under strict regulations in Summer, as well as Elektra Opera by Richard Strauß in a very special setting (only one piano player instead of the orchestra because of a Corona case in the orchestra) in Autumn. At the beginning of 2020, I also visited Literaturshow “Roboter mit Senf” at Literaturhaus Graz.

The lack of concerts and rehearsals also severely impacted my playing the drums (including at HTU BigBand Graz), which pretty much didn’t take place. :(

Grml-wise we managed to publish release 2020.06, codename Ausgehfuahangl. Regarding jenkins-debian-glue I tried to clarify its state and received some really lovely feedback.

I consider 2020 as the year where I dropped regular usage of Jabber (so far my accounts still exist, but I’m no longer regularly online and am not sure for how much longer I’ll keep my accounts alive as such).

Business-wise it was our seventh year of business with SynPro Solutions GmbH. No big news but steady and ongoing work with my other business duties Grml Solutions and Grml-Forensic.

As usual, I shared childcare with my wife. Due to the corona situation, my wife got a new working schedule, which shuffled around our schedule a bit on Mondays + Tuesdays. Still, we managed to handle the homeschooling/distance learning quite well. Currently we’re sitting in the third lockdown, and yet another round of homeschooling/distance learning is going on those days (let’s see how long…). I counted 112 actual school days in all of 2020 for our older daughter with only 68 school days since our first lockdown on 16th of March, whereas we had 213(!) press conferences by our Austrian government in 2020. (Further rants about the situation in Austria snipped.)

Book reading-wise I managed to complete 60 books (see “Mein Lesejahr 2020“). Once again, I noticed that what felt like good days for me always included reading books, so I’ll try to keep my reading pace for 2021. I’ll also continue with my hobbies “Buying Books” and “Reading Books”, to get worse at Tsundoku.

Hoping for vaccination and a more normal 2021, Schwuppdiwupp!

Mein Lesejahr 2020

January 6th, 2021

In 2020 habe ich in meinen Bookdumps versucht, kurze Reviews zu den von mir gelesenen Büchern zu geben (wobei sich das auf Belletristik- und Sachbücher beschränkt, also keine Fachbücher bzw. IT-Bücher). Dazu erschienen 2020 folgende Bookdumps:

Die Reviews helfen mir beim Erinnern an die gelesenen Bücher sowie beim Austausch mit Lesekollegen. Das Schreiben war streckenweise doch zeitaufwendiger als erwartet, speziell wenn man sich nicht sofort Notizen oder Eindrücke beim Lesen der Bücher macht oder sich gerade in einem Lese-Marathon befindet und die Bücherreviews nicht direkt im Anschluss ans Fertiglesen schreibt. Streckenweise ist es auch anstrengend, sich zu jedem Buch eine Meinung machen zu “müssen”, bzw. mit diesem Wissen im Hinterkopf zu lesen. Ob und wie ich das Format also für 2021 beibehalten werde, lasse ich für mich erstmal noch offen.

In Summe habe ich in 2020 60 Bücher mit einem Umfang von 16.065 Seiten gelesen, was einem Durchschnitt von knapp 44 Seiten pro Tag entspricht. Ich habe versucht, eine gute Balance zwischen Autorinnen und Autoren finde, was mir mit 29 gelesenen Büchern von Männern, 28 Büchern von Frauen und 3 Büchern von Mann + Frau diesmal gut gelungen ist.

Die 60 Buchtitel auf einen Blick (mehr Details gibt es in den oben erwähnten Bookdumps):

  • Factfulness, von Hans Rosling mit Anna Rosling Rönnlund und Ola Rosling
  • Das flüssige Land, von Raphaela Edelbauer
  • Wolfssteig, von David Bröderbauer
  • Der Neubauer, von Cordula Simon
  • Der Hammer, von Dirk Stermann
  • Untenrum frei, von Margarete Stokowski
  • Heute hat die Welt Geburtstag, von Flake
  • Sex Story – eine Kulturgeschichte in Bildern, von Philippe Brenot und Laetitia Coryn
  • Tot geschwiegen – Warum es der Staat Mördern so leicht macht, von Thomas Treschner
  • Als ich jung war, von Norbert Gstrein
  • Darm mit Charme: Alles über ein unterschätztes Organ, von Giulia Enders
  • Herzklappen von Johnson & Johnson, von Valerie Fritsch
  • Miroloi, von Karen Köhler
  • Ein Zimmer für sich allein, von Virginia Woolf
  • Zum Weinen schön, zum Lachen bitter, von André Heller
  • Die steinerne Matratze, von Margaret Atwood
  • Wann wird es endlich so, wie es nie war, von Joachim Meyerhoff
  • Wer braucht Superhelden, von Lisz Hirn
  • Was sollen die Leute denken, von Jess Jochimsen
  • Ich fühl’s nicht, von Liv Strömquist
  • Über Nationalismus, von Georg Orwell
  • Das Tagebuch der Anne Frank, von Anne Frank
  • Binge Living – Callcenter-Monologe, von Stefanie Sargnagel
  • Ich, von Elton John
  • Die Bagage, von Monika Helfer
  • Der Mythos des Sisyphos, von Albert Camus
  • Der Freund, von Sigrid Nunez
  • Ich bin Legende, von Richard Matheson
  • Gewaltfreie Kommunikation mit Kindern, von Luna Becker
  • 1918 – die Welt im Fieber, von Laura Spinney
  • Mitternacht in Tschernobyl, von Adam Higginbotham
  • Inside Türkis, von Klaus Knittelfelder
  • Zum Werk von Roger Willemsen – Der leidenschaftliche Zeitgenosse, von Insa Wilke (Herausgeberin)
  • Die Straße, von Ann Petry
  • Ich an meiner Seite, von Birgit Birnbacher
  • Abenteuer der deutschen Grammatik, von Yoko Tawada
  • Lernen S’ Geschichte, Herr Reporter!, von Ulrich Brunner
  • Handbuch für Zeitreisende, von Kathrin Passig + Aleks Scholz
  • Geistergeschichte, von Laura Freudenthaler
  • Das Gewicht der Welt: Ein Journal (November 1975 – März 1977), von Peter Handke
  • Zwei Herren am Strand, von Michael Köhlmeier
  • Der letzte Satz, von Robert Seethaler
  • Die Parade, von Dave Eggers
  • Klartext Impfen, von Thomas Schmitz + Sven Siebert
  • Die Möglichkeit einer Insel, von Michel Houellebecq
  • The great Nowotzki, von Thomas Pletzinger
  • Das wundersame in der Unwirtlichkeit, von Marlene Streeruwitz
  • Ach, diese Lücke, diese entsetzliche Lücke, von Joachim Meyerhoff
  • Die Intelligenz der Maschinen, von Martin Ford
  • Künstliche Intelligenz, von Manuela Lenzen
  • Die Zweisamkeit der Einzelgänger, von Joachim Meyerhoff
  • Lebenswerk, von Alice Schwarzer
  • Der Ohrenzeuge – Fünfzig Charaktere, von Elias Canetti
  • Darf ich dir das Sie anbieten?, von Katharina Hacker
  • Invent & Wander, von Jeffrey P. Bezos
  • Frausein, von Mely Kiyak
  • Alles kein Zufall, von Elke Heidenreich
  • Die Richterin, von Lydia Mischkulnig
  • Unrast, von Olga Tokarczuk
  • Nichts als die Wahrheit, von Michael Köhlmeier

Was waren meine Lieblingsbücher 2020? Es waren einige sehr gute und schöne Bücher dabei, was mir aber besonders im Gedächtnis geblieben ist:

Und die mehrteilige Buchserie von Joachim Meyerhoff kann ich empfehlen, wenn man sich einfach gut unterhalten möchte (siehe Bookdump 1/2019, Bookdump 2/2020 und Bookdump 5/2020).

Mein Bücherregal für 2021 ist bereits gut gefüllt, wer aber noch Empfehlungen hat, ich freue mich sehr über Kommentare hier im Blog oder via Mail (bookdump at michael-prokop.at)!

Bookdump 05/2020

January 5th, 2021

Foto vom Buchregal

Bücher, die ich in 2020 seit meinem letzten Bookdump gelesen habe:

  • Die Möglichkeit einer Insel, von Michel Houellebecq. Dieses Buch spielt in 443 Seiten mit zwei unterschiedlichen Zeitebenen. Einmal ca. im Jahr ~2000 in der ersten Generation (Daniel1), und einmal rund um das Jahr 4000 in der 24. und 25. Generation des Protagonisten Daniel (Daniel24 bzw. Daniel25). Ein Science-Fiction-Roman rund um Neo-Menschen, Elohimiten, Klonen von Menschen, Glück, Sex, Einsamkeit, Klimakatastrophe und den Umgang mit alten Menschen. Für mich das bisher schwächste Buch das ich von Houellebecq gelesen habe. Mir war es zu schwätzerisch, plattitüdisch-seicht und resignatorisch, ich musste mich leider immer wieder zwingen, es bis zum Ende durchzuhalten.
  • The Great Nowitzki, von Thomas Pletzinger. Pletzinger hat 7 Jahre an der Seite des Basketball-Stars Dirk Nowitzki (Stichwort 41.21.1) verbracht, und das Resultat bekommt man auf 502 Seiten serviert. Für diesen Umfang erfährt man vergleichsweise wenig über Dirk Nowitzki, umso spannender fand ich aber die Ausführungen zu Holger Geschwindner, dem Trainer und Mentor von Nowitzki, mit interessanten Trainingsmethoden und einer ganz eigenen Philosophie. Was auch gut herausgearbeitet wird ist der Ehrgeiz, Wille und Durchhaltevermögen, mit dem Nowitzki seine Karriere bestritten hat, und trotzdem ein bodenständiger Mensch geblieben zu sein scheint. Der Schreibstil hat stellenweise etwas romanartiges, und besonders ab der Hälfte musste ich mich ein wenig durch den (Nicht-)Inhalt plagen. Im letzten Viertel – um in der Sprache des Basketball zu bleiben – nimmt das Spiel wieder an Spannung und Fahrt auf, die Rechtschreib- bzw. Grammatikfehler nehmen gleichzeitig auch zu. Das Buch liest sich aber flüssig und schnell, und man erfährt nebenbei ein wenig zum Kosmos NBA und Basketball.
  • Das wundersame in der Unwirtlichkeit, von Marlene Streeruwitz. Auf 123 Seiten kann man die Vorlesungen, die im Rahmen der Paderborner Gastdozentur für Schriftstellerinnern und Schriftsteller 2017 von Streeruwitz gehalten wurden, nachlesen. In fünf Vorlesungen macht sich Streeruwitz Gedanken zu feministischen und kapitalistischen Themen. Gedanken zur Organspende, Malina von Ingeborg Bachmann, ein Auszug aus ihrem Sci-Fi-Roman „Norma Desmond“, Walt-Disneys “Frozen” und im letzten Teil schließlich wenn Aliens Bücher schreiben. Ein Plädoyer zum Aufruhr.
  • Ach, diese Lücke, diese entsetzliche Lücke, von Joachim Meyerhoff. Der dritte Roman der Buchreihe von Meyerhoff (siehe Review vom ersten Teil sowie Review vom zweiten Teil) erzählt auf 348 Seiten von Meyerhoffs Besuch der Schauspielschule und dem Leben in der Villa seiner Großeltern. Auch dieses Buch macht wieder verlässlich gute Laune und die Seiten flutschen nur so dahin, wunderbar.
  • Die Intelligenz der Maschinen, von Martin Ford. Für dieses Buch hat Martin Ford 23 der renommiertesten ForscherInnen rund um das Thema KI (Künstliche Intelligenz) interviewt.
    Die Fragestellungen und Ausführungen auf 526 Seiten geben einen Einblick in die Geschichte der KI und laden zum Nachdenken und Weiter-recherchieren ein. Es gibt in fast allen Interviews interessante Fakten oder Anregungen, besonders lesenswert fand ich aber die Interviews mit Judea Pearl und Josh Tenenbaum. Lesenswerte Lektüre für all jene, die sich für das Thema KI interessieren. (Das Buch gibt es übrigens im englischsprachigen Original unter dem Titel “Architects of Intelligence: The truth about AI from the people building it” bei Packt Publishing, ein Verlag den ich aber so gut es geht zu umgehen versuche und daher zur deutschsprachigen Ausgabe beim MITP-Verlag gegriffen habe.)
  • Künstliche Intelligenz, von Manuela Lenzen. Auf 252 Seiten gibt es einen gut zu lesenden Überblick zum Thema KI. Dieses Buch – das ich mir von der Stadtbibliothek Graz ausgeborgt habe – erwähnt übrigens auch die SmartCity Graz. Ein schönes Zitat von Frederick Jelinek (Leiter der Abteilung für Sprachverarbeitung und Übersetzung bei IBM) zum Thema Übersetzungsprogramme:

    Jedes Mal, wenn ich einen Linguisten feuere, verbessert sich die Spracherkennung.

    Es bleiben auch Phänome wie Uncanny Valley und die 23 Asilomar-Prinzipien nicht unerwähnt. Ein – besonders auch für Nicht-Techniker – sehr zugängliches Buch, das sich als Einstiegspunkt für weitergehende Recherchen eignet.

  • Die Zweisamkeit der Einzelgänger, von Joachim Meyerhoff. Der vierte Roman der Buchreihe von Meyerhoff, diesmal gibt es 416 unterhaltsame Seiten rund um seinen Besuch der Schauspielschule. Meyerhoff liefert erstklassige Unterhaltung wie ein Schweizer Uhrwerk.
  • Lebenswerk, von Alice Schwarzer. Ich wollte unter anderem verstehen, wo und wie der Konflikt zwischen Margarete Stokowski und Alice Schwarzer einzuordnen ist, und auf diesen 461 Seiten bin ich dem eventuell ein Stück näher gekommen. Besonders die ersten ~300 Seiten fand ich sehr anregend zu lesen, unter anderem war mir nicht bewusst, dass:

    Auch nach 1995 […] Abtreibung in Deutschland eine Straftat und die Schwangere zum Austragen verpflichtet ist.

    Es gibt auch viele Hintergrundinformationen zu bekannten (TV-)Interviews mit Schwarzer. Die letzten ~150 Seiten sind Schlüsseltexte Schwarzers von 1971 bis 2018, die veranschaulichen, wie vorausdenkend und pro­gres­siv Schwarzer dabei in vielen Themenbereichen war und ist. Erhellende Lektüre.

  • Der Ohrenzeuge – Fünfzig Charaktere, von Elias Canetti. Ein gutes ZÖK-Buch (Zähne putzen, Öffis, Klo), in dem Canetti feine Charaktere wie z.B. Tränenwärmer, Geruchschmale, Schadenfrische, Bitterwicklerin, Papiersäufer und den Nimmermuß auf 96 Seiten zum Leben erweckt.
  • Darf ich dir das Sie anbieten?, von Katharina Hacker. Ebenfalls ein feines ZÖK-Buch (Zähne putzen, Öffis, Klo), gibt es auf 112 Seiten anregende Minutenessays. Für Sprachverliebte, die fehlende Seitenzahlen als Feature und nicht als Bug betrachten.
  • Invent & Wander, von Jeffrey P. Bezos. Ein 357 Seiten dickes Buch das es bereits 2020 zu kaufen gab, aber in der deutschen Fassung “1. Auflage 2021” im Copyright-Hinweis anführt. Die 35 Seiten umfassende Einleitung von Walter Isaacson beinhaltet eine gute Zusammenfassung des darauf folgenden Inhalts. Im ersten Teil auf ~250 Seiten sind dabei die Briefe Bezos an die Aktionäre von Amazon zu finden, die wiederholt gleiche Themen aufgreifen und sich daher mit der Zeit immer stärker selbst wiederholen und re­fe­ren­zie­ren. Im Anschluss folgt auf gut 100 Seiten eine Auswahl aus Interviews mit und Reden von Bezos. Man erfährt mehr zur Sichtweise von Bezos auf Themen wie Innovation (Stichwort “It is always day one”), Mitarbeiterauswahl und wie weit Kundenorientiertheit gehen kann. Bisher unbekannt waren mir u.a. das japanische Wort Muda und Amazons “Pay to Quit” (Mitarbeitern wird Geld geboten damit sie kündigen). Entlarvend und passend zum Amazon-Kosmos sind dann aber wiederum Nebensätze wie:

    Wir haben […] die Pausenräume mit Stühlen ausgestattet.

  • Frausein, von Mely Kiyak. Eine fantastische Gesellschaftskritik auf schlanken 127 Seiten, die Themen wie Generationskonflikte, Gastarbeiterfamilien und Vater-Tochter-Beziehungen sehr gelungen in Worte packt. Lesenswert.
  • Alles kein Zufall, von Elke Heidenreich. Diese 273 Seiten aus Fischers Taschenbibliothek ergeben mit maximal 3-Seiten schlanken Geschichten das perfekte ZÖK-Buch (Zähne putzen, Öffis, Klo), das ich immer wieder gerne aus meiner Jackentasche genommen habe.
  • Die Richterin, von Lydia Mischkulnig. Der 289 Seiten umfassende Roman rund um Gabrielle erzählt von ihrem Alltag als Richterin, die über das Leben von AsylwerberInnen entscheidet. Ein schwieriges Thema sehr sensibel und klug verpackt, mit interessanten Fragestellungen rund um Entscheidungen die (über)lebensrelevant sein können. Sprachlich habe ich mich mit dem Stil – der wohl absichtlich an das Verwaltungsrecht bzw. die Judikatur angelehnt ist um authentisch zu wirken – ein wenig schwer getan, und für das Buch schlussendlich mehrere Anläufe gebraucht. Irritierend war zudem die Verwendung des abwertenden Begriffs Asylant (siehe Seite 204), bei dem ich mir nach wie vor nicht sicher bin, ob das wirklich so beabsichtigt war. Insgesamt aber trotzdem ein spannendes Buch, weil es zum Nachdenken über und die Bedeutung von Entscheidungen vielfältig und ohne moralischem Fingerzeigen einlädt.
  • Unrast, von Olga Tokarczuk. Reisephilosophie, Leiserust, Rastlosigkeit und irgendwie dann doch schwer zuordenbare Themen werden sprachlich klug auf 457 Seiten ausgebreitet. Die Titelseite – mit einem sehr gelungenen Cover – wirbt mit “Roman“, tatsächlich aber ist es eine Sammlung von Kurzgeschichten sehr unterschiedlicher Länge. Mit diesem Format habe ich mir nicht unschwer getan, speziell da die Geschichten für mich auch sehr unterschiedlicher Qualität sind. Wäre es nicht so sprachlich gelungen, hätte ich vermutlich schon früher aufgegeben. Sobald man sich aber auf das Format einlässt und in die Stimmung kippt, ergibt das Buch mit seinem unruhigen Stil ein spannendes Buch, das seinem Titel gerecht wird.
  • Nichts als die Wahrheit, von Michael Köhlmeier. Dieses 90 Seiten schlanke Buch ist im Verlag “Edition QVV” erschienen, dem Buchverlag von Quo Vadis Veritas, das als Medienmarke Addendum seit 2017 bekannt war und mit September 2020 leider eingestellt wurde. Daher an dieser Stelle kein direkter Link zum Verlag, sondern JFTR einfach nur die ISBN: 978-3-200-06674-8. Ich habe für mich Köhlmeier als wunderbaren Geschichtenerzähler entdeckt, und Köhlmeier enttäuscht auch hier in diesen 10 Geschichten rund um Lebenslügen und die Wahrheit nicht. Die Geschichten erschienen in den Addendum-Ausgaben in Kolumnen-ähnlicher Form, und waren dadurch vom Umfang her eingeschränkt und man findet den einen oder anderen Rechtschreib- und Grammatikfehler. Durch das Kolumnen-Format entfalten leider auch nicht alle Geschichten ihr volles Potential, wer das Buch aber als AbonnentIn von Addendum zugeschickt bekommen und die Geschichten bisher auch noch nicht in den Addendum-Ausgaben gelesen hat, möge dies nachholen.

Bookdump 04/2020

September 3rd, 2020

Bücher, die ich 2020 seit dem letzten Bookdump bisher gelesen habe:

Foto vom Buchregal

  • Zum Werk von Roger Willemsen – Der leidenschaftliche Zeitgenosse, von Insa Wilke (Herausgeberin). Auf 474 Seiten erfährt man über das Leben und Schaffen von Willemsen. Insa Wilke hat eine langes Gespräch mit Willemsen geführt, ein Jahr vor seinem Tod, und mit vielen Beiträgen von Weggefährten, Lesern und Kollegen ergänzt. Daraus ist ein angenehm und flüssig zu lesendes Buch geworden. Einige besonders schöne Stellen habe ich mir notiert, wie z.B. Ethel Matala de Mazza zum Werk »Das Hohe Haus«:

    Ein gewisser Personenkult schadet nicht, findet sie, sondern muss sein, weil die Demokratie sonst unpopulär wird.

    Schön formuliert hat auch Claudia Roth Gedanken zur Politik:

    In der aktiven Politik hat man meist nicht den Luxus von ausreichend Zeit, auch mal hier und da zu schauen, vom Pfad abzuschweifen und nach der Trüffelschweinmethode oder durch ungezieltes Suchen auf Unerwarteteres zu stoßen.

    Eine schöne Stelle von Willemsen wiederum:

    […] Der Chefredakteur einer britischen Tageszeitung hatte über seinem Schreibtisch ehemals ein holzgerahmtes Täfelchen. Darauf stand: »Es ist zwölf.« Gemeint war nicht die Uhrzeit, sondern das geistige Alter des Lesers, und jene Zeile in der Zeitung sollte sich daran messen, ob sie von einem Zwölfjährigen verstanden werden könne. »Die wahre Antidemokratie ist die Massenkultur«, hat Pier Paolo Pasolini gesagt. Sie schafft es, den Menschen ihre eigensten Interessen streitig zu machen und kultiviert dafür Konträrfaszination, die unsympathische Haltung, die uns bei Betrachtung unserer Unterhalten sagen lässt: »Gott sei Dank bin ich nicht wie jene dort.«

    Wer sich für Roger Willemsen und seine Werke interessiert, wird Gefallen an diesem Buch finden.

  • Die Straße, von Ann Petry. Die 383 Seiten haben es in sich. Das 1946 geschriebene Buch könnte thematisch nicht aktueller sein und handelt von den Abgründen der Ausgrenzung und dem Alltag von Schwarzen in den USA. Als Hauptfigur ist Lutie Johnson mit ihrem Sohn Bubb auf der Suche nach einem besseren Leben und versucht dabei ihrem gewalttätigen, sexistischen und rassistischem Umfeld zu entkommen. Besonders die Perspektivenwechsel sind sensationell, und das Buch hat mich in dieser Neuübersetzung begeistert. Ganz klare Leseempfehlung.
  • Ich an meiner Seite, von Birgit Birnbacher. Die Soziologin und Schriftstellerin Birnbacher hat 2019 den Ingeborg-Bachmann-Preis gewonnen, und in diesem 268 Seiten umfassenden Buch schreibt sie – basierend auf einer realen Vorlage – von Arthur. Arthur saß 2 Jahre im Gefängnis und als LeserIn begleitet man ihn beim Weg zurück ins normale™ Leben. Das Thema Strafvollzug wird sensibel aufgegriffen und das Buch gewährt Einblicke in das Leben und die Probleme von Gefängnisinsassen. In der nächsten Auflage sind hoffentlich mehrere Rechtschreibfehler und Formulierungen wie »Der Computer fährt tatsächlich hoch. Da ist ein vorgespeichertes Kennwert[sic] drauf, er braucht nur zu bestätigen.« beseitigt. Nichtsdestotrotz, schöne zeitgenössische Literatur die zum Nachdenken rund um die eigene Rolle in der Gesellschaft anregt, Leseempfehlung.
  • Abenteuer der deutschen Grammatik, von Yoko Tawada. Dieser 62 Seiten schmale Band spielt sich mit Eigenheiten der deutschen Sprache in Gedichtform. Die Gedichte haben mich ganz unterschiedlich berührt, mal fasziniert, mal verwundert, aber auch gelangweilt. Wer sich für Sprache und Gedichte begeistern kann, findet vermutlich Gefallen an diesem Buch.
  • Lernen S’ Geschichte, Herr Reporter!, von Ulrich Brunner. Ulrich Brunner ist jener Journalist, zu dem Bruno Kreisky das legendäre »Lernen S’ Geschichte, Herr Reporter!« gesagt hat. Brunner hat ein wunderbares Buch geschrieben, das im Juli 2020 (50 Jahre nach der ersten SPÖ-Alleinregierung der zweiten Republik) veröffentlicht wurde. Man erfährt über Kreiskys Werdegang, seinen Aufenthalt im Gefängnis und wie belesen er aus dieser Zeit zurückkehrte, über seine Vorbilder Otto Bauer und Karl Renner (mit Maximen wie »Notwendigkeiten, die in der Zeit liegen, die morgen jedermann erkennt, heute erkennen, ist Führung!«), seinen Umgang mit Journalisten und Medien, Kreiskys Macht, Konflikte mit Androsch und sein Leben als schwerkranker Mann. Es finden sich wunderbare Anekdoten (»Einstimmig, damit meint er mit einer Stimme, nämlich seiner!« zu Julius Raab), pointierte Anmerkungen (»Oft waren die Fragen keine Fragen, sondern Meinungskommentare.« – wer kennt das nicht von – speziell technischen – Konferenzen?) und Zitate (Joschka Fischer: »Die Verwandlung des Amtes durch den Menschen dauert etwas länger als die Verwandlung des Menschen durch das Amt.«). Dieses Buch ist speziell für all jene, die sich für Politik, Geschichte und/oder Journalismus/Medien interessieren und besonders Anekdoten gerne lesen. Ich habe die 259 Seiten regelrecht verschlungen und kann das Buch absolut empfehlen.
  • Handbuch für Zeitreisende, von Kathrin Passig + Aleks Scholz. Auf amüsant geschriebenen 335 Seiten gibt es Tipps, Anregungen aber auch Warnungen rund um das Thema Zeitreise. Das stellenweise immer wieder sehr faktendicht geschriebene Buch lädt zum Recherchieren ein, den Sprung zurück zum Buch muss man leider selbst finden. (Dafür würde sich Passigs Buch »Dinge geregelt kriegen – ohne einen Funken Selbstdisziplin« anbieten, naja, oder auch nicht.) Für EntwicklerInnen gibt es ab Seite 270 einen spannenden Ausflug zum Thema Kalender/Datumsangaben, und die Befürchtung bestätigt sich, dass das auch schon im Mittelalter kein wenig unkomplizierter war. Leseempfehlung.
  • Geistergeschichte, von Laura Freudenthaler. Die Teilnehmerin des diesjährigen Bachmann-Preises schreibt auf 168 Seiten über die 50-jährige Klavierlehrerin Anne, die ihren Partner Thomas einer Affäre verdächtigt. Sprachlich beeindruckend dicht, in einer interessanten Mischung aus Realität und Fantasie spielt das Buch mit dem Thema der Wahrnehmung. Anders, aber lesenswert.
  • Das Gewicht der Welt: Ein Journal (November 1975 – März 1977), von Peter Handke. Ein Journal auf 283 Seiten. (Interessantes zum Entstehungskontext und Analysen dazu gibt es bei Handke online.) Als LeserIn darf man an Handkes durchaus auch intimen Beobachtungen und Einfällen teilhaben. Diese Notizensammlung ist das perfekte ZÖK-Buch (Zähne putzen, Öffis, Klo), da man es dank seiner Struktur jederzeit unterbrechen und zu einem beliebigen Zeitpunkt weiterlesen kann.
  • Zwei Herren am Strand, von Michael Köhlmeier. Auf 254 Seiten erfährt man von Gemeinsamkeiten zwischen den Freunden Charlie Chaplin und Winston Churchill: Depressionen und Selbstmordfantasien, die die zwei Protagonisten des Buches in ihren Gesprächen als »der schwarze Hund« bezeichnen. Köhlmeier verpackt Faktenwissen in Anekdoten und unternimmt eine Gratwanderung zwischen Fakten und Fiktion. Ein fantastisches Buch, das ich vor lauter Lesefreude noch in der Nacht fertig lesen musste. Ganz klare Leseempfehlung.
  • Der letzte Satz, von Robert Seethaler. Gustav Mahler reist mit dem Schiff nach New York, auf 126 Seiten begleitet man den Komponisten, Dirigenten und Operndirektor auf seiner letzten Reise. Man erfährt ein wenig über die Person, aber ich hätte mir mehr Tiefgang, speziell zur Musik, gewünscht. Das Buch hört auch schon wieder auf, bevor es so richtig Fahrt aufnehmen kann.
  • Die Parade, von Dave Eggers. Ein Entwicklungsland nach dem Bürgerkrieg, zwei Bauarbeiter – die nicht unterschiedlicher sein könnten – errichten mit Hilfe einer Asphaltiermaschine eine Straße, die den armen Süden mit dem reichen Norden verbinden soll. Fantastisch und spannend geschriebene 178 Seiten, die ich sehr gerne gelesen habe.
  • Klartext Impfen, von Thomas Schmitz + Sven Siebert. Ein Facharzt und ein Journalist haben auf 194 Seiten Fakten rund ums Impfen zusammengetragen, speziell um als LeserIn besser auf Argumente von Impfgegnern reagieren zu können. Der populärwissenschaftliche und unterhaltsam anmutende Duktus hätte für mich nicht sein müssen, geschmacklose Formulierungen wie »Er zog fortan ein Bein nach. Und wenn er nicht gestorben ist, dann tut er das noch heute.« wären wohl besser unterblieben. Ich hätte mir auch noch mehr Quellenangaben und Verweise auf Studien, speziell direkt im Fließtext, gewünscht. Insgesamt aber ein guter und leicht zu lesender Überblick zur Thematik, der alle LeserInnen mit einer positiven Einstellung zum Impfen hinterlassen sollte.

Grml 2020.06 – Codename Ausgehfuahangl

July 3rd, 2020

We did it again™, at the end of June we released Grml 2020.06, codename Ausgehfuahangl. This Grml release (a Linux live system for system administrators) is based on Debian/testing (AKA bullseye) and provides current software packages as of June, incorporates up to date hardware support and fixes known issues from previous Grml releases.

I am especially fond of our cloud-init and qemu-guest-agent integration, which makes usage and automation in virtual environments like Proxmox VE much more comfortable.

Once as the Qemu Guest Agent setting is enabled in the VM options (also see Proxmox wiki), you’ll see IP address information in the VM summary:

Screenshot of qemu guest agent integration

Using a cloud-init drive allows using an SSH key for login as user "grml", and you can control network settings as well:

Screenshot of cloud-init integration

It was fun to focus and work on this new Grml release together with Darsha, and we hope you enjoy the new Grml release as much as we do!

Bookdump 03/2020

June 16th, 2020

Bücher, die ich 2020 seit dem letzten Bookdump bisher gelesen habe:

Foto vom Buchregal

  • Binge Living – Callcenter-Monologe, von Stefanie Sargnagel. Das Urban Dictionary definiert Binge Living wie folgt:

    Long periods of (70+ hour) weeks at work followed by short amounts of time off (1-2 days) that consist of poor decisions, consumption of large amounts of alcohol and disgusting amounts of food and regret.

    Es gibt 193 Seiten an Monologen, die derb und banal, aber auch unterhaltsam sind. Anfangs kam es mir wie eine moderne und lustige Version von Peter Handkes “Wunschloses Unglück” vor. Ab ungefähr der Hälfte des Buches hat es mich nicht mehr ganz so unterhalten, der Überraschungseffekt dürfte für mich ein wenig verloren gegangen sein.

  • Ich, von Elton John. Ich bin über die Literatursendung Literaturclub vom 10.03.2020 auf dieses Buch aufmerksam geworden, das ich mir rein vom Thema und der Aufmachung sonst wohl eher nicht gekauft hätte. Diese Autobiografie enthält 480 Seiten, die sehr ehrlich und offen wirken. Neben der Geschichte hinter der als Reginald Kenneth Dwight auf die Welt gekommenen Pop-Legende Elton Hercules John erfährt man viel Privates über den Popstar. Einerseits einiges rund um Konflikte in seiner Familie (speziell Mutter und Vater), andererseits aber auch diverse und lang anhaltende Kokain-, Alkohol- und Sex-Eskapaden, die mir in dieser Ausprägung nicht bekannt waren. Es gibt viele Referenzen auf Musikstudios, andere Künstler (Elwis Presley, Rod Stewart, Freddie Mercury, Madonna, Tina Turner, Eric Clapton, Michael Jackson und Lady Gagga um nur einige zu nennen) und Geschichten rund um das Musik-Business. Es war sprachlich angenehmen und flüssig zu lesen (geschrieben wurde es vom Musikkritiker Alexis Petridis), auch wenn retrospektiv gesehen eigentlich nicht wirklich viel bei mir hängen geblieben ist. Ich fand es aber ein schönes Buch für zwischendurch und muss zugeben, Elton John auf vielen Ebenen unterschätzt zu haben. Ein wunderschöner Satz aus dem Buch war übrigens folgender, von Elton Johns Mutter zu ihrem Sohn: “Ich liebe dich auch”, sagte sie. “Aber ich kann dich nicht leiden.”
  • Die Bagage, von Monika Helfer. Ein Buch, das ich mir vom Cover her nicht gekauft hätte. Nachdem es mir aber in diversen Literatursendungen immer wieder über den Weg gelaufen ist, konnte ich dann doch nicht widerstehen. In dem 150 Seiten schlanken Buch geht es um die besonders schöne Großmutter Maria und ihren Mann Josef Moosbrugger. Dieser ist im Dorf gefürchtet und muss als Soldat im Weltkrieg dienen, und ein Talent für nicht ganz saubere Geschäfte zu haben scheint. Sie sind eine arme Familie und werden “Bagage” genannt, das für »das Aufgeladene» steht, für die Träger die kein festes Dach über dem Kopf hatten und von Hof zu Hof zogen. Es folgt eine Schwangerschaft inklusive Rätselraten, ob das Kind namens Grete von Josef oder aber doch von einem der Bewunderer Marias stammt.
    Monika Helfer erzählt aus einer autobiografischen Ich-Perspektive als Tochter von Grete und ihr ist hier ein wirklich fantastisches Buch gelungen. Ein besonders schöner Satz aus dem Buch: »Du hast wahrscheinlich keine Chance, nicht etwas Besonderes zu sein.« Sehr lesenswert.
  • Der Mythos des Sisyphos, von Albert Camus. Die 187 Seiten des bekannten Philosophen und Schriftstellers handeln von der absurden Betrachtung, dem absurden Mensch, dem absurden Werk und schlussendlich dem titelgebenden Mythos des Sisyphos. Das Buch handelt von Selbstmord, der menschlichen conditio, dem Auflehnen, der Freiheit und der Leidenschaft. Das Leben ist absurd, aber trotzdem lebenswert. Es geht um den Don-Juanismus, Hamlet mit Schauspiel und Theater, und natürlich Sisyphos und dessen Kampf gegen den Gipfel. Camus ruft auf, Sisyphos als glücklichen Menschen anzusehen. All dies mit dem Hintergrund, dass dieses Werk zur Zeit des 2. Weltkrieges im Winter 1941/42 fertiggestellt wurde. Er definiert das Absurde als etwas, was durch Gegenüberstellung von verglichenen Elementen entsteht, und wie alle Dinge mit dem Tode endet. Camus referenziert dabei auf andere dem Thema des Absurden verbundene Philosophen wie Pascal, Kierkegaar, Nietzsche, Schestow, Husserl, Heidegger und Jaspers.

    Ich habe mir eine Vielzahl an Stellen im Buch markiert, ein kleiner Auszug besonders schöner Stellen:

    »Ein Mensch ist mehr Mensch durch das, was er verschweigt, als durch das, was er sagt.«
    »Und eben das kennzeichnet das Genie: der Verstand, der seine Grenzen kennt.«
    »Für einen Menschen ohne Scheuklappen gibt es kein schöneres Schauspiel als die Intelligenz im Kampf mit einer ihr überlegenen Wirklichkeit.«
    »Man gewöhnt sich so rasch. Man will Geld verdienen, um glücklich zu leben, und die ganze Anstrengung, die beste Kraft eines Lebens konzentrieren sich auf den Erwerb dieses Geldes. Das Glück wird vergessen, das Mittel wird Selbstzweck.«
    »Der Arbeiter von heute arbeitet sein Leben lang an den gleichen Aufgaben, und sein Schicksal ist genauso absurd. Tragisch ist es aber nur in den wenigen Augenblicken, in denen er sich dessen bewusst wird.«
    »Es gibt kein Licht ohne Schatten, und man muss auch die Nacht kennen.«

    Anspruchsvoll, tiefgründig und die perfekte Basis für eine tiefergehende und philosophische Gesprächsrunde mit Freunden.

  • Der Freund, von Sigrid Nunez. Aus dem Klappentext:

    Als die Ich-Erzählerin, eine in New York City lebende Schriftstellerin, ihren besten Freund verliert, bekommt sie überraschend dessen Hund vermacht. Apollo ist eine riesige Dogge, die achtzig Kilo wiegt. Ihr Apartment ist eigentlich viel zu klein für ihn, außerdem sind Hunde in ihrem Mietshaus nicht erlaubt. Aber irgendwie kann sie nicht Nein sagen und nimmt Apollo bei sich auf, der wie sie in tiefer Trauer ist. Stück für Stück finden die beiden gemeinsam zurück ins Leben. Ein Roman über Liebe, Freundschaft und die Kraft des Erzählens — und die tröstliche Verbindung zwischen Mensch und Hund.

    Eine Ich-Erzäh­lerin also, die auf 233 Seiten von ihrem verstorbenen Freund und ihrer Adoption dessen Hundes schreibt. Es geht um Gesellschaftskritik und Moral, aber auch Anmerkungen und Kritik rund um die Literatur-Branche. Ich bin an das Buch mit einer hohen (zu hohen?) Erwartungshaltung gegangen, nachdem es von der “Kritik” vielfach hochgelobt wurde. Das Buch liest sich schön und ich hatte auch nicht das Bedürfnis es auf die Seite zu legen, aber so richtig ist der Funke für mich einfach nicht über gesprungen. Woran das genau liegt kann ich retrospektiv nicht benennen, der Katzenmensch in mir reicht als Begründung vermutlich nicht aus. Es schreit insofern danach, in anderer Stimmung und bei anderer Gelegenheit nochmal gelesen zu werden und sich dabei aufs Buch erneut einzulassen.

  • Ich bin Legende, von Richard Matheson. Dieses (mittlerweile vergriffene) Buch wurde ursprünglich 1954 geschrieben und handelt von Robert Neville, dem letzten Mensch auf Erden in einer Welt von Vampiren. Nachts verbarrikadiert er sich in seinem zu einer Festung ausgebauten Haus, tagsüber durchstreift er das Land der Toten auf der Suche nach Nahrung und Waffen.
    Die Ausgabe des deutschsprachigen Buchs hat insgesamt 400 Seiten, beinhaltet neben der Geschichte “Ich bin Legende” (Umfang: 207 Seiten) aber noch weitere (Kurz)Geschichten. Das Gedankenspiel das Matheson hier aufbaut ist reizvoll und negativ-utopisch. Ich fand besonders die Erklärungen zum Vampirismus und die Gedankenspiele rund ums allein sein spannend. Die deutschsprachige Ausgabe ist sprachlich in Ordnung, ich hätte es aber vermutlich nicht gelesen, wenn es nicht auf der Leseliste (m)eines Buchclubs gestanden wäre, bereue aber nicht in das Genre vorgestoßen zu sein. Der gleichnamige Film von 2007 mit Will Smith (der Name ist Programm, viel Knallerei und Action) hat mit dem Buch übrigens nur sehr entfernt miteinander zu tun und ich empfehle ganz klar das Buch gegenüber dem Film. PS: weitere Informationen dazu auch auf Ich bin Legende bei Wikipedia, aber Achtung: Spoiler-Warnung.
  • Gewaltfreie Kommunikation mit Kindern, von Luna Becker. (Anmerkung: die Kindle-Ausgabe gibt es (zumindest aktuell) kostenlos, auf diese bezieht sich meine Rezension hier.)
    Das Konzept der gewaltfreien Kommunikation (GFK) ist keine Erfindung der Autorin, sondern stammt von Marshall B. Rosenberg und "soll dabei helfen, sachlich und konstruktiv zu bleiben, um auf diese Weise schneller und besser an dein gewünschtes Ziel zu kommen" (Zitat aus dem Buch). Rosenberg unterscheidet zwischen zwei Sprachbildern, dem Wolf und der Giraffe, wobei Becker GFK speziell auf den Umgang mit Kindern umlegt, wie "Drohungen, Bestrafung und Belohnung solltest du bei deinem Kind generell nicht einsetzen."
    Die 139 Seiten sind schnell gelesen. Mich persönlich störten das “per-du” im Buch und einige stilistische Fehler, da hätte ein Lektorat vermutlich nicht geschadet.
    Aussagen wie “Vor allem Mädchen sind weniger verhaltensauffällig und psychisch gefestigter, wenn sich der Vater intensiv in die Erziehung mit einbringen kann.” sowie “Du könntest dich noch ein paar Minuten zu deinem Kind ins Bett legen, um sein Bedürfnis nach Nähe zu befriedigen.” ohne Referenz oder weitergehende Erklärung finde ich nicht ungefährlich.
    Insgesamt regt das Buch zum Reflektieren an, direkt empfehlen würde ich es aber nicht.
  • 1918 – die Welt im Fieber, von Laura Spinney. Dieses 2017 im Englischen veröffentlichte und 2018 erstmalig in einer deutschen Ausgabe erschienene Buch hat es 2020 – bedingt durch die aktuell vorherrschende Situation – in die 4. Auflage geschafft. Wer sich in der aktuellen Corona-Situation für den historischen Kontext interessiert, kommt um dieses 345 Seiten starke Buch eigentlich nicht herum.
    Natürlich erfährt man, warum die spanische Grippe mit ziemlicher Sicherheit ihren Ursprung nicht in Spanien hatte (die drei Theorien Shanxi/China, Étaples/Frankreich bzw. Kansas/Vereinigten Staaten). Schon 1918 gab es mathematische Modellierung von Infektionskrankheiten. In Japan dürfte es damals der Beginn der Sitte gewesen sein, "Atemmasken zu tragen, um anderen Menschen vor den eigenen Keimen zu schützen". Interessanterweise gab es aber schon damals Uneinigkeit, ob Masken die Ansteckung tatsächlich reduzieren, "auch über die Verwendung von Desinfektionsmitteln fand keine Einigung statt". Sehr spannend fand ich die Ausführungen zu Kindern im Schulalter und dass es auch schon damals ein großes Thema war, ob man die Kinder lieber daheim lasst oder in die Schule schickt.
    Es gab auch damals schon hitzige Diskussionen rund ums Impfen, die Impfmethode war sogar älter als die Keimtheorie. Mir war beispielsweise auch nicht bewusst, dass alternative Heiler (Homöopathie, Chiropraktik,…) damals ihren Aufschwung fanden und in Folge die seriösere Bezeichnung “alternative Medizin” erwarben.
    Es gibt diverse Ausflüge in die Medizin (Keimtheorie, RNA/Influenza), Psychologie und gesellschaftliche Fragestellung (Stichwort “Kollektive Resilienz”) sowie natürlich Geschichte und Politik. Wie brandaktuell das Buch und dessen Thema aber eigentlich und nach wie vor ist (und wie sehr die Menschheit manchmal die Geschichte zu ignorieren scheint oder nicht daraus lernen will) zeigt z.B. dieses Zitat aus dem Buch:

    Bei einer künftigen Grippepandemie werden die Behörden und Eindämmungsmaßnahmen wie Quarantäne, Schulschließungen und Verbote von Massenversammlungen verhängen. Da dies zum Besten für alle sein wird, stellt sich die Frage, wie man die Bevölkerung zur Mitwirkung motivieren könnte. Und wie bringt man Menschen dazu, sich alljährlich impfen zu lassen, da ja die Herdenimmunität der beste Schutz gegen eine Grippepandemie darstellt?

  • Mitternacht in Tschernobyl, von Adam Higginbotham. Das vom Verlag als Tschernobyl-Thriller beworbene Buch (Zitat: “Adam Higginbotham hat zahllose Interviews mit Augenzeugen geführt, Archive durchforstet, bislang nicht veröffentlichte Briefe und Dokumente gesichtet. So bringt er Licht in die Geschichte, die bislang im Sumpf von Propaganda, Geheimhaltung und Fehlinformationen verborgen lag.“) liest sich spannend. Viele Zahlen und Fakten der Atomkatastrophe waren mir in dieser Form nicht bewusst. Die Ausgaben für alle Aspekte des Desasters werden etwa auf über 128 Milliarden Dollar geschätzt, bis 1991 hatten sich nicht weniger als 600.000 Männer und Frauen aus der gesamten Sowjetunion an den Aufräumarbeiten als Tschernobyl-Liquidatoren beteiligt und über 20.000 Nutz- und Haustiere wurden von ukrainischen Jägern getötet. Die kontaminierten und unbewohnbaren Bereiche im Nordwesten der Ukraine und im südlichen Weißrussland umfassten 2005 ein Gebiet von über 4700 Quadratkilometern. Diese und noch viele weitere Fakten wurden vom Autor in eine roman-ähnliche Form gegossen, die sich insgesamt relativ rund und flüssig liest.
    Das Buch listet eine Vielzahl an Fehlern die zur Atomkatastrophe Tschernobyl geführt haben (besonders für technik-affine LeserInnen interessant): Behördenversagen, fehlende Sicherheitsvorkehrungen und Sicherheitssysteme, das Problem unvollständiger Informationen (und dadurch resultierende Fehlentscheidungen) und wie Zeitdruck und das überspringen von Tests schwerwiegende Folgen haben können, z.B.:

    Das Resultat wäre eine vernichtende Explosion. Trotzdem sahen die Konstrukteure keine Notwendigkeit, Vorkehrungen für eine solche Katastrophe zu treffen, die sie als außerhalb jeder Wahrscheinlichkeit betrachteten. Dennoch gaben sie dem Szenario eine eigene Bezeichnung: auslegungsüberschreitender Störfall.

    Auch die korrekte Anwendung von Technik will gelernt sein, Money Quote:

    Die Männer trugen die Montur der Panzerbesatzungen und waren mit teuren in Japan gefertigten Dosimetern ausgerüstet – näherten sich jedoch dem havarierten Reaktorblock, ohne zu wissen, dass man die Geräte auch einschalten musste.

    Das Vertuschen – trotz und in Zeiten von Glasnost – sowie der Wettlauf zwischen den Nationen (Vereinige Staaten vs. Sowjetunion) haben ihr übrigens geleistet. Das Buch hat technisch gesehen 614 Seiten, beinhaltet aber neben Glossar, Bibliographie sowie Personen- und Ortsregister auch über 100 Seiten Anmerkungen (mit unzähligen Referenzen und Quellenangaben, die entgegenwirken, dass man das Buch als Fantasie-Roman abtun könnte). Tatsächlich liest man ca. 453 Seiten, die zwar streckenweise von ein wenig irritierend blumigen Formulierungen unterbrochen werden, aber besonders die zweite Hälfte des Buchs liest sich spannend wie ein Thriller. Das Buch eignet sich auch als guter Startpunkt für weitergehende Recherchen zu den Themen Tschernobyl, Atomkraftwerke und Atomkatastrophen.

  • Inside Türkis, von Klaus Knittelfelder. Diese 224 Seiten rund um den Kurz-Zirkel und die politische Machtbasis des Sebastian Kurz liefern ein gutes Bild um das Agieren der türkisen Truppe besser zu verstehen. Warum der “neuen ÖVP” Loyalität so wichtig ist, ihr Umgang mit sozialen Medien und das Bespielen der Medienbühne sowie die professionelle Kommunikation sind genauso Teil wie brandaktuelle Themen à la Familienbonus und Corona-Krise. Nebenbei erfährt man auch, wie es zur türkisen Farbe der ÖVP kam. Das Buch liest sich gut und flüssig und ist eine klare Pflichtlektüre für Politik-Interessierte.

Bookdump 02/2020

April 1st, 2020

Bücher, die ich 2020 seit dem letzten Bookdump bisher gelesen habe:

Foto vom Buchregal

  • Miroloi, von Karen Köhler. Miroloi ist ein der griechisch-orthodoxen Kultur entspringendes Totenlied. In dem 463 Seiten starken Buch geht es um das Mädchen Alina, ein zunächst namenloses Findelkind, das in einem Dorf namens “Schönes Dorf” auf einer anscheinend griechischen, von der Außenwelt abgeschnittenen und abgeschiedenen Insel am Meer lebt. Das rückständige Dorf, es gibt z.B. keinen Strom, wird in einer patriarchalen Struktur mit strengen Regeln vom Ältestenrat regiert. Frauen dürfen nicht lesen und schreiben, Männer wiederum nicht singen und kochen. Alina verliebt sich in Yael, lernt lesen und Selbstbefriedigung kennen und bricht Gesetze.
    Das Buch ist in Strophenstruktur aufgebaut, es gibt 128 Strophen, und handelt u.a. von heiligen Schriften und Religion (sowie Kritik an dieser) und Spiritualität. Es ist ein sehr schön gestaltetes Buch und fühlte sich ein wenig wie für junge und junggebliebene Leser*innen geschrieben an. Das Buch ist stellenweise ein wenig repetitiv in seiner Gesellschaftskritik, ich fand es aber anregend und sehr schön zu lesen.
  • Ein Zimmer für sich allein, von Virginia Woolf. Dieses Buch in Form eines Essays der Britin Woolf, das im Original unter “A Room of One’s Own” 1929 veröffentlicht wurde, gilt als einer der wichtigsten Texte der Frauenbewegung. Woolf beschreibt darin, unter welchen Bedingungen Frauen Literatur schaffen müssen. Formulierungen wie “Nehmen wir zum Beispiel einmal an, Männer kämer in der Literatur nur als Liebhaber von Frauen vor und wären niemals Freunde von Männern, Soldaten, Denker, Träumer: […]” erinnern stark an den Bechdel-Test und man erkennt viele Passagen, an die sich aktuelle feministische Literatur lehnt.
    Ich habe die Ausgabe aus 2012 von Reclam mit 187 Seiten (inkl. Anmerkungen und Nachwort von Axel Monte) gelesen, im Kampa-Verlag wurde es 2019 übrigens neu aus dem Englischen und mit einem Nachwort von Antje Rávik Strubel aufgelegt. Ein Werk das man gelesen haben sollte.
  • Zum Weinen schön, zum Lachen bitter, von André Heller. Der Universalkünstler Heller schreibt auf 211 Seiten 47 kurze Geschichten und am Ende gibt es noch ein Nachwort von Franz Schuh (in Summe sind es 231 Seiten). Die Geschichten entstanden zwischen 1969 und 2003 und wurden teilweise schon in anderen Büchern Hellers veröffentlicht.
    Mit dem Namen André Heller verbinde ich einen Ästheten, und dementsprechend sollte man in einer ästhetisch aufnahmefähigen Stimmung sein, wenn man dieses Buch liest. Schöne Wortspiele und phantasievolle Gedanken, geschrieben in einer wunderbar zu lesenden österreichischen und wienerischen Sprache (endlich einmal wieder ein Buch ohne “gucken”).
  • Die steinerne Matratze, von Margaret Atwood. In neun Geschichten auf 301 Seiten gibt es schöne fiktionale Literatur rund um Beziehungen, Generationen und Mord. Die miteinander verbundenen ersten drei Texte waren für mich ein schöner Einstieg. Erst später habe ich dann festgestellt, dass die folgenden Erzählungen nichts miteinander zu tun haben, was ich fast ein wenig schade fand. Die Geschichte mit der toten Hand, in der u.a. von einem Buch im Buch geschrieben wird (hallo Rekursion) ergibt ein schönes Konstrukt. Einige Geschichten wiederum fand ich eher plump und unfertig, einige sehr schöne Wortspiele haben das für mich aber wieder gutgemacht.
  • Wann wird es endlich so, wie es nie war, von Joachim Meyerhoff. (Link nur zum Verlag, weil dieser es nicht schafft, funktionierende URLs zu seinen Büchern zur Verfügung zu stellen, sigh.) Den ersten Teil (“Alle Toten fliegen nach Amerika”) dieser vierteiligen Buchserie habe ich 2019 gelesen, und hatte ihn in guter und angenehmer Erinnerung. Ich wollte ein Buch lesen, das “flutscht” und gute Laune macht.
    Meyerhoff beschreibt in diesem 351 Seiten umfassenden autofiktionalen Text das Aufwachsen und Erwachsen-werden aus der Sicht des jungen Josse. Die Geschichte spielt auf dem Anstaltsgelände der Kinder- und Jugendpsychiatrie Hesterberg in Schleswig. Josses 40-jähriger Vater, Direktor dieser psychiatrischen Anstalt, scheint ein wenig in der Midlife-Crisis zu stecken und ist ein Meister der Planung und Theorie, versagt aber stets in der Praxis bzw. Umsetzung seiner Pläne.
    Neben der Thematik der Vaterkind-Beziehung und des Sich-Einordnen unter Geschwistern geht es auch um traurige Themen. Die Situationskomik verschafft insgesamt trotzdem – zumindest bei mir – gute Laune beim Lesen. Das Buch liest sich flüssig, wer gute Unterhaltung mit Stoff zum Nachdenken sucht, wird hier fündig.
  • Wer braucht Superhelden, von Lisz Hirn. Die österreichische Philosophin schreibt in diesem 158 Seiten schlanken Buch über den Mythos der Superhelden, gegen Selbstoptimierung und Komfortdenken, und wirft einen Blick auf unser patriarchales Gesellschaftsbild und dessen toxische ­Männlichkeit. Das Buch handelt von Übermenschen bei Nietzsche und den Nationalsozialisten, geht über die Robotisierung und Verstädterung, die den Arbeiter, ja den Mann entmachtet hat, bis hin zum Transhumanismus und Posthumanisten. Es führt aus, warum der Vergleich von Trump mit Superman besonders ironisch ist, geht mit dem Neoliberalismus kritisch ins Gericht und spricht auch Themen wie Wehrpflicht, Hedonismus und die Mesotes-Lehre an. Die Autorin spricht Fake-News und gängige Irrtümer an, wie beispielsweise: 1. Argumentum ad verecundium (“Autoritätsargument”), 2. Argumentum ad peronsam (“persönliche Beleidigung”), 3. Tu quoque (“du auch”) und 4. Argumentum ad populum (“Volksmund”).
    Das Buch ist zugänglich und ließt sich vergleichsweise flott. Stellenweise gibt es einige stilistische und grammatikalische Patzer, die hoffentlich in einer neuen Auflage ausgeräumt werden. Schwer tue ich mich auch mit manchen Aussagen (ohne Referenzen), wie beispielsweise auf Seite 62: “Während das Gehirn für die erste Begegnung an die 11 Millionen Bits pro Sekunde verarbeiten muss, fallen nur 40 Bits pro Sekunde bei der digitalen Interaktionan [sic], reale Treffen verlangen von uns im Vergleich dazu ein Vielfaches an Denkleistung.” Das scheint mir auf die 2 Systeme von Daniel Kahneman anzuspielen, würfelt es für mich aber ein wenig durcheinander (z.B. gibt es auch digitale Interaktion mittels Video, Audio,…).
    Insgesamt gibt es aber viele Referenzen, und ich rechne es der Autorin an, dass sie das Buch so kompakt und unaufgeblasen gehalten hat, auch wenn viele eingestreute Zitate von Nietzsche und weiteren Philosophen streckenweise den Eindruck des Erzwungenen erwecken und der Tiefgang dann doch fehlt. Ich empfand es insgesamt aber eine philosophische und anregende Lektüre, die zum Reflektieren über Superman, Batman & CO anregt.
  • Was sollen die Leute denken, von Jess Jochimsen. Dies war die Empfehlung eines lustigen Buches von Renato Kaiser beim Schweizer Literaturclub, und ich schließe mich ihm gerne an. Eine Geschichte auf 78 Seiten in Form eines Monologs über das “Funktionieren” und was die Leute von einem denken (sollen). Sehr schön, hätte für mich gerne noch länger sein dürfen.
  • Ich fühl’s nicht, von Liv Strömquist. Die Autorin habe ich 2019 mit “Der Ursprung der Welt” für mich entdeckt. In ihrem neuen 172 Seiten umfassenden Buch in Form einer Graphic Novel ergründet sie anhand des Beispiels Leonardo DiCaprio, warum dieser zahlreiche Beziehungen zu Topmodels in ihren frühen zwanziger Jahren eingeht (und wieder beendet). Es geht um Narzissmus (Foto von sich selbst auf sozialen Medium statt vom Objekt der Begierde), Objektivierung sowie Gedanken zu unserer spätkapitalistischen Leistungsgesellschaft. Warum das Objekt der Zuneigung als atopos bzw. einzigartig angesehen wird und damit nicht einfach austauschbar ist. Warum Liebe verschwenderisch und irrational sein darf und soll, und warum sie mit einer Konsum- und Leistungsgesellschaft nicht zusammengehen kann. Mit Verweis auf ein Team um Dr. Helen Fischer wird romantische Liebe in drei Phasen, mit zugehörigen und eigenen Hormonkombinationen aufgeteilt: Begierde (Testosteron + Östrogen), Anziehung (Dopamin, Noradrenalin + Serotonin) und Bindung (Oxytocin + Vasopressin). Es gibt auffallend viele Verweise und Referenzen speziell auf die Soziologin Eva Illouz und den Philosophen Byung-Chul Han.
    Das Buch ist schnell (durch)gelesen und hat mir geholfen, einige Phänomene besser verstehen, erklären und beim Namen nennen zu können. Lesenswert.
  • Über Nationalismus, von Georg Orwell. Dieser Essay wurde von Orwell im Mai 1945 verfasst und ist jetzt in einer deutschen Erstausgabe mit einem Nachwort des Soziologen Armin Nassehi (in Summe 62 Seiten) erschienen. Orwell unterscheidet zwischen Nationalismus (“Streben nach Macht”) und Patriotismus (“Verbundenheit mit einem bestimmten Ort und einer bestimmten Lebensweise, die man für die beste auf der Welt hält, aber anderen Menschen nicht aufzwingen möchte”), wobei er Nationalismus nicht auf die Loyalität gegenüber einer Regierung oder einem Land beschränkt, sondern diesen struktureller betrachtet (Religion, Parteizugehörigkeit,…). Die Hauptmerkmale nationalistischen Denkens sind Orwell zufolge Obsession, Instabilität und Gleichgültigkeit gegenüber der Realität. Weiters teilt er Nationalismus in positiven (Neo-Toryismus, keltischer Nationalismus und Zionismus), übertragenen (Kommunismus, politischer Katholizismus, Hautfarbenbewusstsein, Klassenbewusstsein, Pazifismus) und negativen (Anglophobie, Antisemitismus, Trotzkismus) ein. Er charakterisiert fünf Typen von Nationalisten: britischer Tory, Kommunist, Irischer Nationalist, Trotzkist + Pazifist. Orwell betont, wie wichtig die moralische Anstrengung ist, wie auch das Erkennen von Gefühlen, die eigene Denkprozesse kontaminieren. Nationalisten lassen der eigenen Gruppe Sachen durchgehen, die diese selbst als moralisch verwerflich ansieht und fremden Gruppen nie zugestanden würden. Orwell zeigt, wie schwierig eine unvoreingenommene Perspektive ist und akzeptiert das Heraushalten aus der Politik nicht, speziell für Intellektuelle. Orwell zeigt schön, dass jeder von uns gefährdet ist Nationalist zu werden, und dass auch Intellektuelle (Intelligenzia) nicht vor Nationalismus gefeit sind – ganz im Gegenteil, auf dem Papier lässt sich die Welt wunderbar so konstruieren und erklären wie man es für richtig hält. Anregende Gedanken zum Chauvinismus und einer auch heute nach wie vor präsenten Doppelmoral.
  • Das Tagebuch der Anne Frank, von Anne Frank. Auf 156 wunderschön gestalteten Seiten in Form einer Graphic Novel wird der berühmte Text Anne Franks von Ari Folman und David Polonsky neu umgesetzt. Folman und Polonsky haben aus jeweils 30 Seiten Tagebuch ~10 grafisch aufbereitete Seiten gemacht, ergänzt um fiktive Dialoge. Damit ist ein zugängliches Buch entstanden, das ein schwieriges Thema ein­drück­lich und gut aufbereitet.
    Ich hätte mir mehr Akzentsetzung mittels stellenweise angebrachter Schwarz/Weiß-Zeichnungen und weniger Detailreichtum erwartet, aber vermutlich ist das Buch dadurch besonders für junge LeserInnen und Lesemuffel zugänglicher.

Bookdump 01/2020

February 25th, 2020

Bücher, die ich 2020 bisher gelesen habe:

Foto vom Buchregal

  • Factfulness, von Hans Rosling mit Anna Rosling Rönnlund und Ola Rosling. Der 2017 verstorbene Hans Rosling ist u.a. für seine Ted Talks bekannt und hat an diesem Buch bis kurz vor seinem Tod geschrieben. In diesem ~380 Seiten starken Buch beschreibt Rosling mit seinem Team, warum die Aufteilung in »der (reiche) Westen« und »Entwicklungsländer« seiner Meinung nach falsch ist. Stattdessen teilt Rosling die Welt in vier Einkommensniveaus (Stufen 1 bis 4) ein, und demonstriert, wie überheblich und falsch die Ansichten von Leuten aus der einkommensreichsten Schicht (Stufe 4) sind. Gleichzeitig verursachen die Menschen aus Stufe 4 auch den Großteil der vom Menschen verursachten CO2-Emissisionen der letzten 50 Jahren. Er weist auf die Gefahr von einzelstehenden (Prozent)Zahlen und Vergleichen von Durchschnitten, Mehrheiten sowie Extremen hin, argumentiert warum unser Weltbild durch verzerrte und überdramatisierte Nachrichten falsch geprägt wird und der Blick auf die rosige Vergangenheit meist getrübt ist. Das kritische Interpretieren von Trends, der Umgang von Angst kontra Wirklichkeit wie auch der Zusammenhang zwischen dem Einkommen und der Zahl der Kinder, die eine Frau auf die Welt bringt gehören ebenso zu den behandelten Themen. Das Buch versucht einen positiven Blick auf die Welt zu vermitteln, Rosling nannte sich selbst einen Possibilisten, wobei ihm auch der Vorwurf von Pollyannaism gemacht wird.
    Ich las »Factfulness« zu einer Zeit, in der die Feuer in Australien riesige Flächen vernichtet und für dramatische Bilder gesorgt haben. Roslings Kritik an “Klimaflüchtlingen” bekommt damit für mich einen interessanten Drall (besonders, weil Australien die Flüchtlinge aus dem Südpazifik in der Mitte von 2019 selbst nicht annehmen wollte). Unschön finde ich das Kleinreden von Zahlen rund um z.B. extreme Armut und Säuglingssterblichkeit. Die Zahlen sind weltweit tatsächlich so niedrig wie noch nie, aber die mehreren hundert Millionen Menschen in extremer Armut existieren nach wie vor und sind damit noch nicht aus der Welt. Die angeführten Umfrageergebnisse, in denen die Antworten unterschiedlicher Länder und Personenkreise dann jeweils gegen Schimpansen verglichen werden (die repräsentativ für eine Zufallsauswahl stehen sollen) empfinde ich als hochnäsig und ein Vermischen von Zufall mit dem Einschätzen einer Situation (hallo, Statistik). Roslings sa­k­ro­sankte Einkommenseinteilungen stehen für mich teilweise in Widerspruch mit der Kluft zwischen Arm und (Super)Reich innerhalb der einkommensreichsten Schicht (Stufe 4).
    Die Themen wiederholen sich immer wieder, besonders gegen Ende hin wurde es dann noch repetitiver. Auch hier gilt wieder einmal: weniger wäre mehr gewesen – ein kompakteres, dichter geschriebenes Buch hätte bei mir einen besseren Eindruck hinterlassen.
    Jeweils am Kapitelende findet sich eine Zusammenfassung, es gibt einen brauchbaren Index und eine ausführliche Liste der verwendeten Quellen. Eine gute Intention ist dem Buch auch nicht abzusprechen und es braucht vermutlich Personen wie Rosling, um die breite Masse zu erreichen. Ich hatte mir vorab ein schwierig(er) zu lesendes Buch erwartet, aber es ist sehr zugänglich und plakativ geschrieben, daher kann ich das Buch durchaus als Basis für das Hinterfragen des eigenen Weltbilds empfehlen. Rosling würde mir vermutlich auch nicht widersprechen, wenn ich schreibe, dass das Buch zum weiteren Recherchieren anregt, denn mit den im Buch angeführten und von dem Team rund um Rosling gepflegten Dollar Street und den Gampinder Tools kann man sich über das Buch hinausgehend mit der Thematik beschäftigen.
  • Das flüssige Land, von Raphaela Edelbauer. Die Eltern der theoretischen Physikerin Ruth Schwarz sterben bei einem Unfall. Die Protagonistin landet auf Umwegen in einem österreichischen Dorf namens Groß-Einland, in dem ihre Eltern aufwuchsen, das offiziell aber gar nicht existiert. Die akademische Städterin versucht mehr über die Verankerung der Eltern in der dörflichen Gemeinde herauszufinden. Sie wandelt dabei auf den Spuren ihren Eltern und taucht in die Dorfgeschichte wie auch ihre eigene Familiengeschichte ein, während ein Loch das Dorf zu verschlingen verdroht.
    Die kafkaeske und sprachmächtige Geschichte beinhaltet genug Stoff für unterwartete Wendungen, handelt vom Nationalsozialismus und der Unerinnerungskultur Österreichs und spielt – so zumindest meine Interpretation – auf das Grubenunglück von Lassing an. 350 wortgewaltige Seiten.
  • Wolfssteig, von David Bröderbauer. Der studierte Biologe und praktizierende Botaniker Bröderbauer schreibt in diesem 263 Seiten umfassenden Roman über den fiktionalen, aber an Allentsteig angelehnten Truppenübungsplatz Wolfssteig im Waldviertel. Die Protagonisten sind Christian Moser und Ulrich Bruckner: Moser, ein bei einer Bundesheerübung Verletzter wird als Invalide zum Hausmeister eines Asylheims. Bruckner, ein aus der Großstadt zurückkehrender Biologe, forscht an Birkhühnern und soll diese an besagtem Truppenübungsplatz zählen, als dieser geschlossen wird.
    In diesem Buch geht es um diverse gesellschaftskritische Themen, von Naturschutz und Interessenkonflikten (u.a. zwischen Bauern, Jägern, Landwirten, Naturschützern und Ansässigen), über Landflucht und Orientierungslosigkeit, bis hin zu Fremdenfeindlichkeit und Religion. Bröderbauer schafft dies, ohne sich zum Moralapostel aufzuschwingen. Im ersten Teil gibt es mehrere mich irritierende Vorkommen von “als” vs “wie”, und streckenweise finde ich die Formulierungen nicht so gelungen. Besonders die sprachlichen Ausflüge in die Natur und die gezeichneten Gesellschaftsbilder finde ich aber ansprechend und regen zum Reflektieren an. Bröderbauer gelingt es, viele Themenkomplexe mit nur wenigen Protagonisten und ohne kompliziert konstruierter Geschichte drumherum anzusprechen.
  • Der Neubauer, von Cordula Simon. “Schlechten Menschen geht es immer gut”. Nach diesem – im Buch immer wieder kehrenden – Motto lebt der namenlose Ich-Erzähler dieses Buches, der sich irgendwie durchs Leben schlägt und mogelt. Der Lebenskünstler verfügt dabei über eine besondere Gabe: Alkohol lässt ihn die Gedanken seiner Mitmenschen lesen.
    Die 200 Seiten beinhalten Brachialrhetorik in schneller Sprache, schöne Wortkreationen und eine zeitkritische Auseinandersetzung mit Hipstern, Millenials, Blendern und den Unterschieden zwischen verschiedenen Gesellschaftsschichten. Es gibt viel Zynismus mit einer Portion Witz und einen Rundumschlag in dem jede(r) sein Fett ab kriegt (Vegetarier/Veganer, Dicke, Vermögende, Frauenrechte, …). Das Buch macht keine gute Laune, aber Spaß beim Lesen.
  • Der Hammer, von Dirk Stermann. In diesem 444-seiten umfassenden historischen Roman geht es um das Leben des Joseph Freiherr von Hammer-Purgstall. Joseph Hammer lebte von 1774 bis 1856 als ältester von acht Kindern und war ein sprachbegabter Freund und Anhänger der Orientalistik. Der übermäßig Selbstbewusste scheitert, vor allem aufgrund seiner undiplomatischen Art, an seinem Ziel, den Orient zu beruflich zu beackern. Im Zuge dessen erfährt man allerlei rund um die Politik des 18. und 19. Jahrhundert, etwa vom Wiener Kongress und den Napoleonischen Kriegen, aber auch das von Kot und Dreck geprägte Leben zu dieser Zeit. Der Jesuit Hammer trifft auf Staatsmänner wie Napoleon und Metternich, aber auch Künstler wie Beethoven und Haydn. Er notiert sich anerkennende Worte seine Person betreffend in seinem “Lobbuch” (eine Erfindung Stermanns, die ich aber besonders charmant finde).
    Ein auf realen Tatsachen basierendes und von Details strotzendes Buch mit Graz-Bezug (Grätz), das viele Fakten über die österreichische Geschichte beinhaltet. Mein Lesetempo war aufgrund der Faktendichte nicht so hoch wie üblich und es hat auch rund 40 Seiten gebraucht, um mich auf den Schreibstil einzustellen. Interessanterweise sind mir auch eine ganze Zeit lang die Guillemets in der französischen bzw. schweizerischen Verwendung aufgefallen. Gelesen habe ich es aber sehr gerne und empfand es als sehr gut recherchiertes Buch (laut Stermann hat er 1,5 Jahre für die Recherche und 2 Jahre für das Schreiben am Buch aufgewendet), verpackt in eine interessante Schreibweise. Absolut lesenswert.
  • Untenrum frei, von Margarete Stokowski. Vom Klappentext: “Wie frei und gleichberechtigt sind wir? […] Stokowski zeigt, wie sich Rollenbilder und Schamgefühle manifestieren, wie sie uns einschränken – und dass wir sie loswerden können.”
    Stokowski erzählt sehr offen über eigene Erfahrungen und Alltagsbeobachtungen. Es gelingt ihr, geschichtlichen Kontext sehr geschickt und zugänglich in insgesamt 7 Kapiteln zu verpacken. Ich habe die 252 Seiten sehr gerne gelesen, klare Leseempfehlung.
  • Heute hat die Welt Geburtstag, von Flake. Christian “Flake” Lorenz ist der Keyboarder von Rammstein. In diesem, an einen Schelmenroman angelehnten, Buch erzählt er aus seiner Zeit in der Punkband Feeling B. und später bei Rammstein. Die 352 Seiten sind schnell gelesen und in einem kurzweiligen und ein wenig verpeilten Stil gehalten. Es geht um die DDR, Punk sowie viel Feuer, Alkohol, Essen und Klauereien. Flake wirkt naiv aber auch selbstironisch und so verrückt sein (Band)Leben zu sein scheint, er scheint ein sympathischer Chaot zu sein.
  • Sex Story – eine Kulturgeschichte in Bildern, von Philippe Brenot und Laetitia Coryn. Eine Leihgabe eines Nachbars (danke C.!), ist dies ein Sachbuch in Comicform, das in 12 Kapiteln und rund 200 Seiten, angefangen vom Ursprung und Babylon, über das Mittelalter bis hin zum 20. Jahrhundert und einen Ausblick auf “Sex der Zukunft” das Thema Sexualität aufbereitet. Es ist schön und witzig umgesetzt und es gibt allerlei interessante Fakten rund um die Kulturgeschichte. Negativ aufgefallen ist mir lediglich die flappsige Formulierung, dass die “Zirkumzision [Anm.: männliche Beschneidung] ohne großen Schaden für die Männer weiterhin praktiziert wird”. Uff.
  • Tot geschwiegen – Warum es der Staat Mördern so leicht macht, von Thomas Treschner. Im Klappentext des Buches sind “Gerichtsmediziner schätzen, dass jeder zweite Mord unentdeckt bleibt” sowie “ein True-Crime-Buch mit vielen Fallbeispielen über das Versagen eines Systems, das sich lieber mit niedrigen Mordraten schmückt, als die Leichen im Keller zu suchen” zu lesen.
    Die Kritik am System kommt an und durch, allerdings sind die 214 Seiten in einem geschwätzigen und langatmigen Schreibstil mit unnotwendigen Details gehalten, die es für mich leider zu einer schlechten Mischung aus Sachbuch und Roman machen. Die Fakten sind zwar interessant, ebenso wie einiges geschichtliches zur Gerichtsmedizin, allerdings gibt es keinerlei Quellenangaben. Treschner kritisiert die österreichische, speziell die Wiener Gerichtsmedizin, allerdings wäre mir das in Form eines Artikels im Falter lieber gewesen, als mich durch diese über 200 Seiten zu quälen.
  • Als ich jung war, von Norbert Gstrein. In dem Buch gibt es zwei parallele Handlungsstränge aus der Sicht des Ich-Erzählers Franz, einmal in einem Hotelrestaurant in Tirol, wo sich Franz als Fotograf von Hochzeiten betätigt. Das andere Setting spielt in Wyoming/US, wo Franz als Skilehrer eines Professors arbeitet. Es gibt die Mutter von Franz, die ihren Selbstmord immer wieder ankündigt, einen Professor der sich das Leben nimmt, und eine Braut die sich am Tag ihrer Hochzeit mutmaßlich das Leben genommen hat. Franz ist einer der Verdächtigten, da er als einer der letzten die Braut lebend gesehen hat. Und Franz küsste ein (sehr) junges Mädchen gegen dessen Willen, als er selbst Anfang 20 war.
    In dem 349 Seiten umfassenden Buch geht es um Pädophilie, Verlogenheit, Lebenslügen, Familiengeschichten und “Frauen schubsen”, geschrieben in einer klaren und präzisen Sprache, literarisch wunderschön und durchaus auch krimi-ähnlich spannend zu lesen. Klare Leseempfehlung.
  • Darm mit Charme: Alles über ein unterschätztes Organ, von Giulia Enders. Ich hatte die 23. Auflage vom Stand 2014 mit rund 280 Seiten zur Verfügung (eine Leihgabe – und da bereits zurückgegeben fehlt diese auch am Foto oben – danke Silvia!). Ein paar wenige Fakten bzw. Neuigkeiten rund um unser Verdauungsorgan gab es für mich, aber insgesamt gab es mir zu viel Palaver, zu viele Wiederholungen und es war für mich langatmig zu lesen. Ein faktenreicher und dichter Zeitungsartikel wäre mir auch hier wieder einmal lieber gewesen. Ich kann mich des Eindrucks nicht erwehren, dass das Buch in Folge von Giulia Enders Science-Slam-Vortrag 2012 entstanden ist und in Folge gehypt wurde. So unterhaltsam der Vortrag sein mag, so sehr hat mich das Buch leider gelangweilt.
  • Herzklappen von Johnson & Johnson, von Valerie Fritsch. Alma und Friedrich Gruber bekommen einen Sohn namens Emil, der keinen Schmerz empfinden kann. Dieses Setting ist in eine Geschichte mit den Großeltern, rund um den Themenkomplex Krieg gebettet. Emil und die Großeltern wirken wie Antipoden, Gegengestalten der Familiengeschichte. Eine interessante Fragestellung, wie man einem Menschen der keinen körperlichen Schmerz fühlt, beibringt, was weh tut.
    Die 175 Seiten sind sprachlich dicht und intensiv und haben mich schwer begeistert. Klare Leseempfehlung.

Revisiting 2019

January 6th, 2020

Mika on the Drums, picture by Gregor

Mainly to recall what happened last year and to give thoughts and to plan for the upcoming year(s) I’m once again revisiting my previous year (previous editions: 2018, 2017, 2016, 2015, 2014, 2013 + 2012).

In terms of IT events, I attended Grazer Linuxdays 2019 and gave a talk (Best Practices in der IT-Administration, Version 2019) and was interviewed by Radio Helsinki there. With the Grml project, we attended the Debian Bug Squashing Party in Salzburg in April. I also visited a meeting of the Foundation for Applied Privacy in Vienna. Being one of the original founders I still organize the monthly Security Treff Graz (STG) meetups. In 2020 I might attend DebConf 20 in Israel (though not entirely sure about it yet), will definitely attend Grazer Linuxdays (maybe with a talk about »debugging for sysadmins« or alike) and of course continue with the STG meetups.

I continued to play Badminton in the highest available training class (in german: “Kader”) at the University of Graz (Universitäts-Sportinstitut, USI). I took part in the Zoo run in Tiergarten Schönbrunn (thanks to an invitation by a customer).

I started playing the drums at the »HTU Big Band Graz« (giving a concert on 21st of November). Playing in a big band was like a dream come true, being a big fan of modern Jazz big bands since being a kid and I even played the drums in a big band more than 20 years ago, so I’m back™. I own a nice e-drum set and recently bought a Zildjian Gen16 cymbal set and also own a master-keyboard (AKA MIDI keyboard) for many years, which is excellent for recording. But in terms of “living room practicality”, I wanted something more piano alike, and we bought a Yamaha CLP-645 B digital piano, which my daughters quite regularly use and now and then I manage to practice on it as well. As you might guess, I want to make music a more significant part of my life again.

I visited some concerts, including Jazz Redoute, Jazzwerkstatt Graz, Billy Cobham’s Crosswinds Project, Jazz Night Musikforum Viktring, Gnackbruch evening with AMMARITE, a concert of the Kärntner Sinfonieorchester, Steven Wilson’s To The Bone tour, Sting’s My Songs tour and the Corteo show of Cirque du Soleil. I took some local trips in Graz, including a Murkraftwerk Graz tour and a »Kanalführung«.

Business-wise it was the sixth year of business with SynPro Solutions, and we moved the legal form of our company from GesnbR to GmbH. No big news but steady and ongoing work with my other business duties Grml Solutions and Grml-Forensic.

I also continued with taking care of our kids every Monday and half another day of the week – which is still challenging now and then with running your own business, but so absolutely worth it. With a kid going to school, it was quite some change for my schedule and day planning as well. Now having a fixed schedule for most of the days, the Sonos soundbox wakes us up with Ö1 news and its Ö1 signature tune Monday to Friday. Thanks to Pavlovian conditioning, when waking up on Saturdays and Sundays I also hear the Ö1 signature tune in my head while no radio is present then. :)

I tried to minimize my Amazon usage as much as possible and will try to continue doing so in 2020 as well.

I had quite some troubles with my Vespa PX125, hopefully things are sorted out nowadays though. *knockingonwood*

After being ~20 years in the Usenet (mostly de.* + at.* + tu-graz.*) I pretty much gave it up.

Book reading became more of a habit again, and I managed to complete 42 books (see Bookdump 01/2019 and Bookdump 02/2019). I noticed that what felt like good days for me always included reading books, and want to keep my reading pace for 2020.

Bookdump 02/2019

December 31st, 2019

Foto vom Buchregal

Als Fortführung von Bookdump 01/2019 hier ein weiterer Bookdump, und zwar über jene Bücher die ich im verbleibenden, zweiten Teil von 2019 fertig-gelesen habe:

  • Gespräche mit Freunden, von Sally Rooney (via Süddeutsche Zeitung). Auf den fast 400 Seiten geht es um Beziehungsgespräche zwischen Frances, ihrer Freundin Bobbi, der Journalistin Melissa und deren Mann Nick. Beobachtungen rund um Liebe, Sex, Freundschaft, Kultur und Politik, speziell aus der Sicht von Millennials. Ich hatte den Eindruck, es geht irgendwie auch um ziellose, teils gefühllose Menschen die die Welt (und sich?) hassen. Das Buch entstand angeblich in 3 Monaten und wurde dann auch ziemlich gehypt. Auch wenn mir das Ende des Buches ein wenig unerwartet langweilig vorgekommen ist, ich habe das Buch gerne gelesen.
  • Die 4-Stunden Woche, von Timothy Ferriss. Auf 341 Seiten schreibt Ferriss über Arbeitsminimierung, Profitmaximierung und diverse Berufstipps. Über seine Erfindungen wie den DEALMAKER (D wie Definition, E wie Eliminieren, A wie Automation und L wie Liberation/Befreiung). Ich reflektiere gerne über den Wert von Zeit und was mir wichtig ist, deswegen hat mir das Buch nicht wirklich neue Erkenntnisse gebracht. Für mich war es am Ehesten noch eine gute Erinnerung, das Paretoprinzip (80/20 Regel) und das Parkinsonsche Gesetz (“Arbeit dehnt sich in genau dem Maß aus, wie Zeit für ihre Erledigung zur Verfügung steht”) wieder bewusster im Blick zu haben. Ansonsten habe ich das Buch aber als furchtbar kapitalistisch wahrgenommen und dieser Tweet von jezebrowski passt auch ganz gut dazu (danke für den wiedergefundenen Link, Darsha). Der Aufruf zum bewussten Verzicht von Tagespolitik grenzt dann für mich allerdings schon an bewusste Verblödung. Die Zeit seiner Leserinnen und Leser scheint Ferriss auch nicht zu schätzen, die 341 Seiten hätte man locker in unter 100 Seiten lesbarer gestalten können.
  • Der Richter und sein Henker, von Friedrich Dürrenmatt. Inspiriert durch Karls Review habe ich das Buch (in der mir vorliegenden Ausgabe von 2001 118 Seiten stark) nochmal gelesen, das letzte Mal dürfte allerdings noch zu meiner Schulzeit vor ca. 20 Jahren gewesen sein. Ich habe Dürrenmatt eigentlich immer gerne gelesen, interessanterweise hat es mich diesmal aber nicht vom Hocker gehaut. Vermutlich bin ich zu sehr von aktueller Literatur geprägt. Ich weiß allerdings nicht, wie ich damals™ die philosophischen Ausflüge, die Kritik am Kriminalroman und die Anspielungen auf den Nationalsozialismus wahrgenommen habe. Insofern war es eine gute Übung mit der Erkenntnis, dass ich einige Bücher mit einigem Abstand nochmal lesen sollte, um die eigene Wahrnehmung und (Un-)Reife zu kontrollieren.
  • Perfektionismus, von Raphael M. Bonelli. Mit Hilfe von 77 Fallbeispielen aus seiner eigenen Psychiater-Praxis beschreibt Bonelli auf 333 Seiten die Probleme rund um Perfektionismus und warum diese verzeihliche Schwäche nicht als positiv behaftet wahrgenommen werden soll und darf. Die Patientengeschichten dienen als gutes Vehikel für die eigenen Vergleiche und das Reflektieren. Immer wieder wird Gesellschaftskritik eingestreut, von der Leistungsgesellschaft, über Schlankheits- und Schönheitswahn sowie Helikoptereltern, bis hin zu Karōshi. Ich wünschte mir einen Index und so etwas wie Zusammenfassungen an den Kapitelenden, um das das Buch auch im Nachhinein noch besser verwenden zu können. Nichtsdestotrotz ein lesenswertes Buch rund um selbstorientierten, sozial vorgeschriebenen und extravertierten Perfektionismus.
  • Der Ursprung der Welt, von Liv Strömquist. Eine Leihgabe eines Nachbars (danke C.!), geht es in dem Buch in Form eines Comics um das weibliche Geschlechtsorgan. Die historische Konstruktion der Vulva wird auf 143 Seiten beleuchtet. Während sich die Graphic Novels für mich – zumindest bisher – noch nicht wirklich erschlossen haben, passt dieses Format in diesem Fall durchaus. Ein kluges Buch, das auch für den Sexualkunde-Unterricht geeignet wäre und definitiv nicht nur für junge Frauen lesenswert ist.
  • Permanent Record, von Edward Snowden. Das Buch wurde am 17. September veröffentlicht, und ich habe die 425 Seiten dann auch gleich bis zum darauffolgenden Wochenende verschlungen. Man bekommt einige Hintergrundinformationen, die sich wunderbar als Ergänzung zum Film Citizenfour eignen, und erfährt im ersten Drittel einiges zum Hintergrund und der Biografie Snowdens. Der zweite Teil geht dann stärker auf die Geschichte ein (finde ich persönlich den schwächsten Teil), bis es im dritten und letzten Teil um das Whistleblowing Snowdens an sich geht. Auch für Nicht-Techniker lesbar, und speziell die Gedanken rund um den Wert von Metadaten – die häufig vernachlässigt werden, man sorgt sich vielfach nur um den Nachrichteninhalt – regen zum Nachdenken an. Für mich hätte es gerne noch inhaltlicher und technischer sein dürfen, fand es aber trotzdem lesenswert. Besonders für Leute die Snowden nicht so im Detail verfolgt haben (Ende des Wortspiels), eine durchaus empfehlenswerte Lektüre.
  • Karte und Gebiet, von Michel Houellebecq. In diesem Buch geht es um den Künstler und Einzelgänger Jed Martin. Streckenweise hatte ich das Gefühl, dass es gegenüber Houellebecqs Plattform und Elementarteilchen zu “brav” und langweilig ist. Dass Houellebecq sich selbst ins Spiel bringt ist ein interessantes Gedankenspiel. Aus dem Künstlerroman entwickelt sich gegen Ende hin ein Krimi, was aber eine “SSL-Double-Layer-Codierung mit 128bit” sein soll, würde ich nur zu gerne erfahren (*kopfschüttel*). Die Andeutungen und Beobachtungen rund um Sterbehilfe, Tourismus und die (französische) Gesellschaft sowie einige wunderbare Wortspiele speziell auf den letzten ~50 Seiten haben das Buch dann aber in einem besseren Licht hinterlassen, als ich es mittendrin empfand.
  • Wunschloses Unglück, von Peter Handke. Der umstrittene Nobelpreisträger schreibt in diesem Buch über den Selbstmord seiner Mutter Maria. Ein interessantes und durchaus lesenswertes Werk aus dem Handke-Kosmos. Die 132 Seiten umfassende Ausgabe mit Text und Kommentar aus der Suhrkamp BasisBibliothek kann ich durchaus empfehlen (für Österreicher sind die Randbemerkungen zu österreichischen Begriffen besonders unterhaltsam), sie liefert interessante Ergänzungen und Zusatzinformationen zum Text.
  • Die unerträgliche Leichtigkeit des Seins, von Milan Kundera. Gilt mit seinen 373 Seiten als das Lieblingsbuch von Werner Kogler und es geht um Affären, Treue und Beziehungen, mit einem philosophischem Touch. Es ist schön™, aber besonders anfangs war für mich noch irgendwie spürbar, dass ich es nicht im Original (tschechisch) lese, und so richtig gefesselt hat es mich da noch nicht. Ab Seite 199, dem 5. Teil wurde es allerdings wunderbar und ich bin froh, dass ich doch drangeblieben bin. Lesenswert.
  • Kinder stärken, von Caroline Heyn. Bei Amazon veröffentlicht, nur 48 Seiten dünn (was ich per-se nicht schlecht finde), aber unschön gesetzt, selbst auf so wenigen Seiten findet man mehrere Rechtschreibfehler und schlußendlich liest es sich wie ein Ghostwriter-Buch voller Trivialitäten und no-na-net-Inhalten. Bei der Büchersendung erLesen wäre es ein klassischer Tischbein-Kandidat. Finger weg.
  • Wo leben wir denn?, von Tarek Leitner. Der Untertitel “Glückliche Orte. Und warum wir sie erschaffen sollten” beschreibt ganz gut, worum es in dem rund 200 Seiten dicken Buch geht. Wir vernichten unseren Wohnraum ohne Rücksicht auf Verluste, fahren für ein paar Wochen im Jahr auf Urlaub, wo es dann superschön sein muß, aber das restliche Jahr ignorieren wir die uns umgebende Hässlichkeit an Lärmschutzwänden, Einkaufsparadiesen und weiteren versiegelten Flächen. Der Quadradatmeter-Anspruch pro Person geht immer weiter nach oben. Tarek Leitner beschreibt das Dillema des Lebens am Land (mit nicht vorhandener Infrastruktur und dem Wunsch nach Grünem, aber dann zwei Autos pro Haushalt), die Zersiedelung und was sonst noch so speziell in Österreich seiner Meinung nach falsch läuft. Viele kluge Gedanken, ein bisschen verschwurbelt zu lesen, aber anregend.
  • Peter Handke im Gespräch, mit Hubert Patterer und Stefan Winkler, 2019 von der Kleinen Zeitung neu aufgelegt. Ich lese gerne Interviews mit und Gedankengänge von Revoluzzern, Unangepassten und Reflektierten, und die Neuauflage dieses Buches wollte ich mir nicht entgehen lassen. Leicht und flüssig zu lesen, aber schlussendlich doch kaum neue Erkenntnisse für mich (außer vielleicht, dass Handke gerne ein Maschinengewehr bedienen können möchte, uff). Gute Kost für einen Nachmittagskaffee, muss man aber nicht gelesen haben.
  • It doesn’t have to be crazy at work, von Jason Fried und David Heinemeier Hansson. Rein von Aufmachung, Titel und Beschreibung her hätte ich es mir nie gekauft, aber auf starke Empfehlung eines Arbeitskollegen hin (danke, Alex!) habe ich es mir doch geholt. Das 225 Seiten umfassende Buch könnte man beinahe als eine bessere Version des “Die 4-Stunden Woche” (siehe oben) bezeichnen, ohne allzu viel Palaver und Ausschmückungen. Geschrieben aus der Sicht eines SaaS-Unternehmers ist natürlich nicht alles für alle umsetzbar, aber man kann es als Denkanstoß für eine bessere Firmenkultur im eigenen Unternehmen bzw. der Jobauswahl betrachten. Viele sinnvolle Empfehlungen (wenn man die amerikanischen vs. österreichischen Urlaubsansprüche einmal außen vor lässt), schöne Sätze wie “If it’s easier for work to claim a Sunday than for life to borrow a Thursday, there ain’t no balance”. Es gibt genug “food for thought” und zum Reflektieren, ich gebe den Lesetipp somit gerne weiter.
  • Herkunft, von Saša Stanišić. Der Gewinner des deutschen Buchpreises 2019 hat mit “Herkunft” ein schönes Buch geschrieben, in dem er ein schweres Thema auf 360 Seiten leichtfüßig umgesetzt hat. Sprachlich fantastisch, wunderschöne Wortspiele, berührende – häufig auch fragmentarische – Szenen und viel Stoff für das Reflektieren, Auseinandersetzen mit Herkunft und auch den Geschichtsunterricht. Der letzte Teil (Kapitel “Der Drachenhort”) mit dem Rollenspiel und den Sprungmarken im Stil von “wenn du dich für foo entscheidest, lies auf Seite 353 weiter, wenn du für bar bist lies weiter auf Seite 350)” ist leider nicht mein Format (wie wurde das eigentlich im E-Book-Format umgesetzt?). Das hat mir damit leider einen schalen Nachgeschmack hinterlassen. Trotzdem ein Buch, das ich großteils sehr gerne gelesen habe, und vielleicht auch einfach danach schreit, später einmal noch ein weiteres Mal gelesen zu werden. Leseempfehlung.
  • Genie & Arschloch: Licht- und Schattenseiten berühmter Persönlichkeiten, von Manfred Chobot herausgegeben. Das Buch beleuchtet auf rund 280 Seiten Berühmtheiten wie u.a. Simone de Beauvoir, Johannes Brahms, Bertold Brecht, Ernest Hemingway, Wassily Kandinsky, Pablo Picasso und Richard Wagner und deren Schattenseiten, kapitelweise beschrieben von jeweils abwechselnden AutorInnen. Während ich die erste Hälfte des Buches noch als lesenswert empfand – besonders erwähnenswert ist Helmut Rizys Beitrag über Johannes Brahms, Hans Rott, Anton Bruckner und Gustav Mahler – las sich speziell die zweite Hälfte für mich teilweise wie ein persönlicher Rachefeldzug, gemischt mit Neid und dem Drang “etwas böses zu finden”. Über einige der Persönlichkeiten und deren “Schwierigkeiten” war ich bereits vorab informiert, einige interessante Informationen und Ergänzungen gab es für mich, aber so richtig erkenntnisreich war das Buch dann schlussendlich nicht. Speziell die teilweise doch irgendwie substanzlosen Anklagen und das Verhältnis der beschriebenen Personen und deren Probleme stehen für mich nicht wirklich in Relation zueinander. Hat dann leider doch irgendwie einen schalen Nachgeschmack bei mir hinterlassen.
  • Der Trost runder Dinge, von Clemens Setz. Die österreichische Literaturwissenschaftlerin Daniela Strigl (die man in Graz u.a. bei der Literatur-Show Roboter mit Senf im Literaturhaus Graz trifft) hat zum Berliner Literaturpreis 2019 eine wunderbare Laudatio auf Clemens Setz gehalten (“Morbus Setz, Laudatio in acht Symptomen”), die in manuskripte #224 abgedruckt wurde (den Text habe ich leider nicht online gefunden). Frau Strigl trifft für mich darin den Nagel auf den Kopf. Die acht von Frau Strigl angeführten Symptome (Tinnitus, Anthropophobie, Halluzinationen, Übelkeit, Kopfschmerz, Hypersensibilität, Dissoziation und Schwindel) beschreiben die Fähigkeit von Setz, Alltagsbeobachtungen mit Wortwitz, Realitätsverschiebungen und Wahnsinn zu kombinieren. Der Schreibstil von Setz trifft einfach genau meinen Geschmack, und auch dieses 315 umfassende Buch ist für mich eine ganz klare Leseempfehlung.
  • Die lange Reise: Tagebuch einer Astronautin, von Samantha Cristoforetti. Auf dieses Buch habe ich lange gewartet, weil ich von der italienischen Originalfassung wusste und die deutsche Übersetzung dann sehnsüchtig erwartete. Cristoforetti war 200 Tage auf der ISS, im Buch geht es in großen Teilen um den Ausbildungsteil den (angehende) AstronautInnen durchlaufen, und dann – vergleichsweise kurz, aber doch – um den Aufenthalt auf der ISS. Ich habe einiges interessantes gelernt (Urin-Problematik dank Schwerelosigkeit, Hornhaut wie ein Baby auf den Füßen weil sie nicht belastet sind, aber auch einiges rund um Raumanzug, russische vs. europäische/amerikanische Technologie,…) und mein Interesse an Weltraumtechnologie wurde durch das Buch definitiv gesteigert – Kulturauftrag gelungen. Leider ist das Buch fast durchgehend in kursiver Schrift gesetzt (wer bitte kam auf diese blöde Idee?) und entsprechend anstrengend zu lesen. Sprachlich war es für mich relativ mühsam (und nach einem Buch von Setz ein regelrechter Kulturschock) – es gibt viele unschöne Formulierungen (die vielleicht aber einfach auf die Übersetzung zurückzuführen sind?) und ich musste mich daher streckenweise dazu zwingen, die fast 500 Seiten durchzuhalten. Gerne hätte es für mich auch noch mehr technisches rund um die eingesetzten Computer, Kommunikationstechnologie etc. sein dürfen. Sehr interessant fände ich auch mehr Informationen zum Lebens nach dem Ausflug in den Weltraum (welche Probleme erwarten einen dann, welche Verpflichtungen gibt es,….). Nichtsdestotroz, es gibt bisher keine 220 Menschen die auf der ISS waren, und dieses Buch lässt einen ein wenig daran teilhaben. Großen Respekt auch für Cristoforetti, die auf den ~470 Seiten keinerlei Überheblichkeit durchblicken lässt, gleichzeitig ihre Faszination für das Thema und einen durchaus auch privaten Einblick in das ungewöhnliche Leben in 400km Höhe mit uns teilt. Insofern dürfte es eine Pflichlektüre für all jene sein, die sich für den Weltraum – und sei es nur pe­ri­pher – interessieren. Cristoforetti war übrigens auch beim Omega Tau Podcast, Folge 331 – Samanthas Lange Reise.
  • 2029 – Geschichten von morgen, mit Erzählungen von elf Autorinnen und Autoren. Ich bin zwar ein Fan von Black Mirror, tue mir aber mit dem Genre Science Fiction/Zukunftsroman nach wie vor schwer. Dieses Buch schafft für mich den Spagat zwischen sprachlich ansprechend und dem Thema “Zukunftsvision” so halbwegs. Die Schreibfehler im Buch waren für meine Ansprüche für Suhrkamp ein wenig unerwartet (wird dann hoffentlich mit einer zweiten Auflage korrigiert) und einige der Geschichten waren für mich eher durchschnittlich, dafür haben andere AutorInnen um so bessere abgeliefert.

Mein Fazit

Aus 24 für 2019 vorgenommenen Büchern sind es dann 42 (ha!) geworden. Von diesen 42 Büchern wurden 19 von Frauen und 22 von Männern geschrieben (der Offset zu 42 kommt durch “2029 – Geschichten von morgen”, das von Frauen und Männern geschrieben wurde). Viele Bücher haben mir gut gefallen, aber wenn ich Favoriten nennen müsste zählen dazu definitiv “Vater unser” von Angela Lehner und “Der Trost runder Dinge” von Clemens Setz.

Bundesdeutsch in Kinderliteratur

August 30th, 2019

Ende 2018 haben meine ältere Tochter und ich “Jim Knopf” von Michael Ende für uns entdeckt, genauer die kolorierten Neuausgaben von “Jim Knopf und Lukas der Lokomotivführer” und “Jim Knopf und die Wilde 13” (schwere Empfehlung übrigens!).

Ich ersetze das Wort “gucken” beim Vorlesen schon seit mehreren Jahren ganz automatisch durch “schauen“, mittlerweile nicht mehr nur beim Vorlesen für die Kinder, sondern auch beim Lesen “meiner” Bücher. :) Da wir jeweils ca. 20 Seiten von Jim Knopf beim Abendprogramm gelesen haben, kam da einiges an Text zusammen, und mir ist dabei wieder aufgefallen, wie viel bundesdeutsches Hochdeutsch wir als Österreicher abbekommen. Seither hab ich mir spasses­hal­ber einmal jene bundesdeutschen Wörter notiert, die mir in (Kinder)Büchern aufgefallen sind.

In Klammer jeweils österreichische Pendant(s) (und bitte nicht zu ernst und genau nehmen, speziell jene mit “*” markierten :)):

  • Abendbrot (Abendessen)
  • Apfelsine (Orange)
  • Aprikose (Marillen)
  • Bonbons (Zuckerl)
  • Brötchen (Semmel(n))
  • Bürgersteig (Gehweg/Gehsteig)
  • Eimer (Kübel)
  • Eingepullert (Angeludelt)
  • Federtasche (Federpenal)
  • Flicken (Picken/Kleben*)
  • Flur (Vorraum/Gang)
  • Fluse (Fussel/Wuzerl/Flankerl/Fuzel)
  • Gardine (Vorhang)
  • Gülle (Jauche*)
  • Heimatkunde (Sachunterricht*)
  • Johannisbeere (Ribisel)
  • Junge (Bub)
  • Kaminfeger (Rauchfangkehrer)
  • Karneval (Fasching)
  • Kissen (Polster)
  • Lappen (Putzfetzen)
  • Lecker (Gschmackig, gut/guat)
  • Marmeln (Murmeln)
  • Metzger (Fleischhauer/Fleischhacker)
  • Möhre (Karotte)
  • Mücke (Gelse)
  • Mülleimer (Mistkübel)
  • Müllkippe ((Müll)De­po­nie)
  • Pfannkuchen (Palatschinken*)
  • Pflaumen (Zwetschke*)
  • Pflaumenmus (Powidl)
  • Pfütze (Lacke)
  • Plätzchen (Keks)
  • Postbote (Postler)
  • Pult (Schreibtisch)
  • Rasenspritzer (Rasensprenger)
  • Rente (Pension)
  • Rote Bete (Rahner, Rone,…)
  • Saft ist alle (Saft ist leer/aus)
  • Sahne/Schlagsahne (Obers/Schlagobers/)
  • Schiebkarre (Scheibtruhe)
  • Schippe (Schaufel)
  • Schulranzen (Schultasche)
  • Sonnabend (Samstag)
  • Stachelbeere (Mauchale, Mungatzen,…*)
  • Tannenzapfen (Tschurtschen*)
  • Tüte (Sackerl)
  • Weihnachtsmann (Christkind(l)*)

Bookdump 01/2019

August 9th, 2019

Foto vom Buchregal

Mein Ziel für 2019 war es, mindestens 24 Bücher, also im Schnitt 2 Bücher pro Monat, zu lesen. Das Ziel habe ich mit Anfang/Mitte August früher als erwartet erreicht. Mir fehlen leider ein wenig Zeit/Motivation und Praxis für ausführlichere Bücher-Review, und wenn ich es mir nicht gleich aufschreibe, verliere ich auch den Überblick über die bereits gelesenen Bücher. Daher hiermit der Versuch in Form eines Bookdumps, angelehnt an jene wie ich sie von z.B. Julius Plenz kenne und schätze.

Hiermit also ein Zwischenstand über jene Bücher, die ich bisher in diesem Jahr gelesen habe:

Der Preis der Macht, von Lou Lorenz-Dittlbacher. Die Autorin kennt man u.a. aus ZiB2/ORF, ihr Buch gibt einen interessanten Einblick in das Leben von Spitzenpolitikerinnen. Spannende Interviews, gut und flüssig geschrieben, lesenswert.

Neujahr, von Juli Zeh. Die Geschichte von Henning und seinen Panikattacken war mein Einstieg in den Kosmos von Juli Zeh, in dessen Folge ich mir gleich ein weiteres Buch von ihr besorgt habe. Absolut lesenswert.

Die 5 Dysfunktionen eines Teams, von Patrick Lencioni. Eine Leihstellung eines Nachbarn (das einzige Buch das in obigem Foto fehlt). Es geht um Vertrauen, Konflikte, Engagement, Verantwortung, Ergebnis-Orientierung,… Viel no na ned und amerikanischer Stil, ist ein wenig an einen Roman gehalten, kann aber z.B. nicht mit dem “Phoenix Project” von Gene Kim mithalten. Es liest sich aber schnell an einem Abend und ein paar Gedanken zum Reflektieren habe ich dann doch mitgenommen.

Schluss mit Schuld (Unsere Reise zum Holocaust und zurück), von Lisa Gadenstätter und Elisabeth Gollackner. Lisa Gadenstätter kennt man ebenfalls aus dem ORF, und es gibt zum Buch auch einen DOKeins Film, den ich mir nach dem Lesen des Buches angesehen habe. Interessante Zeitzeugengespräche und lesenswert.

Feministin sagt man nicht, von Hanna Herbst. Ein kluges feministisches Buch.

weg, von Doris Knecht. Die Geschichte rund um eine verschwundene Tochter, ihre getrennten Eltern und verschiedene Lebensentwürfe. Die mindestens 3 Rechtschreibfehler sind dann hoffentlich ab der 2. Auflage, zu der es hoffentlich kommt, Vergangenheit.

Jesolo, von Tanja Raich. Depressive Grundstimmung und definitiv lesenswert, aber man sollte es eher nicht – so wie ich es gemacht habe – im Urlaub in Jesolo lesen.

Oma lässt grüßen und sagt, es tut ihr leid, von Fredrik Backman. Schönes Buch das aufzeigt, dass man nicht immer wie alle anderen sein muss, und vielleicht auch nicht jede(r) so ist, wie er/sie auf den ersten Blick zu sein scheint.

Alte weisse Männer, von Sophie Passmann. Interviews mit Sascha Lobo, Christoph Amend, Robert Habeck, Kai Diekmann, Micky Beisenherz und anderen. Ist schnell gelesen und regt stellenweise zum Nachdenken an.

Plattform und Elementarteilchen, von Michel Houellebecq. Ich wollte mich endlich mal in den Kosmos von Houellebecq begeben, und auch wenn seine Schreibweise stellenweise anstrengend obszön ist, fand ich beide Bücher sehr lesenswert (danke an Bernd Haug für die Beratung zur richtigen Reihenfolge der Bücher :)).

Alle Toten fliegen nach Amerika, von Joachim Meyerhoff. Wunderbares Buch, ich möchte die weiteren Teile unbedingt ebenfalls lesen.

Die Liebe zur Zeit des Mahlstädter Kindes, von Clemens J. Setz. Mir hat Clemens Setz mit seinem “Die Stunde zwischen Frau und Gitarre” (ein fantastisches Buch!) wieder die Regelmäßigkeit des Buchlesens gebracht und ich musste mir unbedingt mehr von ihm besorgen. Immer wieder blitzt das durch, was ich an Clemens Setz so schätze, aber es kann für mich nicht mit der “Die Stunde zwischen Frau und Gitarre” mithalten, vor allem weil ich mich mit dem Format der einzelnen (Kurz-)Geschichten nicht wirklich identifizieren konnte. Nichts­des­to­trotz lesenswert.

Gruber geht, von Doris Knecht. Das Buch war mein Einstieg in den Schreibstil von Doris Knecht, kein wirklich bleibender Eindruck, aber ich hab’s gern gelesen.

Warum französische Kinder keine Nervensägen sind, von Pamela Druckerman. Das Buch habe ich über ein Interview mit der Autorin zu ihrem neuen Buch (“Vierzig werden à la parisienne: Hommage ans Erwachsensein”) entdeckt. Selbst wenn man sich nicht mit allen Ansätzen und Vorschlägen identifizieren kann, fand ich das Buch lesenswert und kann es jedem Elternteil empfehlen.

Quasikristalle, von Eva Menasse. Ich kannte und schätze den Stil von Eva Menasse bereits aus ihrem Buch “Tiere für Fortgeschrittene”, und auch dieses Buch hat mich nicht enttäuscht. Das Leben von (Ro)Xane Molin, einer schlechten Verliererin aus einer bürgerlichen Familie, wird aus verschiedenen Blickwinkeln in 13 Kapiteln erzählt. War für mich nicht immer ganz einfach den Namen zu folgen (wer mit wem, wer ist relevant,…) und es gab ein paar schwächere Kapitel, dafür waren einige andere Kapitel umso umwerfender.

Meine wundervolle Buchhandlung, von Petra Hartlieb. Ich wurde über ein Interview mit Frau Hartlieb im Standard auf sie und ihre Buchhandlung aufmerksam. Das kleinformatige Buch liest sich schön und schnell, und gibt einen kleinen Einblick in das harte Leben einer Kleinunternehmerin im Umfeld einer Buchhandlung.

Kurz & Kickl, ihr Spiel mit der Macht, von Helmut Brandstätter. Ich wollte das Buch eigentlich nicht kaufen, nachdem es durch die Medien so gehypt wurde, aber ein Spontankauf im Urlaub in einer meiner Lieblingsbuchhandlungen war stärker als ich. Für mich nicht sonderlich erkenntnisreich, auch wenn es stellenweise geschichtlich interessant war, und das Buch musste wohl extrem dringend in die Druckerpresse, keines meiner Bücher aus 2019 hatte so viele Rechtschreibfehler wie dieses.

Supergute Tage oder Die sonderbare Welt des Christopher Boone, von Mark Haddon. Das Buch wurde in einer Literatursendung von Dirk Stermann als das Lieblingsbuch von ihm und seiner Tochter erwähnt. Wunderschön geschriebener Einblick in das Gedankenleben eines Autisten, werde das Buch sicher mal meinen Kindern auf das Nachtkasterl legen.

Die Daten, die ich rief, von Katharina Nocun. Ich hab das Video zu ihrem Vortrag ‘Archäologische Studien im Datenmüll’ vom 35C3 gesehen und das Buch von einem Bruder vererbt bekommen. Es liest sich leicht und flüssig, bietet einen guten Einstieg in das Thema, man kann es also wunderbar auch Nicht-Technikern in die Hand drücken.

Liebe Mama, ich lebe noch!, von Ernst Gelegs. Entdeckt via Erlesen am 28.05.2019. Die rund 100 Briefe eines Soldaten an seine Mutter und Frau geben einen Einblick in das Kriegsgeschehen. Berührend und lesenswert.

Gebrauchsansweisung für Israel und Palästina, von Martin Schäuble. Für den Fall, dass ich im Zuge der DebConf20 in die Region reisen sollte, war dieses Buch als Einstieg gedacht. Es geht ums Wohnen, Leben, Essen und Trinken sowie die Kultur und den israelisch-palästinensischen Konflikt, ohne dass der Autor zu stark Partei zu ergreifen versucht. Gut geschrieben mit ein paar Tipps die ich mir rausgeschrieben habe.

Ich und die Anderen, von Isolde Charim. Eine Leseempfehlung von Gregor Herrmann, die ich nur weitergeben kann. Die Philosophin Isolde Charim kennt man u.a. von den Kolumnen im Falter, und schreibt klug über die Pluralisierung unserer Gesellschaft. Keine einfache Kost, aber absolut lesenswert.

Vater unser, von Angela Lehner. Entdeckt im Album vom Standard am 08.06.2019. Im Buch geht es um die Ich-Erzählerin Eva, die in das psychiatrische Zentrum des Otto-Wagner-Spitals eingeliefert wird. Sensationelle Formulierungen und wunderschöne Alltagsbeobachtungen, ich habe mich wohlgefühlt wie bei Clemens Setz. Ein fantastisches Buch. Ich hoffe, da kommt noch mehr von Angela Lehner.

PS: Mein Bücherregal ist weiterhin gut mit noch ungelesenen Büchern gefüllt, wer aber Leseempfehlungen für mich hat, bitte gerne an z.B. bookdump (at) michael-prokop.at

Some useful bits about Linux hardware support and patched Kernel packages

July 31st, 2019

Disclaimer: I started writing this blog post in May 2018, when Debian/stretch was the current stable release of Debian, but published this article in August 2019, so please keep the version information (Debian releases + kernels not being up2date) in mind.

The kernel version of Debian/stretch (4.9.0) didn’t support the RAID controller as present in Lenovo ThinkSystem SN550 blade servers yet. The RAID controller was known to be supported with Ubuntu 18.10 using kernel v4.15 as well as with Grml ISOs using kernel v4.15 and newer. Using a more recent Debian kernel version wasn’t really an option for my customer, as there was no LTS kernel version that could be relied on. Using the kernel version from stretch-backports could have be an option, though it would be our last resort only, since the customer where this applied to controls the Debian repositories in usage and we’d have to track security issues more closely, test new versions of the kernel on different kinds of hardware more often,… whereas the kernel version from Debian/stable is known to be working fine and is less in a flux than the ones from backports. Alright, so it doesn’t support this new hardware model yet, but how to identify the relevant changes in the kernel to have a chance to get it supported in the stable Debian kernel?

Some bits about PCI IDs and related kernel drivers

We start by identifying the relevant hardware:

root@grml ~ # lspci | grep 'LSI.*RAID'
08:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID Tri-Mode SAS3404 (rev 01)
root@grml ~ # lspci -s '08:00.0'
08:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID Tri-Mode SAS3404 (rev 01)

Which driver gets used for this device?

root@grml ~ # lspci -k -s '08:00.0'
08:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID Tri-Mode SAS3404 (rev 01)
        Subsystem: Lenovo ThinkSystem RAID 530-4i Flex Adapter
        Kernel driver in use: megaraid_sas
        Kernel modules: megaraid_sas

So it’s the megaraid_sas driver, let’s check some version information:

root@grml ~ # modinfo megaraid_sas | grep version
version:        07.703.05.00-rc1
srcversion:     442923A12415C892220D5F0
vermagic:       4.15.0-1-grml-amd64 SMP mod_unload modversions

But how does the kernel know which driver should be used for this device? We start by listing further details about the hardware device:

root@grml ~ # lspci -n -s 0000:08:00.0
08:00.0 0104: 1000:001c (rev 01)

The 08:00.0 describes the hardware slot information ([domain:]bus:device.function), the 0104 describes the class (with 0104 being of type RAID bus controller, also see /usr/share/misc/pci.ids by searching for ‘C 01’ -> ’04`), the (rev 01) obviously describes the revision number. We’re interested in the 1000:001c though. The 1000 identifies the vendor:

% grep '^1000' /usr/share/misc/pci.ids
1000  LSI Logic / Symbios Logic

The `001c` finally identifies the actual model. Having this information available, we can check the mapping of the megaraid_sas driver, using the `modules.alias` file of the kernel:

root@grml ~ # grep -i '1000.*001c' /lib/modules/$(uname -r)/modules.alias
alias pci:v00001000d0000001Csv*sd*bc*sc*i* megaraid_sas
root@grml ~ # modinfo megaraid_sas | grep -i 001c
alias:          pci:v00001000d0000001Csv*sd*bc*sc*i*

Bingo! Now we can check this against the Debian/stretch kernel, which doesn’t support this device yet:

root@stretch:~# modinfo megaraid_sas | grep version
version:        06.811.02.00-rc1
srcversion:     64B34706678212A7A9CC1B1
vermagic:       4.9.0-6-amd64 SMP mod_unload modversions
root@stretch:~# modinfo megaraid_sas | grep -i 001c
root@stretch:~#

No match here – bingo²! Now we know for sure that the ID 001c is relevant for us. How do we identify the corresponding change in the Linux kernel though?

The file drivers/scsi/megaraid/megaraid_sas.h of the kernel source lists the PCI device IDs supported by the megaraid_sas driver. Since we know that kernel v4.9 doesn’t support it yet, while it’s supported with v4.15 we can run "git log v4.9..v4.15 drivers/scsi/megaraid/megaraid_sas.h" in the git repository of the kernel to go through the relevant changes. It’s easier to run "git blame drivers/scsi/megaraid/megaraid_sas.h" though – then we’ll stumble upon our ID from before – `0x001C` – right at the top:

[...]
45f4f2eb3da3c (Sasikumar Chandrasekaran   2017-01-10 18:20:43 -0500   59) #define PCI_DEVICE_ID_LSI_VENTURA                 0x0014
754f1bae0f1e3 (Shivasharan S              2017-10-19 02:48:49 -0700   60) #define PCI_DEVICE_ID_LSI_CRUSADER                0x0015
45f4f2eb3da3c (Sasikumar Chandrasekaran   2017-01-10 18:20:43 -0500   61) #define PCI_DEVICE_ID_LSI_HARPOON                 0x0016
45f4f2eb3da3c (Sasikumar Chandrasekaran   2017-01-10 18:20:43 -0500   62) #define PCI_DEVICE_ID_LSI_TOMCAT                  0x0017
45f4f2eb3da3c (Sasikumar Chandrasekaran   2017-01-10 18:20:43 -0500   63) #define PCI_DEVICE_ID_LSI_VENTURA_4PORT               0x001B
45f4f2eb3da3c (Sasikumar Chandrasekaran   2017-01-10 18:20:43 -0500   64) #define PCI_DEVICE_ID_LSI_CRUSADER_4PORT      0x001C
[...]

Alright, the relevant change was commit 45f4f2eb3da3c:

commit 45f4f2eb3da3cbff02c3d77c784c81320c733056
Author: Sasikumar Chandrasekaran […]
Date:   Tue Jan 10 18:20:43 2017 -0500

    scsi: megaraid_sas: Add new pci device Ids for SAS3.5 Generic Megaraid Controllers
    
    This patch contains new pci device ids for SAS3.5 Generic Megaraid Controllers
    
    Signed-off-by: Sasikumar Chandrasekaran […]
    Reviewed-by: Tomas Henzl […]
    Signed-off-by: Martin K. Petersen […]

diff --git a/drivers/scsi/megaraid/megaraid_sas.h b/drivers/scsi/megaraid/megaraid_sas.h
index fdd519c1dd57..cb82195a8be1 100644
--- a/drivers/scsi/megaraid/megaraid_sas.h
+++ b/drivers/scsi/megaraid/megaraid_sas.h
@@ -56,6 +56,11 @@
 #define PCI_DEVICE_ID_LSI_INTRUDER_24          0x00cf
 #define PCI_DEVICE_ID_LSI_CUTLASS_52           0x0052
 #define PCI_DEVICE_ID_LSI_CUTLASS_53           0x0053
+#define PCI_DEVICE_ID_LSI_VENTURA                  0x0014
+#define PCI_DEVICE_ID_LSI_HARPOON                  0x0016
+#define PCI_DEVICE_ID_LSI_TOMCAT                   0x0017
+#define PCI_DEVICE_ID_LSI_VENTURA_4PORT                0x001B
+#define PCI_DEVICE_ID_LSI_CRUSADER_4PORT       0x001C
[...]

Custom Debian kernel packages for testing

Now that we identified the relevant change, what’s the easiest way to test this change? There’s an easy way how to build a custom Debian package, based on the official Debian kernel but including further patch(es), thanks to Ben Hutchings. Make sure to have a Debian system available (I was running this inside an amd64 system, building for amd64), with according deb-src entries in your apt’s sources.list and enough free disk space, then run:

% sudo apt install dpkg-dev build-essential devscripts fakeroot
% apt-get source -t stretch linux
% cd linux-*
% sudo apt-get build-dep linux
% bash debian/bin/test-patches -f amd64 -s none 0001-scsi-megaraid_sas-Add-new-pci-device-Ids-for-SAS3.5-.patch

This generates something like a linux-image-4.9.0-6-amd64_4.9.88-1+deb9u1a~test_amd64.deb for you (next to further Debian packages like linux-headers-4.9.0-6-amd64_4.9.88-1+deb9u1a~test_amd64.deb + linux-image-4.9.0-6-amd64-dbg_4.9.88-1+deb9u1a~test_amd64.deb), ready for installing and testing on the affected system. The Kernel Handbook documents this procedure as well, I just wasn’t aware of this handy `debian/bin/test-patches` so far though.

JFTR: sadly the patch with the additional PCI_DEVICE_ID* was not enough (also see #900349), we seem to need further patches from the changes between v4.9 and v4.15, though this turned up to be no longer relevant for my customer and it’s also working with Debian/buster nowadays.

Vortrag: Best Practices in der IT-Administration, Version 2019 @ GLT19

July 29th, 2019

Es ist schon ein Weilchen her, aber nachdem mich noch immer Leute darauf ansprechen: Auf den Grazer Linuxtagen 2019 (GLT19) war ich als Referent mit einem Vortrag zum Thema “Best Practices in der IT-Administration, Version 2019” vertreten. In dem 25-minütigen Vortrag geht es um die moderne IT-Administration und welche Best Practices es im Jahr 2019 gibt.

Es gibt den Vortrag als Videomitschnitt auf YouTube sowie in verschiedenen Formaten auch direkt beim CCC. Die Vortragsfolien (11MB, PDF) stehen ebenfalls online zur Verfügung. Viel Spaß beim Anschauen!

BTW: den Vortrag kann man in längerer Workshop-Version von mir via SynPro Solutions beziehen, bei Interesse/Bedarf einfach bei mir melden.

(Not really) Revisiting 2018

July 26th, 2019

Mainly to recall what happened last year and to give thoughts and planning for upcoming year(s) I usually revisit the last year (previous years: 2017, 2016, 2015, 2014, 2013 + 2012).

But the end of 2018 and beginning of 2019 were quite stressful (mainly business wise) and I was lacking time and motivation to actually sit down and blog something™. Then I wanted to finally migrate from WordPress to Hugo and started to look into the migration but got stuck for all kinds of reasons (no really nice™ theme, the more useful themes all using a bunch of foreign hosted stuff (meh) and finally some fiddling with broken URLs and further technical minor annoyances) that made me postpone any blogging. Since I had some blog articles in the queue that I wanted to actually publish, I decided to stay at WordPress for the time being and look into migrating to something like Hugo at a later point in time.

So I’m not really revisiting 2018 but just publishing what was stuck in my drafts since the middle of 2018. :)

Events:

Personal:

  • Read ~one book per month on average, which is once again below my targets (the books I recall are “Was man von hier aus sehen kann” (Mariana Leky), Monitoring with Prometheus (James Turnbull), “Why We Sleep: The New Science of Sleep and Dreams (Matthew Walker)” and “Die Stunde zwischen Frau und Gitarre” (Clemens Setz), while Clemens’ book really brought me back into book reading habits!)

Conclusion: nothing to complain about :)

Debian buster: changes in coreutils #newinbuster

July 26th, 2019

Debian buster is there, and similar to what we had with #newinwheezy, #newinjessie and #newinstretch it’s time for #newinbuster!

One package that isn’t new but its tools are used by many of us is coreutils, providing many essential system utilities. We have coreutils v8.26-3 in Debian/stretch and coreutils v8.30-3 in Debian/buster. Compared to the changes between jessie and stretch there are no new tools, but there are some new options available that I’d like to point out.

New features/options

b2sum + md5sum + sha1sum + sha224sum + sha256sum + sha384sum + sha512sum (compute and check message digest):

  -z, --zero           end each output line with NUL, not newline, nd disable file name escaping

cp (copy files and directories):

  Use --reflink=never to ensure a standard copy is performed.

env (run a program in a modified environment):

  -C, --chdir=DIR      change working directory to DIR
  -S, --split-string=S  process and split S into separate arguments;
                        used to pass multiple arguments on shebang lines
  -v, --debug          print verbose information for each processing step

ls (list directory contents), dir + vdir (list directory contents):

  --hyperlink[=WHEN]     hyperlink file names; WHEN can be 'always' (default if omitted), 'auto', or 'never'

This –hyperlink option is especially worth mentioning if you’re using a recent terminal emulator (especially based on VTE), see Hyperlinks (a.k.a. HTML-like anchors) in terminal emulators for further information.

rm (remove files or directories):

  --preserve-root=all   do not remove '/' (default); with 'all', reject any command line argument on a separate device from its parent

split (split a file into pieces):

  -x                      use hex suffixes starting at 0, not alphabetic
  --hex-suffixes[=FROM]  same as -x, but allow setting the start value

timeout (run a command with a time limit):

  -v, --verbose  diagnose to stderr any signal sent upon timeout

Changes:

date (print or set the system date and time):

--rfc-2822 (AKA -R) was renamed into --rfc-email, while --rfc-2822 is still supported

nl (write each FILE to standard output, with line numbers added):

Old default options: -bt        -fn -hn -i1 -l1 -nrn   -sTAB   -v1 -w6 
New default options: -bt -d'\:' -fn -hn -i1 -l1 -n'rn' -s<tab> -v1 -w6

Debian buster: changes in util-linux #newinbuster

July 26th, 2019

Debian buster is there, and similar to what we had with #newinwheezy, #newinjessie and #newinstretch it’s time for #newinbuster!

Update on 2019-07-26 22:55 UTC: Cyril Brulebois pointed out, that findmnt (find a filesystem) was available in Debian/stretch already as part of the mount package, updated the blog post accordingly

One package that isn’t new but its tools are used by many of us is util-linux, providing many essential system utilities. We have util-linux v2.29.2-1+deb9u1 in Debian/stretch and util-linux v2.33.1-0.1 in Debian/buster. There are many new options available and we also have a few new tools available.

Tools that have been taken over from / moved to other packages

  • cfdisk + fdisk + sfdisk (tools to display or manipulate a disk partition table) were moved from util-linux to fdisk
  • findmnt (find a filesystem) is no longer shipped via the mount binary package (of util-linux source package) but part of the util-linux binary package itself nowadays
  • setpriv (run a program with different Linux privilege settings) is no longer shipped as separate binary package of util-linux but part of the util-linux binary package itself nowadays
  • su (change user ID or become superuser) was moved from login package (kudos to Andreas Henriksson for this!)

Deprecated / removed tools

Tools that are no longer shipped with util-linux as of Debian/buster:

  • line binary (copies one line (up to a newline) from standard input to standard output), the head binary is its suggested replacement
  • pg binary (browse pagewise through text files), it’s marked deprecated in POSIX since 1997
  • tailf binary (follow the growth of a log file), it was deprecated in 2017 and `tail -f` from coreutils works fine
  • tunelp binary (set various parameters for the lp device), parallel port printers are suspected to be extinct by now

New tools

blkzone (run zone command on a device):

Usage:
 blkzone <command> [options] <device>

Run zone command on the given block device.

Commands:
 report       Report zone information about the given device
 reset        Reset a range of zones.

Options:
 -o, --offset <sector>  start sector of zone to act (in 512-byte sectors)
 -l, --length <sectors> maximum sectors to act (in 512-byte sectors)
 -c, --count <number>   maximum number of zones
 -v, --verbose          display more details

 -h, --help             display this help
 -V, --version          display version

For more details see blkzone(8).

chmem (configure memory, set a particular size or range of memory online or offline):

Usage:
 chmem [options] [SIZE|RANGE|BLOCKRANGE]

Set a particular size or range of memory online or offline.

Options:
 -e, --enable       enable memory
 -d, --disable      disable memory
 -b, --blocks       use memory blocks
 -z, --zone <name>  select memory zone (see below)
 -v, --verbose      verbose output
 -h, --help         display this help
 -V, --version      display version

Supported zones:
 DMA
 DMA32
 Normal
 Highmem
 Movable
 Device

For more details see chmem(8).

choom (display and adjust OOM-killer score):

Usage:
 choom [options] -p pid
 choom [options] -n number -p pid
 choom [options] -n number command [args...]]

Display and adjust OOM-killer score.

Options:
 -n, --adjust <num>     specify the adjust score value
 -p, --pid <num>        process ID

 -h, --help             display this help
 -V, --version          display version

For more details see choom(1).

fincore (count pages of file contents in core):

Usage:
 fincore [options] file...

Options:
 -J, --json            use JSON output format
 -b, --bytes           print sizes in bytes rather than in human readable format
 -n, --noheadings      don't print headings
 -o, --output <list>   output columns
 -r, --raw             use raw output format

 -h, --help            display this help
 -V, --version         display version

Available output columns:
       PAGES  file data resident in memory in pages
        SIZE  size of the file
        FILE  file name
         RES  file data resident in memory in bytes

For more details see fincore(1).

lsmem (list the ranges of available memory with their online status):

Usage:
 lsmem [options]

List the ranges of available memory with their online status.

Options:
 -J, --json           use JSON output format
 -P, --pairs          use key="value" output format
 -a, --all            list each individual memory block
 -b, --bytes          print SIZE in bytes rather than in human readable format
 -n, --noheadings     don't print headings
 -o, --output <list>  output columns
     --output-all     output all columns
 -r, --raw            use raw output format
 -S, --split <list>   split ranges by specified columns
 -s, --sysroot <dir>  use the specified directory as system root
     --summary[=when] print summary information (never,always or only)

 -h, --help           display this help
 -V, --version        display version

Available output columns:
      RANGE  start and end address of the memory range
       SIZE  size of the memory range
      STATE  online status of the memory range
  REMOVABLE  memory is removable
      BLOCK  memory block number or blocks range
       NODE  numa node of memory
      ZONES  valid zones for the memory range

For more details see lsmem(1).

New features/options

agetty + getty (alternative Linux getty):

  --list-speeds          display supported baud rates

blkid (locate/print block device attributes) gained a bunch of long options:

Options:

  --cache-file          same as -c 
  --no-encoding         same as -d
  --garbage-collect     same as -g
  --output              same as -o
  --list-filesystems    same as -k
  --match-tag           same as -s
  --match-token         same as -t
  --list-one            same as -l
  --label               same as -L
  --uuid                same as -U

Low-level probing options:

  --probe               same as -p
  --info                same as -i
  --size                same as -S
  --offset              same as -O
  --usages              same as -u
  --match-types         same as -n

dmesg (print or control the kernel ring buffer):

  -p, --force-prefix          force timestamp output on each line of multi-line messages

fallocate (preallocate or deallocate space to a file):

  -i, --insert-range   insert a hole at range, shifting existing data
  -x, --posix          use posix_fallocate(3) instead of fallocate(2)

findmnt (find a filesystem):

  --output-all       output all available columns
  --pseudo           print only pseudo-filesystems
  --real             print only real filesystems
  --tree             enable tree format output is possible

fstrim (discard unused blocks on a mounted filesystem):

  -A, --fstab         trim all supported mounted filesystems from /etc/fstab
  -n, --dry-run       does everything, but trim

hwlock (read or set the hardware clock (RTC)):

  -l                 same as --localtime
  --delay <sec>      delay used when set new RTC time
  -v, --verbose      display more details

lsblk (list block devices):

Options:

  -z, --zoned          print zone model
  -T, --tree           use tree format output
  --sysroot >dir<  use specified directory as system root

Available output columns:

  PATH     path to the device node
  FSAVAIL  filesystem size available
  FSSIZE   filesystem size
  FSUSED   filesystem size used
  FSUSE%   filesystem use percentage
  PTUUID   partition table identifier (usually UUID)
  PTTYPE   partition table type
  ZONED    zone model

lscpu (display information about the CPU architecture):

  -J, --json              use JSON for default or extended format

lslocks (list local system locks):

Options:

  -b, --bytes            print SIZE in bytes rather than in human readable format
      --output-all       output all columns

Available output columns:

  TYPE  kind of lock

lslogins (display information about known users in the system):

Options:

      --output-all         output all columns

Available output columns:

  PWD-METHOD  password encryption method

lsns (list namespaces):

Options:

      --output-all       output all columns
  -W, --nowrap           don't use multi-line representation

Available output columns:

  NETNSID  namespace ID as used by network subsystem
     NSFS  nsfs mountpoint (usually used network subsystem)

nsenter (run program with namespaces of other processes):

  -a, --all              enter all namespaces
      --output-all     output all columns
  -S, --sector-size <num>  overwrite sector size
      --list-types     list supported partition types and exit

rename.ul (rename files):

  -n, --no-act        do not make any changes
  -o, --no-overwrite  don't overwrite existing files
  -i, --interactive   prompt before overwrite

runuser (run a command with substitute user and group ID):

  -w, --whitelist-environment <list>  don't reset specified variables
  -P, --pty                       create a new pseudo-terminal

setsid (run a program in a new session):

  -f, --fork     always fork

setterm (set terminal attributes):

  --resize                          reset terminal rows and columns

unshare (run program with some namespaces unshared from parent):

  --kill-child[=<signame>]  when dying, kill the forked child (implies --fork), defaults to SIGKILL

wipefs (wipe a signature from a device):

Options:

  -i, --noheadings    don't print headings
  -J, --json          use JSON output format
  -O, --output <list> COLUMNS to display (see below)

Available output columns:
     UUID  partition/filesystem UUID
    LABEL  filesystem LABEL
   LENGTH  magic string length
     TYPE  superblok type
   OFFSET  magic string offset
    USAGE  type description
   DEVICE  block device name

zramctl (set up and control zram devices):

  -a, --algorithm lzo|lz4|lz4hc|deflate|842   compression algorithm to use (new compression algorithms lz4hc, deflate + 842)
       --output-all          output all columns

Deprecated and removed options

hwlock (read or set the hardware clock (RTC)):

  --badyear        ignore RTC's year because the BIOS is broken
  -c, --compare    periodically compare the system clock with the CMOS clock
  --getepoch       print out the kernel's hardware clock epoch value
  --setepoch       set the kernel's hardware clock epoch value to the value given with --epoch

unshare (run program with some namespaces unshared from parent):

  -s     (use --setgroups instead)