It’s has been a tough week, but as we advanced on our previous post, finally we got a great milestone leading to our first alpha release to raise lower the entry barrier to new NodeOS users: now NodeOS has pre-build images automatically generated both for QEmu, CD live ISOs images (one of the most requested issues, also on Twitter), and disk images (with a writable usersfs partition! permanent storage! yay!:-D )… …that work on real hardware!!! :-D
To create the CD-live ISOs it was more-or-less easy thanks to the fact that now the root filesystem is read-only (so it can boot from a CD-ROM) and using grub-mkrescue. Problem is, that it requires to define a usersfs partition by hand, or if not the changes would only be done on memory. To allow to make them persistent the best option was to make a partitioned disk image with both a read-only rootfs and a read-write usersfs, and allow to write it to an USB pendrive. At first I though about continue using grub, but after two days I left it: it’s difficult to use on disk images, bloated and require to use
sudo, so I decided to think different (I did already by using musl instead of glibc) and ended using syslinux. Result? Easy to configure (and similar to the one used on the Raspberry Pi boot process), works natively with disk images, don’t need
sudo and it was ready in just two hours :-D I’ll later from grub-mkrescue to use isolinux so I can use only one boot system.
Oh, and if you want to write it to an USB pendrive, there’s also a tool to do this and automatically expand the full disk space… Would be interesting to see this on a hard disk… ;-)
There are some more issues to fix. For example, the errors you see on the previous image are regarding that the image is prepared to mount usersfs from
/dev/sda2, while as you can see it has set the USB drive as
/dev/sda is my internal hard disk), so I’ll need to add support on nodeos-mount-filesystems to mount them based on UUIDs to prevent this. Another more annoying was that the first test on real hardware on my work MacBook didn’t booted at all, just to get to the point later that Macs are using EFI instead of BIOS, so I’ll need to investigate how to do a disk image that can boot on both systems.
Anyway, now I can say it: :-P