Service root-ro command failed with exit code 1
Service random-seed stop command failed with exit code 20
All services have stopped with no shutdown issued; boot failure?
When I choose "restart boot sequence" it boots with no errors. Using custom kernel with EFIstub.
You can copy /lib/dinit.d/root-ro in /etc/dinit.d and add logfile:
type = scripted
command = /bin/mount -o remount,ro,rshared /
restart = false
logfile = /var/log/dinit/root-ro.log
Or directly in /lib.
So that you get the complete error.
Now it shows
root-ro: execution failed - opening log file: Read-only file system
That typically doesn't work for very early services where the filesystem is still read-only, because the logfile can't be opened for writing in that case.
Options are:
log-type = buffer
OR
options = starts-on-console
In the first case you need to use
dinitctl catlog root-ro
to see the log (so it requires that you do manage to boot successfully, which I gather is the case). The 2nd one will hopefully show the error on the console (and hopefully it won't scroll off before you can read it).
These options are documented in the manual so check that for more information.
It outputs
mount: /: can't find UUID=62d1f155-...
I double checked UUID and it matches with the one from blkid. So I've put '/dev/sda2' instead of UUID in /etc/fstab and now it boots with no errors. But is there any way to check why it can't find UUID and PARTUUID of the disk? I am testing this on the qemu vm so maybe it's a vm thing.
Thank you.
You'd have to look into what the mount utility is actually doing to figure that out. I don't think I can help any further, sorry. Good that you have a workaround solution anyway.
(My guess is that it's some kind of race where the UUID/PARTUUID isn't available yet. Maybe the kernel is still reading the partition table at that point. You could try wrapping the mount command in a script and insert a small delay before "mount" via "sleep", but that's not a very satisfactory solution either.)