Od debianu 7 k 8
Jiz nekolik mesicu aktualizuji nejruznejsi instalace neobycejne dlouho podporovane verze Debianu 7 wheezy na 8 jessie. Nemam rad systemd, ale Devuan ani jine varianty bez systemd nevykazuji velkou hybnost a tak nic jineho nezbyva. Vetsina aktualizaci jednoucelovych serveru sla dobre. Dnes jsem ale narazil...
Hleda se /sbin/init
Standardni aktualizace probehla sice bez problemu, po restartu ovsem server nenastartoval. Boot koncil na
mount: can't find /root in /etc/fstab
mount: mounting /dev on /root/dev failed: No such file or directory
Target filesystem doesn't have /sbin/init
No init found. Try passing init= bootarg
(initramfs)
Nesel starsi kernel, nepomohlo regenerovat initramfs ani vytvaret znovu
update-initramfs -u -v update-initramfs -c -k 3.16.x.y-z
Protoze system musel bezet, zprovoznil jsem ho v chrootu ze SysResCD a jal se na textove konzoli s omezenymi moznostmi zkoumat co se tim systemd zase posr... rozbaleni initrd
cat initrd.img-3.16.0-5-686 | gunzip | cpio -i
ukazovalo ze v nem je skutecne prazdny /etc/fstab a chybi /sbin/init. Badani kolem systemd a obecnych chyb podobneho druhu nikam nevedlo. Nakonec jsem se dobouchal na jiny funkcni D8 a rozbalil si initramfs tam. A hle - ve zdejsim initramfs sice taky je fstab prazdny, ale v adresari /sbin/ je spousta stejne velkych binarek pochazejicich zrejme z busyboxu vcetne initu. To bylo prvni steblo po nekolika hodinach tapani. V mem initramfs busybox byl, update-initramfs nehlasil zadnou chybu a vesele vytvarel jeden nefunkcni initramfs za druhym. Nakonec me napadlo preinstalovat busybox a hle:
Commandline: apt-get install busybox
Install: busybox:i386 (1.22.0-9+deb8u1)
Remove: busybox-cvs-static:i386 (20040623-1)
V systemu byl nejaky prehistoricky busybox z kdovijake verze debianu, ktery ale zrejme nemel zakompilovanou polovinu potrebnych utilit do initramfs. Zajimave je na tom jen to, ze stejne initramfs v SysV fungovaly dobre 10 let - mam je a nic takoveho v nich neni, i to, ze update-initramfs vytvori initrd bez nutnych soucasti.