That is awesome. Also, I threw up in my mouth a little bit reading it.
Nice job writing up your exploration of dracut. That would have saved me many hours a couple years back, and I’m sure it’ll help a few unlucky souls who suddenly find themselves needing to do unholy things with initramfs.
That’s not a blocker, you can solve it with one layer of indirection: put a disk image on OneDrive and mount that loop back. I think OneDrive has a 10 GiB limit per file, but you can put a load of 10 GiB files and mount them as RAID.
Back in the day, there was a nice Linux thing that did this on DOS. You just copied the ext2 disk image onto a FAT32 partition and the it had a small loader that just copied the Linux kernel to RAM and jumped to its second-stage loader (DOS had no memory protection and so this basically put you in the same place as the MBR loader). This let you try Linux with a read-write filesystem with no partitioning.
I feel that mounting an image file is cheating and against the spirit of this project (and gets rid of a lot of the appeal of this kind of project, like taking a screenshot and downloading it directly from Google Drive).
Furthermore, the Google Drive FUSE implementation I’m using doesn’t support partial uploads, so you’ll be reuploading a multi-gigabyte file every time any change is made. I’m not sure about the Onedrive client, however. I’ll have to check in a bit.
Interesting. You’ve now made me realise that there’s an even more fun / ludicrous thing you could do here: make your initial RAM FS mount a container image directly from a container registry, but use the google drive as volume storage. There’s a container registry FUSE FS that mounts containers directly from container registries (unfortunately, it doesn’t support unmodified container images, but it does provide a tool that lets you convert the layers into something seekable).
This would let you boot a container from a container registry (and there are a number of container registries that let you publish things for free if they’re public - GitHub has one, for example). This would let you use whatever Linux-distro base image you wanted and then mount the Google Drive as your home directory.
Unfortunately, the FUSE driver I’m using doesn’t support partial uploads, so the entire swap file will be sent on any write.
I also vaguely remember Linus Tech Tips doing something like mounting swap over Google Drive or something, I don’t know I can’t stand the channel anymore.
A great user name eBPF. Well I like the idea totally. Linux is an amazingly modular, anything is possible (within legal laws of Physics) if you can think of it.
I’d love to see two laptops simultaneously booted off the same Google Drive and observe how do they behave. For example installing some program on one and running it on the other 😄
I only have 15 GB of space in this account and I don’t wanna pay Google for any more, so I’ll have to look into spreading the IO over multiple accounts or something.
this is so cursed, I love it
That is awesome. Also, I threw up in my mouth a little bit reading it.
Nice job writing up your exploration of dracut. That would have saved me many hours a couple years back, and I’m sure it’ll help a few unlucky souls who suddenly find themselves needing to do unholy things with initramfs.
Next up: swapping off Google Drive
Boot it off OneDrive, to maximize the irony
There is https://github.com/oxalica/onedrive-fuse but it doesn’t support symlinks at all, which would be an issue
That’s not a blocker, you can solve it with one layer of indirection: put a disk image on OneDrive and mount that loop back. I think OneDrive has a 10 GiB limit per file, but you can put a load of 10 GiB files and mount them as RAID.
Back in the day, there was a nice Linux thing that did this on DOS. You just copied the ext2 disk image onto a FAT32 partition and the it had a small loader that just copied the Linux kernel to RAM and jumped to its second-stage loader (DOS had no memory protection and so this basically put you in the same place as the MBR loader). This let you try Linux with a read-write filesystem with no partitioning.
I feel that mounting an image file is cheating and against the spirit of this project (and gets rid of a lot of the appeal of this kind of project, like taking a screenshot and downloading it directly from Google Drive).
Furthermore, the Google Drive FUSE implementation I’m using doesn’t support partial uploads, so you’ll be reuploading a multi-gigabyte file every time any change is made. I’m not sure about the Onedrive client, however. I’ll have to check in a bit.
Interesting. You’ve now made me realise that there’s an even more fun / ludicrous thing you could do here: make your initial RAM FS mount a container image directly from a container registry, but use the google drive as volume storage. There’s a container registry FUSE FS that mounts containers directly from container registries (unfortunately, it doesn’t support unmodified container images, but it does provide a tool that lets you convert the layers into something seekable).
This would let you boot a container from a container registry (and there are a number of container registries that let you publish things for free if they’re public - GitHub has one, for example). This would let you use whatever Linux-distro base image you wanted and then mount the Google Drive as your home directory.
Unfortunately, the FUSE driver I’m using doesn’t support partial uploads, so the entire swap file will be sent on any write.
I also vaguely remember Linus Tech Tips doing something like mounting swap over Google Drive or something, I don’t know I can’t stand the channel anymore.
https://www.youtube.com/watch?v=minxwFqinpw
this is horrifying.
On the plus side, now if you want more ram you don’t even need to download it
Off of?
It’s a big language!
https://i.imgur.com/wFV4RZu.png
A great user name
eBPF. Well I like the idea totally. Linux is an amazingly modular, anything is possible (within legal laws of Physics) if you can think of it.That said, I kinda feel that this should be illegal, somehow =P
I’d love to see two laptops simultaneously booted off the same Google Drive and observe how do they behave. For example installing some program on one and running it on the other 😄
Absolutely!
I only have 15 GB of space in this account and I don’t wanna pay Google for any more, so I’ll have to look into spreading the IO over multiple accounts or something.