Skip to content

cannot boot VM with writableStoreOverlay + shares #43

@kraftnix

Description

@kraftnix

I am unable to use a writable store when using shares, the documentation states that the path at microvm.writableStoreOverlay must be writable, and #20 mentions that this should work with a writabe overlay on share.

I can get a writable store using microvm.volumes, i.e.

{ config, ... }:
{
  microvm.writableStoreOverlay = "/nix/.rw-store";
  microvm.volumes = [{
    mountPoint = config.microvm.writableStoreOverlay;
    image = "store.img";
    size = 2000;
  }];
}

however trying to use a share instead with something like:

{ config, ... }:
{
  microvm.writableStoreOverlay = "/nix/.rw-store";
  microvm.shares = [
    {
      source = "/tmp/test-writable-store";
      mountPoint = config.microvm.writableStoreOverlay;
      tag = "rw-store";
      proto = "virtiofs";
      socket = "nix-store-rw.sock";
    }
  ];
}

results in a VM which does not boot, stating that the upper fs is missing required features.

mounting overlay filesystem on /nix/store...
[    0.324712] overlayfs: upper fs missing required features.
mount: mounting overlay on /mnt-root/nix/store failed: Invalid argument

This was tested with cloud-hypervisor specifically.

I couldn't find a test or example which shows this usecase, is this meant to be supported or am I doing something wrong?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions