I found that dd could do the same thing with `dd of=ofile oflag=nocache conv=notrunc,fdatasync count=0` --- looking at the source code led me to posix_fadvise --- I did try it before, but gave up on it because it didn't seem to be working. It turns out that both the offset and length need to be page-aligned --- passing in the entire range worked perfectly fine.
I have looked at virtio-fs, but there's no support for macOS hosts (at least, not until that patch enabling vhost-user support for non-Linux platforms is merged in. However, even then, there will need to be extra work adding support in rust-vmm, as right now, the code is very specific for Linux).