I’ve done my first upgrades to Debian stretch at this point. The results have been overall good. On the laptop my kids use, I helped my 10-year-old do it, and it worked flawlessly. On my workstation, I got a kernel panic on boot. Hmm.
Unfortunately, my system has to use the nv drivers, which leaves me with an 80×25 text console. It took some finagling (break=init in grub, then manually insmoding the appropriate stuff based on modules.dep for nouveau), but finally I got a console so I could see what was breaking. It appeared that init was crashing because it couldn’t find liblz4. A little digging shows that liblz4 is in /usr, and /usr wasn’t mounted. I’ve filed the bug on systemd-sysv for this.
I run root on ZFS, and further digging revealed that I had datasets named like this:
- tank/hostname-1/ROOT
- tank/hostname-1/usr
- tank/hostname-1/var
This used to be fine. The mountpoint property of the usr dataset put it at /usr without incident. But it turns out that this won’t work now, unless I set ZFS_INITRD_ADDITIONAL_DATASETS in /etc/default/zfs for some reason. So I renamed them so usr was under ROOT, and then the system booted.
Then I ran samba not liking something in my bind interfaces line (to be fair, it did still say eth0 instead of br0). rpcbind was failing in postinst, though a reboot seems to have helped that. More annoying was that I had trouble logging into my system because resolv.conf was left empty (despite dns-* entries in /etc/network/interfaces and the presence of resolvconf). I eventually repaired that, and found that it kept removing my “search” line. Eventually I removed resolvconf.
Then mariadb’s postinst was silently failing. I eventually discovered it was sending info to syslog (odd), and /etc/init.d/apparmor teardown let it complete properly. It seems like there may have been an outdated /etc/apparmor.d/cache/usr.sbin.mysql out there for some reason.
Then there was XFCE. I use it with xmonad, and the session startup was really wonky. I had to zap my sessions, my panel config, etc. and start anew. I am still not entirely sure I have it right, but I at do have a usable system now.
One day you should tell us what happens when “The results” aren’t “overall good.” I am using Stretch on a much simpler configuration and older hardware, I had the touchpad disabled (wrong driver), USB device that could receive but not transmit (changes in the devices mapping) and then Libreoffice Writer crashes while opening. All those three things worked just fine with Jessie. In my opinion these are obvious regressions and I am not sure if they happen because somebody with an agenda chose to apply changes regardless (like updating Gnome and kill anything else) or because there isn’t enough testing before releasing.
I also have issues with Stretch. Libreoffice writer crashes. On XFCE, I cannot find a theme that works well between gtk+2 and gtk+3. I think this is a known issue with the latest gtk+3. I think they rushed to the latest version of gtk+3 and broke XFCE. This is not an issue in Jessie. I think I will stay on Jessie for some time. It is a shame.
> It appeared that init was crashing because it couldn’t find liblz4. A little digging shows that liblz4 is in /usr, and /usr wasn’t mounted. I’ve filed the bug on systemd-sysv for this.
The bug is actually on initramfs-tools (or possibly the ZFS packages and their integration there), because in stretch, the initramfs is required to mount /usr before running init.
initramfs-tools will mount /usr in the conventional Linux way, but I believe ZFS requires special treatment and that would be the responsibility of the ZFS initramfs integration.
I also don’t believe there’s a bug in systemd-sysv here.
Just to be clear – I am not trying to say stretch is bad. I think that is far and away an overreaction. These are just the usual teething pains of an upgrade. I do disagree with the decision on /usr, but it is what it is.