A computer science student at Purdue University has managed to boot Linux using Google Drive. This project began as a fun challenge to match a peer’s success in booting Linux from NFS (Network File System), but evolved into an intricate and somewhat impractical experiment.
Ersei, who is also an open source developer, wanted to boot Linux directly from Google’s cloud storage platform without depending on another computer for support. To do this, they used FUSE (Filesystem in Userspace) to create a filesystem driver within the user space, laying the technical foundation for the project.
Understanding the Linux boot process was crucial. Essentially the way it works is the firmware (BIOS/UEFI) loads a bootloader, which then starts the kernel. The kernel opens a temporary filesystem in RAM, mounts the actual filesystem, and hands over control to the init system. Ersei’s task was to integrate a FUSE filesystem at this point in the process.
Success!
This was done by modifying the initramfs to include FUSE binaries and network support with the help of Dracut, a tool for creating initramfs images. Choosing Arch Linux for its simplicity, Ersei built the required environment from scratch.
After successfully creating the EFI image, Ersei began initial tests using a root stored in an S3 bucket. There were numerous issues related to network and drivers that took a lot of time, resources, and determination to resolve, but eventually progress was made.
Mounting the root filesystem on Google Drive through google-drive-ocamlfuse led to further complications like unsupported symlinks, hardlinks, and permission issues, along with slow performance. Despite significant efforts to fix these problems, they greatly, and inevitably, affected the system’s functionality.
Testing on actual hardware exposed more limitations, such as issues with hardware compatibility and network settings, and a lack of support for built-in keyboards, requiring the use of an external keyboard. You can read all about the full project, and the numerous problems encountered, on Ersei’s blog here.
Despite its technical impressiveness, there are clear practical limitations of booting Linux from Google Drive. While it reflects the current trend towards using cloud technologies, Ersei acknowledged the limited usefulness of their setup, suggesting it might inspire niche commercial applications or similar experiments, like booting Linux from SSH or a Git repository.