Works:
runs-on: ubuntu-24.04-arm
container:
image: ubuntu:latest
env:
DEBIAN_FRONTEND: noninteractive
steps:
- uses: actions/checkout@v4
- run: |
apt-get --assume-yes update
apt-get --assume-yes install linux-image-generic dracut binutils
- run: |
dracut --conf $(mktemp) \
--confdir $(mktemp --directory) \
--verbose \
--modules "base bash" \
--add-drivers "virtio-rng bcachefs btrfs virtiofs overlay xfs" \
--kernel-cmdline "console=hvc0" \
--no-early-microcode \
--no-hostonly \
--no-compress \
--no-uefi \
initramfs \
$(ls /lib/modules/)
- run: |
cp /boot/vmlinuz-$(ls /lib/modules/) vmlinuz
- uses: actions/upload-artifact@v4
with:
path: |
vmlinuz
initramfs
Will NOT work:
runs-on: ubuntu-24.04-arm
container:
image: ubuntu:latest
env:
DEBIAN_FRONTEND: noninteractive
steps:
- uses: actions/checkout@v4
- run: |
apt-get --assume-yes update
apt-get --assume-yes install linux-image-generic-64k dracut binutils
- run: |
dracut --conf $(mktemp) \
--confdir $(mktemp --directory) \
--verbose \
--modules "base bash" \
--add-drivers "virtio-rng bcachefs btrfs virtiofs overlay xfs" \
--kernel-cmdline "console=hvc0" \
--no-early-microcode \
--no-hostonly \
--no-compress \
--no-uefi \
initramfs \
$(ls /lib/modules/)
- run: |
cp /boot/vmlinuz-$(ls /lib/modules/) vmlinuz
- uses: actions/upload-artifact@v4
with:
path: |
vmlinuz
initramfs
You can try it on Github Actions
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Using VZVirtioFileSystemDeviceConfiguration allows a Linux guest OS to access folders on macOS. However, modifications to the file's uid/gid by the Linux guest OS have no effect, and the file's uid/gid will always appear as the uid/gid of the Linux user currently accessing the file, as if the uid/gid were not stored at all.I hope there’s a way to at least pass through the uid/gid without any mapping.
I have successfully booted the Linux Kernel with VirtIOFS as the rootfs, but file permission issues render it completely unusable. A file on the macOS host belongs to uid 0, gid 0, but on the Linux guest, this file belongs to uid 1000, gid 10. Why does this happen? How are file permissions directly mapped between the host and the guest? If there is no mapping mechanism in place, why does this discrepancy occur? This leads to errors in Linux, such as:
sudo: /etc/sudo.conf is owned by uid 1000, should be 0
sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set
bootLoader.commandLine = "console=hvc0 rootfstype=virtiofs root=myfs rw"
let directorySharingDevice = VZVirtioFileSystemDeviceConfiguration(tag: "myfs")
directorySharingDevice.share = VZSingleDirectoryShare(directory: VZSharedDirectory(url: rootURL!, readOnly: false))
The VMM is running as root.