v86 icon indicating copy to clipboard operation
v86 copied to clipboard

mounting a disk while booting from an ISO

Open lunu-bounir opened this issue 3 years ago • 6 comments

Is it possible to mount an empty disk while booting the OS from an ISO? I want to write persistent data to the disk when Plan 9 is not supported.

lunu-bounir avatar May 31 '21 16:05 lunu-bounir

When I'm mounting Hard (or Floppy) Drive with CDROM, it not boots: #463

Pixelsuft avatar Jun 01 '21 06:06 Pixelsuft

Theoretically yes, but as @Pixelsuft pointed out, there are some bugs that prevent it from working currently.

copy avatar Jun 02 '21 16:06 copy

I guess the same goes for the following combination too

qemu-system-i386 -kernel bzImage -initrd disk.img

lunu-bounir avatar Jun 02 '21 18:06 lunu-bounir

@copy

Is there any precompiled busybox based distro that works with the filesystem ({filesystem: {...}})? My idea is to use a service worker to dynamically construct the JSON fs and hence be able to provide dynamic files without relying on Plan9. To me generating the entire image from scratch is very hard when you want to just change a few executables or configuration files. Also, many available useful tiny images do no support Plan 9 but can simply get extracted to a directory, and hence in theory they should get altered just by adding or removing files in the directory.

lunu-bounir avatar Jun 03 '21 08:06 lunu-bounir

One advantage is to load the alpine's miniroot 2.6M if there was a valid bzImage that could work with filesystem and bzimage_initrd_from_filesystem: true

lunu-bounir avatar Jun 03 '21 08:06 lunu-bounir

@lunu-bounir In order to use bzimage_initrd_from_filesystem you have two options:

  • Include the root filesystem in the initrd and mount the 9p filesystem somewhere else than /. This is what the buildroot profile does (the is 9pfs is at /mnt/ and starts empty by default). The kernel supports 9p, but afaik it can't boot / as a 9p filesystem by itself. You can build this kernel and the busybox system using humphd/browser-vm or steal the one from my website.
  • Use an (or build your own) initrd that switches root from the initrd to the 9pfs (like the initrd of most major Linux distributions do). This is what the Arch Linux profile does. We have a packer script that automatically builds the Arch Linux filesystem with the needed hooks for the initrd.

Neither directly satisfy your requirements, most likely you will need to write some scripts to switch the root from the initrd to the 9pfs. Or build an initrd on Arch (or another distro) and use it to boot into your own filesystem.

copy avatar Jun 03 '21 21:06 copy