8000 Support for macOS Guest images (APFS)? · Issue #166 · libguestfs/libguestfs · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Support for macOS Guest images (APFS)? #166

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
trinitronx opened this issue Jan 8, 2025 · 2 comments
Open

Support for macOS Guest images (APFS)? #166

trinitronx opened this issue Jan 8, 2025 · 2 comments

Comments

@trinitronx
Copy link

I'm curious about whether virt-sysprep would be possible to use on macOS guest images (e.g. with qcow2 image from QEMU macOS guest).

I'm seeing the following:

$ virt-sysprep --no-logfile --operations 'defaults,-ssh-userdir,-ssh-hostkeys,-customize' -a macos-monterey-12-1-base.img
virt-sysprep: error: no operating systems were found in the guest image

If reporting bugs, run virt-sysprep with debugging enabled and include the 
complete output:

  virt-sysprep -v -x [...]

With verbose + debugging enabled, the main hangup seems to be APFS failed to mount:

mount: /sysroot: unknown filesystem type 'apfs'.
Expand for full virt-sysprep -v -x ... debug log

$ virt-sysprep -v -x --no-logfile --operations 'defaults,-ssh-userdir,-ssh-hostkeys,-customize' -a macos-monterey-12-1-base.img


virt-sysprep -v -x --no-logfile --operations 'defaults,-ssh-userdir,-ssh-hostkeys,-customize' -a macos-monterey-12-1-base.img              INT ✘  3.0.6  
[   0.0] Examining the guest ...
libguestfs: trace: set_verbose true
libguestfs: trace: set_verbose = 0
libguestfs: trace: set_network false
libguestfs: trace: set_network = 0
libguestfs: trace: add_drive "macos-monterey-12-1-base.img" "readonly:false" "protocol:file" "discard:besteffort"
libguestfs: trace: add_drive = 0
libguestfs: trace: launch
libguestfs: trace: max_disks
libguestfs: trace: max_disks = 255
libguestfs: trace: get_tmpdir
libguestfs: trace: get_tmpdir = "/tmp"
libguestfs: trace: version
libguestfs: trace: version = <struct guestfs_version = major: 1, minor: 54, release: 0, extra: , >
libguestfs: trace: get_backend
libguestfs: trace: get_backend = "direct"
libguestfs: launch: program=virt-sysprep
libguestfs: launch: version=1.54.0
libguestfs: launch: backend registered: direct
libguestfs: launch: backend registered: libvirt
libguestfs: launch: backend=direct
libguestfs: launch: tmpdir=/tmp/libguestfsKkZET5
libguestfs: launch: umask=0022
libguestfs: launch: euid=1000
libguestfs: trace: get_cachedir
libguestfs: trace: get_cachedir = "/var/tmp"
libguestfs: begin building supermin appliance
libguestfs: run supermin
libguestfs: command: run: /usr/bin/supermin
libguestfs: command: run: \ --build
libguestfs: command: run: \ --verbose
libguestfs: command: run: \ --if-newer
libguestfs: command: run: \ --lock /var/tmp/.guestfs-1000/lock
libguestfs: command: run: \ --copy-kernel
libguestfs: command: run: \ -f ext2
libguestfs: command: run: \ --host-cpu x86_64
libguestfs: command: run: \ /usr/lib/guestfs/supermin.d
libguestfs: command: run: \ -o /var/tmp/.guestfs-1000/appliance.d
supermin: version: 5.3.5
supermin: package handler: arch/pacman
supermin: acquiring lock on /var/tmp/.guestfs-1000/lock
supermin: if-newer: output does not need rebuilding
libguestfs: finished building supermin appliance
libguestfs: begin testing qemu features
libguestfs: trace: get_cachedir
libguestfs: trace: get_cachedir = "/var/tmp"
libguestfs: checking for previously cached test results of /usr/bin/qemu-system-x86_64, in /var/tmp/.guestfs-1000
libguestfs: loading previously cached test results
libguestfs: qemu version: 9.2
libguestfs: qemu mandatory locking: yes
libguestfs: qemu KVM: enabled
libguestfs: trace: get_backend_setting "force_tcg"
libguestfs: trace: get_backend_setting = NULL (error)
libguestfs: trace: get_backend_setting "force_kvm"
libguestfs: trace: get_backend_setting = NULL (error)
libguestfs: trace: get_sockdir
libguestfs: trace: get_sockdir = "/run/user/1000"
libguestfs: finished testing qemu features
libguestfs: trace: get_backend_setting "gdb"
libguestfs: trace: get_backend_setting = NULL (error)
/usr/bin/qemu-system-x86_64 \
    -global virtio-blk-pci.scsi=off \
    -no-user-config \
    -nodefaults \
    -display none \
    -machine q35,accel=kvm:tcg,graphics=off \
    -cpu max,la57=off \
    -m 1280 \
    -no-reboot \
    -rtc driftfix=slew \
    -global kvm-pit.lost_tick_policy=discard \
    -kernel /var/tmp/.guestfs-1000/appliance.d/kernel \
    -initrd /var/tmp/.guestfs-1000/appliance.d/initrd \
    -object rng-random,filename=/dev/urandom,id=rng0 \
    -device virtio-rng-pci,rng=rng0 \
    -device virtio-scsi-pci,id=scsi \
    -drive file=/home/qemu-user/macos-monterey-12-1-base.img,cache=writeback,discard=unmap,id=hd0,if=none \
    -device scsi-hd,drive=hd0 \
    -drive file=/var/tmp/.guestfs-1000/appliance.d/root,snapshot=on,id=appliance,cache=unsafe,if=none,format=raw \
    -device scsi-hd,drive=appliance \
    -device virtio-serial-pci \
    -serial stdio \
    -chardev socket,path=/run/user/1000/libguestfsYMlWFi/guestfsd.sock,id=channel0 \
    -device virtserialport,chardev=channel0,name=org.libguestfs.channel.0 \
    -append "panic=1 console=ttyS0 edd=off udevtimeout=6000 udev.event-timeout=6000 no_timer_check printk.time=1 cgroup_disable=memory usbcore.nousb cryptomgr.notests tsc=reliable 8250.nr_uarts=1 root=UUID=db290139-ba93-49dd-a5a3-153a883c05d2 selinux=0 guestfs_verbose=1 TERM=foot-extra"
\x1bc\x1b[?7l\x1b[2J\x1b[0mSeaBIOS (version Arch Linux 1.16.3-1-1)
Booting from ROM...
\x1bc\x1b[?7l\x1b[2J[    0.284482] usbserial: usb_serial_init - registering generic driver failed
[    0.285700] usbserial: usb_serial_init - returning with error -19
supermin: mounting /proc
supermin: ext2 mini initrd starting up: 5.3.5 glibc
supermin: cmdline: panic=1 console=ttyS0 edd=off udevtimeout=6000 udev.event-timeout=6000 no_timer_check printk.time=1 cgroup_disable=memory usbcore.nousb cryptomgr.notests tsc=reliable 8250.nr_uarts=1 root=UUID=db290139-ba93-49dd-a5a3-153a883c05d2 selinux=0 guestfs_verbose=1 TERM=foot-extra
supermin: uptime: 0.67 0.29
supermin: mounting /sys
supermin: internal insmod crc32-pclmul.ko
supermin: internal insmod crc32c-intel.ko
supermin: internal insmod crct10dif-pclmul.ko
supermin: internal insmod crc32_generic.ko
supermin: internal insmod crc32c_generic.ko
supermin: internal insmod tee.ko
supermin: internal insmod asn1_encoder.ko
supermin: internal insmod trusted.ko
supermin: internal insmod encrypted-keys.ko
[    0.707484] trusted_key: encrypted_key: failed to alloc_cipher (-2)
insmod: init_module: encrypted-keys.ko: Unknown symbol in module
supermin: internal insmod libnvdimm.ko
insmod: init_module: libnvdimm.ko: Unknown symbol in module
supermin: internal insmod nfit.ko
insmod: init_module: nfit.ko: Unknown symbol in module
supermin: internal insmod ata_piix.ko
supermin: internal insmod virtio_blk.ko
supermin: internal insmod crc16.ko
supermin: internal insmod rfkill.ko<
8000
/span>
supermin: internal insmod bluetooth.ko
supermin: internal insmod virtio_bt.ko
supermin: internal insmod virtio-rng.ko
supermin: internal insmod virtio_console.ko
supermin: internal insmod crypto_engine.ko
supermin: internal insmod virtio_crypto.ko
supermin: internal insmod virtio-iommu.ko
supermin: internal insmod failover.ko
supermin: internal insmod net_failover.ko
supermin: internal insmod virtio_net.ko
supermin: internal insmod nd_btt.ko
insmod: init_module: nd_btt.ko: Unknown symbol in module
supermin: internal insmod nd_pmem.ko
insmod: init_module: nd_pmem.ko: Unknown symbol in module
supermin: internal insmod nd_virtio.ko
supermin: internal insmod virtio_pmem.ko
insmod: init_module: virtio_pmem.ko: Unknown symbol in module
supermin: internal insmod rpmsg_core.ko
supermin: internal insmod rpmsg_ns.ko
supermin: internal insmod virtio_rpmsg_bus.ko
supermin: internal insmod virtio_scsi.ko
supermin: internal insmod iommufd.ko
supermin: internal insmod vfio.ko
supermin: internal insmod vfio-pci-core.ko
supermin: internal insmod virtio-vfio-pci.ko
supermin: internal insmod virtio_balloon.ko
supermin: internal insmod virtio_dma_buf.ko
supermin: internal insmod virtio_input.ko
supermin: internal insmod virtio_mem.ko
supermin: internal insmod virtio_mmio.ko
supermin: internal insmod vdpa.ko
supermin: internal insmod virtio_vdpa.ko
supermin: internal insmod jbd2.ko
supermin: internal insmod mbcache.ko
supermin: internal insmod ext4.ko
supermin: internal insmod crc-itu-t.ko
supermin: internal insmod crc4.ko
supermin: internal insmod crc7.ko
supermin: internal insmod crc8.ko
supermin: internal insmod libcrc32c.ko
supermin: internal insmod soundcore.ko
supermin: internal insmod snd.ko
supermin: internal insmod snd-timer.ko
supermin: internal insmod snd-pcm.ko
supermin: internal insmod virtio_snd.ko
supermin: picked 8:16 as root device
supermin: creating /dev/root as block special 8:16
supermin: mounting new root on /root
supermin: deleting initramfs files
supermin: chroot
Starting /init script ...
+ [[ panic=1 console=ttyS0 edd=off udevtimeout=6000 udev.event-timeout=6000 no_timer_check printk.time=1 cgroup_disable=memory usbcore.nousb cryptomgr.notests tsc=reliable 8250.nr_uarts=1 root=UUID=db290139-ba93-49dd-a5a3-153a883c05d2 selinux=0 guestfs_verbose=1 TERM=foot-extra == *guestfs_network=1* ]]
+ [[ panic=1 console=ttyS0 edd=off udevtimeout=6000 udev.event-timeout=6000 no_timer_check printk.time=1 cgroup_disable=memory usbcore.nousb cryptomgr.notests tsc=reliable 8250.nr_uarts=1 root=UUID=db290139-ba93-49dd-a5a3-153a883c05d2 selinux=0 guestfs_verbose=1 TERM=foot-extra == *guestfs_rescue=1* ]]
+ [[ panic=1 console=ttyS0 edd=off udevtimeout=6000 udev.event-timeout=6000 no_timer_check printk.time=1 cgroup_disable=memory usbcore.nousb cryptomgr.notests tsc=reliable 8250.nr_uarts=1 root=UUID=db290139-ba93-49dd-a5a3-153a883c05d2 selinux=0 guestfs_verbose=1 TERM=foot-extra == *guestfs_noreboot=1* ]]
+ [[ panic=1 console=ttyS0 edd=off udevtimeout=6000 udev.event-timeout=6000 no_timer_check printk.time=1 cgroup_disable=memory usbcore.nousb cryptomgr.notests tsc=reliable 8250.nr_uarts=1 root=UUID=db290139-ba93-49dd-a5a3-153a883c05d2 selinux=0 guestfs_verbose=1 TERM=foot-extra == *guestfs_boot_analysis=1* ]]
+ mkdir -p /dev/pts /dev/shm
+ mount -t devpts /dev/pts /dev/pts
+ mount -t tmpfs -o mode=1777 shmfs /dev/shm
+ mkdir -p /sysroot
+ mkdir -p /run
+ mount -t tmpfs -o nosuid,size=20%,mode=0755 tmpfs /run
+ mkdir -p /run/lock
+ ln -s ../run/lock /var/lock
+ [[ panic=1 console=ttyS0 edd=off udevtimeout=6000 udev.event-timeout=6000 no_timer_check printk.time=1 cgroup_disable=memory usbcore.nousb cryptomgr.notests tsc=reliable 8250.nr_uarts=1 root=UUID=db290139-ba93-49dd-a5a3-153a883c05d2 selinux=0 guestfs_verbose=1 TERM=foot-extra == *selinux=1* ]]
+ test -e /etc/mtab
+ test -d /etc/crypto-policies/back-ends
+ mkdir -p /run/tmpfiles.d
+ kmod static-nodes --format=tmpfiles --output=/run/tmpfiles.d/kmod.conf
++ dd if=/dev/urandom bs=16 count=1 status=none
++ od -x -A n
+ machine_id=' 9701 24f4 f77f abc9 bd5f e5e7 2f7e fb3e'
+ echo 970124f4f77fabc9bd5fe5e72f7efb3e
+ systemd-tmpfiles --prefix=/dev --prefix=/run --prefix=/var/run --create --boot
\x1b[0;1;31m/usr/lib/tmpfiles.d/static-nodes-permissions.conf:12: Failed to resolve group 'audio': No such process\x1b[0m
\x1b[0;1;31m/usr/lib/tmpfiles.d/static-nodes-permissions.conf:13: Failed to resolve group 'audio': No such process\x1b[0m
\x1b[0;1;31m/usr/lib/tmpfiles.d/static-nodes-permissions.conf:14: Failed to resolve group 'disk': No such process\x1b[0m
\x1b[0;1;31m/usr/lib/tmpfiles.d/static-nodes-permissions.conf:18: Failed to resolve group 'kvm': No such process\x1b[0m
\x1b[0;1;31m/usr/lib/tmpfiles.d/static-nodes-permissions.conf:19: Failed to resolve group 'kvm': No such process\x1b[0m
\x1b[0;1;31m/usr/lib/tmpfiles.d/static-nodes-permissions.conf:20: Failed to resolve group 'kvm': No such process\x1b[0m
\x1b[0;1;31m/usr/lib/tmpfiles.d/systemd-network.conf:10: Failed to resolve user 'systemd-network': No such process\x1b[0m
\x1b[0;1;31m/usr/lib/tmpfiles.d/systemd-network.conf:11: Failed to resolve user 'systemd-network': No such process\x1b[0m
\x1b[0;1;31m/usr/lib/tmpfiles.d/systemd-network.conf:12: Failed to resolve user 'systemd-network': No such process\x1b[0m
\x1b[0;1;31m/usr/lib/tmpfiles.d/systemd.conf:11: Failed to resolve group 'utmp': No such process\x1b[0m
\x1b[0;1;31m/usr/lib/tmpfiles.d/systemd.conf:22: Failed to resolve group 'systemd-journal': No such process\x1b[0m
\x1b[0;1;31m/usr/lib/tmpfiles.d/systemd.conf:23: Failed to resolve group 'systemd-journal': No such process\x1b[0m
\x1b[0;1;38:5:185mFailed to parse ACL "d:group::r-x,d:group:adm:r-x,d:group:wheel:r-x,group::r-x,group:adm:r-x,group:wheel:r-x", ignoring: Invalid argument\x1b[0m
\x1b[0;1;38:5:185mFailed to parse ACL "d:group:adm:r-x,d:group:wheel:r-x,group:adm:r-X,group:wheel:r-X", ignoring: Invalid argument\x1b[0m
\x1b[0;1;38:5:185mFailed to parse ACL "d:group::r-x,d:group:adm:r-x,d:group:wheel:r-x,group::r-x,group:adm:r-x,group:wheel:r-x", ignoring: Invalid argument\x1b[0m
\x1b[0;1;38:5:185mFailed to parse ACL "d:group:adm:r-x,d:group:wheel:r-x,group:adm:r-x,group:wheel:r-x", ignoring: Invalid argument\x1b[0m
\x1b[0;1;38:5:185mFailed to parse ACL "group:adm:r--,group:wheel:r--", ignoring: Invalid argument\x1b[0m
\x1b[0;1;31m/usr/lib/tmpfiles.d/uuidd-tmpfiles.conf:5: Failed to resolve user 'uuidd': No such process\x1b[0m
+ for f in /lib/systemd/systemd-udevd /usr/lib/systemd/systemd-udevd /sbin/udevd /lib/udev/udevd /usr/lib/udev/udevd
+ '[' -x /lib/systemd/systemd-udevd ']'
+ UDEVD=/lib/systemd/systemd-udevd
+ break
+ '[' -z /lib/systemd/systemd-udevd ']'
+ /lib/systemd/systemd-udevd --daemon
Starting systemd-udevd version 257.1-1-manjaro
+ udevadm trigger
+ udevadm settle --timeout=600
+ shopt -s nullglob
+ for f in /sys/block/sd*/device/timeout
+ echo 300
+ for f in /sys/block/sd*/device/timeout
+ echo 300
+ shopt -u nullglob
+ ip addr add 127.0.0.1/8 brd + dev lo scope host
+ ip link set dev lo up
+ test '' = 1
+ mdadm -As --auto=yes --no-degraded
mdadm: No arrays found in config file or automatically
+ mkdir -p /tmp/lvm
+ touch /tmp/lvm/lvm.conf
+ command -v lvmdevices
/sbin/lvmdevices
+ printf 'devices {\n'
+ printf '\tuse_devicesfile = 0\n'
+ printf '}\n'
+ LVM_SYSTEM_DIR=/tmp/lvm
+ export LVM_SYSTEM_DIR
+ lvmetad
/init: line 149: lvmetad: command not found
+ modprobe dm_mod
+ lvm pvscan --cache --activate ay
+ mdadm -As --auto=yes --run
mdadm: No arrays found in config file or automatically
+ ldmtool create all
[]
+ test 1 = 1
+ test '' '!=' 1
+ uname -a
Linux manjaro 6.12.8-1-MANJARO #1 SMP PREEMPT_DYNAMIC Thu, 02 Jan 2025 10:28:29 +0000 x86_64 GNU/Linux
+ ls -lR /dev
/dev:
total 0
crw-r--r-- 1 root root  10, 235 Jan  8 04:35 autofs
drwxr-xr-x 2 root root      120 Jan  8 04:35 block
drwxr-xr-x 2 root root       80 Jan  8 04:35 bsg
crw------- 1 root root  10, 234 Jan  8 04:35 btrfs-control
drwxr-xr-x 2 root root     2140 Jan  8 04:35 char
crw------- 1 root root   5,   1 Jan  8 04:35 console
drwxr-xr-x 3 root root       60 Jan  8 04:35 cpu
crw------- 1 root root  10, 124 Jan  8 04:35 cpu_dma_latency
crw------- 1 root root  10, 203 Jan  8 04:35 cuse
drwxr-xr-x 9 root root      180 Jan  8 04:35 disk
drwxr-xr-x 2 root root       60 Jan  8 04:35 dma_heap
lrwxrwxrwx 1 root root       13 Jan  8 04:35 fd -> /proc/self/fd
crw-rw-rw- 1 root root   1,   7 Jan  8 04:35 full
crw-rw-rw- 1 root root  10, 229 Jan  8 04:35 fuse
crw------- 1 root root  10, 228 Jan  8 04:35 hpet
crw------- 1 root root  10, 183 Jan  8 04:35 hwrng
drwxr-xr-x 2 root root       60 Jan  8 04:35 input
crw-rw---- 1 root root  10, 123 Jan  8 04:35 iommu
crw-r--r-- 1 root root   1,  11 Jan  8 04:35 kmsg
crw------- 1 root root  10, 237 Jan  8 04:35 loop-control
drwxr-xr-x 2 root root       60 Jan  8 04:35 mapper
crw------- 1 root root   1,   1 Jan  8 04:35 mem
drwxr-xr-x 2 root root       60 Jan  8 04:35 net
crw-rw-rw- 1 root root   1,   3 Jan  8 04:35 null
crw------- 1 root root  10, 144 Jan  8 04:35 nvram
crw------- 1 root root   1,   4 Jan  8 04:35 port
crw------- 1 root root 108,   0 Jan  8 04:35 ppp
crw-rw-rw- 1 root root   5,   2 Jan  8 04:35 ptmx
drwxr-xr-x 2 root root        0 Jan  8 04:35 pts
crw-rw-rw- 1 root root   1,   8 Jan  8 04:35 random
crw-rw-r-- 1 root root  10, 242 Jan  8 04:35 rfkill
lrwxrwxrwx 1 root root        4 Jan  8 04:35 rtc -> rtc0
crw------- 1 root root 250,   0 Jan  8 04:35 rtc0
brw------- 1 root root   8,   0 Jan  8 04:35 sda
brw------- 1 root root   8,   1 Jan  8 04:35 sda1
brw------- 1 root root   8,   2 Jan  8 04:35 sda2
brw------- 1 root root   8,  16 Jan  8 04:35 sdb
drwxrwxrwt 2 root root       40 Jan  8 04:35 shm
crw------- 1 root root  10, 231 Jan  8 04:35 snapshot
drwxr-xr-x 2 root root       80 Jan  8 04:35 snd
crw-rw-rw- 1 root root   5,   0 Jan  8 04:35 tty
crw------- 1 root root   4,   0 Jan  8 04:35 tty0
crw------- 1 root root   4,   1 Jan  8 04:35 tty1
crw------- 1 root root   4,  10 Jan  8 04:35 tty10
crw------- 1 root root   4,  11 Jan  8 04:35 tty11
crw------- 1 root root   4,  12 Jan  8 04:35 tty12
crw------- 1 root root   4,  13 Jan  8 04:35 tty13
crw------- 1 root root   4,  14 Jan  8 04:35 tty14
crw------- 1 root root   4,  15 Jan  8 04:35 tty15
crw------- 1 root root   4,  16 Jan  8 04:35 tty16
crw------- 1 root root   4,  17 Jan  8 04:35 tty17
crw------- 1 root root   4,  18 Jan  8 04:35 tty18
crw------- 1 root root   4,  19 Jan  8 04:35 tty19
crw------- 1 root root   4,   2 Jan  8 04:35 tty2
crw------- 1 root root   4,  20 Jan  8 04:35 tty20
crw------- 1 root root   4,  21 Jan  8 04:35 tty21
crw------- 1 root root   4,  22 Jan  8 04:35 tty22
crw------- 1 root root   4,  23 Jan  8 04:35 tty23
crw------- 1 root root   4,  24 Jan  8 04:35 tty24
crw------- 1 root root   4,  25 Jan  8 04:35 tty25
crw------- 1 root root   4,  26 Jan  8 04:35 tty26
crw------- 1 root root   4,  27 Jan  8 04:35 tty27
crw------- 1 root root   4,  28 Jan  8 04:35 tty28
crw------- 1 root root   4,  29 Jan  8 04:35 tty29
crw------- 1 root root   4,   3 Jan  8 04:35 tty3
crw------- 1 root root   4,  30 Jan  8 04:35 tty30
crw------- 1 root root   4,  31 Jan  8 04:35 tty31
crw------- 1 root root   4,  32 Jan  8 04:35 tty32
crw------- 1 root root   4,  33 Jan  8 04:35 tty33
crw------- 1 root root   4,  34 Jan  8 04:35 tty34
crw------- 1 root root   4,  35 Jan  8 04:35 tty35
crw------- 1 root root   4,  36 Jan  8 04:35 tty36
crw------- 1 root root   4,  37 Jan  8 04:35 tty37
crw------- 1 root root   4,  38 Jan  8 04:35 tty38
crw------- 1 root root   4,  39 Jan  8 04:35 tty39
crw------- 1 root root   4,   4 Jan  8 04:35 tty4
crw------- 1 root root   4,  40 Jan  8 04:35 tty40
crw------- 1 root root   4,  41 Jan  8 04:35 tty41
crw------- 1 root root   4,  42 Jan  8 04:35 tty42
crw------- 1 root root   4,  43 Jan  8 04:35 tty43
crw------- 1 root root   4,  44 Jan  8 04:35 tty44
crw------- 1 root root   4,  45 Jan  8 04:35 tty45
crw------- 1 root root   4,  46 Jan  8 04:35 tty46
crw------- 1 root root   4,  47 Jan  8 04:35 tty47
crw------- 1 root root   4,  48 Jan  8 04:35 tty48
crw------- 1 root root   4,  49 Jan  8 04:35 tty49
crw------- 1 root root   4,   5 Jan  8 04:35 tty5
crw------- 1 root root   4,  50 Jan  8 04:35 tty50
crw------- 1 root root   4,  51 Jan  8 04:35 tty51
crw------- 1 root root   4,  52 Jan  8 04:35 tty52
crw------- 1 root root   4,  53 Jan  8 04:35 tty53
crw------- 1 root root   4,  54 Jan  8 04:35 tty54
crw------- 1 root root   4,  55 Jan  8 04:35 tty55
crw------- 1 root root   4,  56 Jan  8 04:35 tty56
crw------- 1 root root   4,  57 Jan  8 04:35 tty57
crw------- 1 root root   4,  58 Jan  8 04:35 tty58
crw------- 1 root root   4,  59 Jan  8 04:35 tty59
crw------- 1 root root   4,   6 Jan  8 04:35 tty6
crw------- 1 root root   4,  60 Jan  8 04:35 tty60
crw------- 1 root root   4,  61 Jan  8 04:35 tty61
crw------- 1 root root   4,  62 Jan  8 04:35 tty62
crw------- 1 root root   4,  63 Jan  8 04:35 tty63
crw------- 1 root root   4,   7 Jan  8 04:35 tty7
crw------- 1 root root   4,   8 Jan  8 04:35 tty8
crw------- 1 root root   4,   9 Jan  8 04:35 tty9
crw------- 1 root root   4,  64 Jan  8 04:35 ttyS0
crw------- 1 root root  10, 125 Jan  8 04:35 udmabuf
crw------- 1 root root  10, 239 Jan  8 04:35 uhid
crw------- 1 root root  10, 223 Jan  8 04:35 uinput
crw-rw-rw- 1 root root   1,   9 Jan  8 04:35 urandom
crw------- 1 root root  10, 126 Jan  8 04:35 userfaultfd
crw------- 1 root root  10, 240 Jan  8 04:35 userio
crw------- 1 root root   7,   0 Jan  8 04:35 vcs
crw------- 1 root root   7,   1 Jan  8 04:35 vcs1
crw------- 1 root root   7, 128 Jan  8 04:35 vcsa
crw------- 1 root root   7, 129 Jan  8 04:35 vcsa1
crw------- 1 root root   7,  64 Jan  8 04:35 vcsu
crw------- 1 root root   7,  65 Jan  8 04:35 vcsu1
drwxr-xr-x 2 root root       60 Jan  8 04:35 vfio
crw------- 1 root root  10, 127 Jan  8 04:35 vga_arbiter
crw------- 1 root root  10, 137 Jan  8 04:35 vhci
crw-rw-rw- 1 root root  10, 238 Jan  8 04:35 vhost-net
crw-rw-rw- 1 root root  10, 241 Jan  8 04:35 vhost-vsock
drwxr-xr-x 2 root root       60 Jan  8 04:35 virtio-ports
crw------- 1 root root 242,   1 Jan  8 04:35 vport2p1
crw-rw-rw- 1 root root   1,   5 Jan  8 04:35 zero

/dev/block:
total 0
lrwxrwxrwx 1 root root 6 Jan  8 04:35 8:0 -> ../sda
lrwxrwxrwx 1 root root 7 Jan  8 04:35 8:1 -> ../sda1
lrwxrwxrwx 1 root root 6 Jan  8 04:35 8:16 -> ../sdb
lrwxrwxrwx 1 root root 7 Jan  8 04:35 8:2 -> ../sda2

/dev/bsg:
total 0
crw------- 1 root root 246, 0 Jan  8 04:35 6:0:0:0
crw------- 1 root root 246, 1 Jan  8 04:35 6:0:1:0

/dev/char:
total 0
lrwxrwxrwx 1 root root  8 Jan  8 04:35 10:123 -> ../iommu
lrwxrwxrwx 1 root root 18 Jan  8 04:35 10:124 -> ../cpu_dma_latency
lrwxrwxrwx 1 root root 10 Jan  8 04:35 10:125 -> ../udmabuf
lrwxrwxrwx 1 root root 14 Jan  8 04:35 10:126 -> ../userfaultfd
lrwxrwxrwx 1 root root 14 Jan  8 04:35 10:127 -> ../vga_arbiter
lrwxrwxrwx 1 root root  8 Jan  8 04:35 10:144 -> ../nvram
lrwxrwxrwx 1 root root  8 Jan  8 04:35 10:183 -> ../hwrng
lrwxrwxrwx 1 root root 12 Jan  8 04:35 10:196 -> ../vfio/vfio
lrwxrwxrwx 1 root root  7 Jan  8 04:35 10:228 -> ../hpet
lrwxrwxrwx 1 root root  7 Jan  8 04:35 10:229 -> ../fuse
lrwxrwxrwx 1 root root 11 Jan  8 04:35 10:231 -> ../snapshot
lrwxrwxrwx 1 root root  9 Jan  8 04:35 10:235 -> ../autofs
lrwxrwxrwx 1 root root 17 Jan  8 04:35 10:236 -> ../mapper/control
lrwxrwxrwx 1 root root  9 Jan  8 04:35 10:242 -> ../rfkill
lrwxrwxrwx 1 root root 12 Jan  8 04:35 116:33 -> ../snd/timer
lrwxrwxrwx 1 root root 15 Jan  8 04:35 13:64 -> ../input/event0
lrwxrwxrwx 1 root root  6 Jan  8 04:35 1:1 -> ../mem
lrwxrwxrwx 1 root root  7 Jan  8 04:35 1:11 -> ../kmsg
lrwxrwxrwx 1 root root  7 Jan  8 04:35 1:3 -> ../null
lrwxrwxrwx 1 root root  7 Jan  8 04:35 1:4 -> ../port
lrwxrwxrwx 1 root root  7 Jan  8 04:35 1:5 -> ../zero
lrwxrwxrwx 1 root root  7 Jan  8 04:35 1:7 -> ../full
lrwxrwxrwx 1 root root  9 Jan  8 04:35 1:8 -> ../random
lrwxrwxrwx 1 root root 10 Jan  8 04:35 1:9 -> ../urandom
lrwxrwxrwx 1 root root 12 Jan  8 04:35 202:0 -> ../cpu/0/msr
lrwxrwxrwx 1 root root 14 Jan  8 04:35 203:0 -> ../cpu/0/cpuid
lrwxrwxrwx 1 root root 11 Jan  8 04:35 242:1 -> ../vport2p1
lrwxrwxrwx 1 root root 14 Jan  8 04:35 246:0 -> ../bsg/6:0:0:0
lrwxrwxrwx 1 root root 14 Jan  8 04:35 246:1 -> ../bsg/6:0:1:0
lrwxrwxrwx 1 root root  7 Jan  8 04:35 250:0 -> ../rtc0
lrwxrwxrwx 1 root root 18 Jan  8 04:35 251:0 -> ../dma_heap/system
lrwxrwxrwx 1 root root  7 Jan  8 04:35 4:0 -> ../tty0
lrwxrwxrwx 1 root root  7 Jan  8 04:35 4:1 -> ../tty1
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:10 -> ../tty10
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:11 -> ../tty11
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:12 -> ../tty12
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:13 -> ../tty13
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:14 -> ../tty14
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:15 -> ../tty15
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:16 -> ../tty16
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:17 -> ../tty17
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:18 -> ../tty18
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:19 -> ../tty19
lrwxrwxrwx 1 root root  7 Jan  8 04:35 4:2 -> ../tty2
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:20 -> ../tty20
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:21 -> ../tty21
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:22 -> ../tty22
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:23 -> ../tty23
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:24 -> ../tty24
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:25 -> ../tty25
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:26 -> ../tty26
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:27 -> ../tty27
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:28 -> ../tty28
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:29 -> ../tty29
lrwxrwxrwx 1 root root  7 Jan  8 04:35 4:3 -> ../tty3
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:30 -> ../tty30
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:31 -> ../tty31
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:32 -> ../tty32
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:33 -> ../tty33
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:34 -> ../tty34
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:35 -> ../tty35
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:36 -> ../tty36
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:37 -> ../tty37
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:38 -> ../tty38
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:39 -> ../tty39
lrwxrwxrwx 1 root root  7 Jan  8 04:35 4:4 -> ../tty4
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:40 -> ../tty40
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:41 -> ../tty41
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:42 -> ../tty42
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:43 -> ../tty43
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:44 -> ../tty44
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:45 -> ../tty45
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:46 -> ../tty46
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:47 -> ../tty47
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:48 -> ../tty48
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:49 -> ../tty49
lrwxrwxrwx 1 root root  7 Jan  8 04:35 4:5 -> ../tty5
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:50 -> ../tty50
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:51 -> ../tty51
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:52 -> ../tty52
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:53 -> ../tty53
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:54 -> ../tty54
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:55 -> ../tty55
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:56 -> ../tty56
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:57 -> ../tty57
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:58 -> ../tty58
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:59 -> ../tty59
lrwxrwxrwx 1 root root  7 Jan  8 04:35 4:6 -> ../tty6
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:60 -> ../tty60
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:61 -> ../tty61
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:62 -> ../tty62
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:63 -> ../tty63
lrwxrwxrwx 1 root root  8 Jan  8 04:35 4:64 -> ../ttyS0
lrwxrwxrwx 1 root root  7 Jan  8 04:35 4:7 -> ../tty7
lrwxrwxrwx 1 root root  7 Jan  8 04:35 4:8 -> ../tty8
lrwxrwxrwx 1 root root  7 Jan  8 04:35 4:9 -> ../tty9
lrwxrwxrwx 1 root root  6 Jan  8 04:35 5:0 -> ../tty
lrwxrwxrwx 1 root root 10 Jan  8 04:35 5:1 -> ../console
lrwxrwxrwx 1 root root  7 Jan  8 04:35 5:2 -> ../ptmx
lrwxrwxrwx 1 root root  6 Jan  8 04:35 7:0 -> ../vcs
lrwxrwxrwx 1 root root  7 Jan  8 04:35 7:1 -> ../vcs1
lrwxrwxrwx 1 root root  7 Jan  8 04:35 7:128 -> ../vcsa
lrwxrwxrwx 1 root root  8 Jan  8 04:35 7:129 -> ../vcsa1
lrwxrwxrwx 1 root root  7 Jan  8 04:35 7:64 -> ../vcsu
lrwxrwxrwx 1 root root  8 Jan  8 04:35 7:65 -> ../vcsu1

/dev/cpu:
total 0
drwxr-xr-x 2 root root 80 Jan  8 04:35 0

/dev/cpu/0:
total 0
crw------- 1 root root 203, 0 Jan  8 04:35 cpuid
crw------- 1 root root 202, 0 Jan  8 04:35 msr

/dev/disk:
total 0
drwxr-xr-x 2 root root 120 Jan  8 04:35 by-diskseq
drwxr-xr-x 2 root root 120 Jan  8 04:35 by-id
drwxr-xr-x 2 root root  60 Jan  8 04:35 by-label
drwxr-xr-x 2 root root  60 Jan  8 04:35 by-partlabel
drwxr-xr-x 2 root root  80 Jan  8 04:35 by-partuuid
drwxr-xr-x 3 root root 140 Jan  8 04:35 by-path
drwxr-xr-x 2 root root 100 Jan  8 04:35 by-uuid

/dev/disk/by-diskseq:
total 0
lrwxrwxrwx 1 root root  9 Jan  8 04:35 1 -> ../../sda
lrwxrwxrwx 1 root root 10 Jan  8 04:35 1-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Jan  8 04:35 1-part2 -> ../../sda2
lrwxrwxrwx 1 root root  9 Jan  8 04:35 2 -> ../../sdb

/dev/disk/by-id:
total 0
lrwxrwxrwx 1 root root  9 Jan  8 04:35 scsi-0QEMU_QEMU_HARDDISK_appliance -> ../../sdb
lrwxrwxrwx 1 root root  9 Jan  8 04:35 scsi-0QEMU
8000
_QEMU_HARDDISK_hd0 -> ../../sda
lrwxrwxrwx 1 root root 10 Jan  8 04:35 scsi-0QEMU_QEMU_HARDDISK_hd0-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Jan  8 04:35 scsi-0QEMU_QEMU_HARDDISK_hd0-part2 -> ../../sda2

/dev/disk/by-label:
total 0
lrwxrwxrwx 1 root root 10 Jan  8 04:35 EFI -> ../../sda1

/dev/disk/by-partlabel:
total 0
lrwxrwxrwx 1 root root 10 Jan  8 04:35 'EFI\x20System\x20Partition' -> ../../sda1

/dev/disk/by-partuuid:
total 0
lrwxrwxrwx 1 root root 10 Jan  8 04:35 4c00f93f-3425-4dce-9493-1d53f4134106 -> ../../sda1
lrwxrwxrwx 1 root root 10 Jan  8 04:35 5ff87cbc-b64d-45bb-8dac-aa9edd68f030 -> ../../sda2

/dev/disk/by-path:
total 0
lrwxrwxrwx 1 root root   9 Jan  8 04:35 pci-0000:00:02.0-scsi-0:0:0:0 -> ../../sda
drwxr-xr-x 7 root root 140 Jan  8 04:35 pci-0000:00:02.0-scsi-0:0:0:0-part
lrwxrwxrwx 1 root root  10 Jan  8 04:35 pci-0000:00:02.0-scsi-0:0:0:0-part1 -> ../../sda1
lrwxrwxrwx 1 root root  10 Jan  8 04:35 pci-0000:00:02.0-scsi-0:0:0:0-part2 -> ../../sda2
lrwxrwxrwx 1 root root   9 Jan  8 04:35 pci-0000:00:02.0-scsi-0:0:1:0 -> ../../sdb

'/dev/disk/by-path/pci-0000:00:02.0-scsi-0:0:0:0-part':
total 0
drwxr-xr-x 2 root root 60 Jan  8 04:35 by-label
drwxr-xr-x 2 root root 60 Jan  8 04:35 by-partlabel
drwxr-xr-x 2 root root 80 Jan  8 04:35 by-partnum
drwxr-xr-x 2 root root 80 Jan  8 04:35 by-partuuid
drwxr-xr-x 2 root root 80 Jan  8 04:35 by-uuid

'/dev/disk/by-path/pci-0000:00:02.0-scsi-0:0:0:0-part/by-label':
total 0
lrwxrwxrwx 1 root root 16 Jan  8 04:35 EFI -> ../../../../sda1

'/dev/disk/by-path/pci-0000:00:02.0-scsi-0:0:0:0-part/by-partlabel':
total 0
lrwxrwxrwx 1 root root 16 Jan  8 04:35 'EFI\x20System\x20Partition' -> ../../../../sda1

'/dev/disk/by-path/pci-0000:00:02.0-scsi-0:0:0:0-part/by-partnum':
total 0
lrwxrwxrwx 1 root root 16 Jan  8 04:35 1 -> ../../../../sda1
lrwxrwxrwx 1 root root 16 Jan  8 04:35 2 -> ../../../../sda2

'/dev/disk/by-path/pci-0000:00:02.0-scsi-0:0:0:0-part/by-partuuid':
total 0
lrwxrwxrwx 1 root root 16 Jan  8 04:35 4c00f93f-3425-4dce-9493-1d53f4134106 -> ../../../../sda1
lrwxrwxrwx 1 root root 16 Jan  8 04:35 5ff87cbc-b64d-45bb-8dac-aa9edd68f030 -> ../../../../sda2

'/dev/disk/by-path/pci-0000:00:02.0-scsi-0:0:0:0-part/by-uuid':
total 0
lrwxrwxrwx 1 root root 16 Jan  8 04:35 0E8C-E277 -> ../../../../sda1
lrwxrwxrwx 1 root root 16 Jan  8 04:35 88f32947-1c60-4f58-a51a-d7abc3f8e031 -> ../../../../sda2

/dev/disk/by-uuid:
total 0
lrwxrwxrwx 1 root root 10 Jan  8 04:35 0E8C-E277 -> ../../sda1
lrwxrwxrwx 1 root root 10 Jan  8 04:35 88f32947-1c60-4f58-a51a-d7abc3f8e031 -> ../../sda2
lrwxrwxrwx 1 root root  9 Jan  8 04:35 db290139-ba93-49dd-a5a3-153a883c05d2 -> ../../sdb

/dev/dma_heap:
total 0
crw------- 1 root root 251, 0 Jan  8 04:35 system

/dev/input:
total 0
crw------- 1 root root 13, 64 Jan  8 04:35 event0

/dev/mapper:
total 0
crw------- 1 root root 10, 236 Jan  8 04:35 control

/dev/net:
total 0
crw-rw-rw- 1 root root 10, 200 Jan  8 04:35 tun

/dev/pts:
total 0
c--------- 1 root root 5, 2 Jan  8 04:35 ptmx

/dev/shm:
total 0

/dev/snd:
total 0
crw------- 1 root root 116,  1 Jan  8 04:35 seq
crw------- 1 root root 116, 33 Jan  8 04:35 timer

/dev/vfio:
total 0
crw-rw-rw- 1 root root 10, 196 Jan  8 04:35 vfio

/dev/virtio-ports:
total 0
lrwxrwxrwx 1 root root 11 Jan  8 04:35 org.libguestfs.channel.0 -> ../vport2p1
+ cat /proc/mounts
/dev/root / ext2 rw,noatime 0 0
/proc /proc proc rw,relatime 0 0
/sys /sys sysfs rw,relatime 0 0
/dev /dev devtmpfs rw,relatime,size=611840k,nr_inodes=152960,mode=755,inode64 0 0
/dev/pts /dev/pts devpts rw,relatime,mode=600,ptmxmode=000 0 0
shmfs /dev/shm tmpfs rw,relatime,inode64 0 0
tmpfs /run tmpfs rw,nosuid,relatime,size=248064k,mode=755,inode64 0 0
+ cat /proc/mdstat
cat: /proc/mdstat: No such file or directory
+ lvm config
devices {
\tuse_devicesfile=0
}
+ lvm pvs
+ lvm vgs
+ lvm lvs
+ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host proto kernel_lo 
       valid_lft forever preferred_lft forever
+ ip r
+ cat /etc/resolv.conf
# Resolver configuration file.
# See resolv.conf(5) for details.
+ lsmod
Module                  Size  Used by
dm_mod                225280  0
virtio_snd             53248  0
snd_pcm               200704  1 virtio_snd
snd_timer              57344  1 snd_pcm
snd                   155648  3 virtio_snd,snd_timer,snd_pcm
soundcore              16384  1 snd
libcrc32c              12288  0
crc8                   12288  0
crc7                   12288  0
crc4                   12288  0
crc_itu_t              12288  0
ext4                 1155072  1
mbcache                16384  1 ext4
jbd2                  208896  1 ext4
virtio_vdpa            16384  0
vdpa                   40960  1 virtio_vdpa
virtio_mmio            24576  0
virtio_mem             53248  0
virtio_input           16384  0
virtio_dma_buf         12288  0
virtio_balloon         32768  0
virtio_vfio_pci        12288  0
vfio_pci_core          98304  1 virtio_vfio_pci
vfio                   77824  2 vfio_pci_core,virtio_vfio_pci
iommufd               118784  1 vfio
virtio_scsi            28672  1
virtio_rpmsg_bus       28672  0
rpmsg_ns               16384  1 virtio_rpmsg_bus
rpmsg_core             24576  2 virtio_rpmsg_bus,rpmsg_ns
nd_virtio              12288  0
virtio_net            118784  0
net_failover           24576  1 virtio_net
failover               12288  1 net_failover
virtio_iommu           32768  0
virtio_crypto          49152  0
crypto_engine          28672  1 virtio_crypto
virtio_console         49152  0
virtio_rng             12288  0
virtio_bt              12288  0
bluetooth            1097728  1 virtio_bt
rfkill                 40960  1 bluetooth
crc16                  12288  2 bluetooth,ext4
virtio_blk             36864  0
ata_piix               45056  0
trusted                49152  0
asn1_encoder           12288  1 trusted
tee                    49152  1 trusted
crc32c_generic         12288  0
crc32_generic          12288  0
crct10dif_pclmul       12288  1
crc32c_intel           16384  2
crc32_pclmul           12288  0
+ date
Wed Jan  8 04:35:21 UTC 2025
+ echo -n 'clocksource: '
clocksource: + cat /sys/devices/system/clocksource/clocksource0/current_clocksource
kvm-clock
+ echo -n 'uptime: '
uptime: + cat /proc/uptime
1.82 0.43
+ cmd=guestfsd
++ grep -Eo 'guestfs_channel=[^[:space:]]+' /proc/cmdline
+ eval
+ test x '!=' x
+ test 1 = 1
+ cmd='guestfsd --verbose'
+ test '' = 1
+ false
+ test '' = 1
+ echo guestfsd --verbose
guestfsd --verbose
+ guestfsd --verbose
lvm_system_dir = /tmp/lvm
OCaml daemon loaded
commandrvf: stdout=y stderr=y flags=0x0
commandrvf: ls -1v /dev/disk/by-path
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle -E /dev/sda
No filesystem is currently mounted on /sys/fs/cgroup.
Failed to determine unit we run in, ignoring: No data available
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle -E /dev/sdb
No filesystem is currently mounted on /sys/fs/cgroup.
Failed to determine unit we run in, ignoring: No data available
trying to open virtio-serial channel '/dev/virtio-ports/org.libguestfs.channel.0'
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle
No filesystem is currently mounted on /sys/fs/cgroup.
Failed to determine unit we run in, ignoring: No data available
libguestfs: recv_from_daemon: received GUESTFS_LAUNCH_FLAG
libguestfs: appliance is up
libguestfs: trace: launch = 0
libguestfs: trace: c_pointer
libguestfs: trace: c_pointer = 98017642565808
libguestfs: trace: list_partitions
guestfsd: <= list_partitions (0x8) request length 40 bytes
command: ls '-1v' '/dev/disk/by-path'
command: ls returned 0
command: ls: stdout:
pci-0000:00:02.0-scsi-0:0:0:0
pci-0000:00:02.0-scsi-0:0:0:0-part
pci-0000:00:02.0-scsi-0:0:0:0-part1
pci-0000:00:02.0-scsi-0:0:0:0-part2
pci-0000:00:02.0-scsi-0:0:1:0
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle -E /dev/sda
No filesystem is currently mounted on /sys/fs/cgroup.
Failed to determine unit we run in, ignoring: No data available
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle -E /dev/sdb
No filesystem is currently mounted on /sys/fs/cgroup.
Failed to determine unit we run in, ignoring: No data available
libguestfs: trace: list_partitions = ["/dev/sda1", "/dev/sda2"]
libguestfs: trace: vfs_type "/dev/sda1"
guestfsd: => list_partitions (0x8) took 0.03 secs
guestfsd: <= vfs_type (0xc6) request length 56 bytes
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle -E /dev/sda1
No filesystem is currently mounted on /sys/fs/cgroup.
Failed to determine unit we run in, ignoring: No data available
command: blkid '-c' '/dev/null' '-o' 'value' '-s' 'TYPE' '/dev/sda1'
command: blkid returned 0
command: blkid: stdout:
vfat
guestfsd: => vfs_type (0xc6) took 0.01 secs
libguestfs: trace: vfs_type = "vfat"
libguestfs: trace: vfs_type "/dev/sda2"
guestfsd: <= vfs_type (0xc6) request length 56 bytes
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle -E /dev/sda2
No filesystem is currently mounted on /sys/fs/cgroup.
Failed to determine unit we run in, ignoring: No data available
command: blkid '-c' '/dev/null' '-o' 'value' '-s' 'TYPE' '/dev/sda2'
command: blkid returned 0
command: blkid: stdout:
apfs
guestfsd: => vfs_type (0xc6) took 0.02 secs
libguestfs: trace: vfs_type = "apfs"
libguestfs: trace: feature_available "lvm2"
libguestfs: trace: internal_feature_available "lvm2"
guestfsd: <= internal_feature_available (0x1ca) request length 48 bytes
guestfsd: => internal_feature_available (0x1ca) took 0.00 secs
libguestfs: trace: internal_feature_available = 0
libguestfs: trace: feature_available = 1
libguestfs: trace: lvs
guestfsd: <= lvs (0xb) request length 40 bytes
command: lvm 'lvs' '--help'
command: lvm returned 0
command: lvm: stdout:
  lvs - Display information about logical volumes

  lvs
\t[ -H|--history ]
\t[ -S|--select String ]
\t[ -a|--all ]
\t[ -o|--options String ]
\t[ -O|--sort String ]
\t[    --segments ]
\t[    --configreport log|vg|lv|pv|pvseg|seg ]
\t[    --foreign ]
\t[    --ignorelockingfailure ]
\t[    --logonly ]
\t[    --readonly ]
\t[    --reportformat basic|json|json_std ]
\t[    --shared ]
\t[    --units [Number]r|R|h|H|b|B|s|S|k|K|m|M|g|G|t|T|p|P|e|E ]
\t[    --aligned ]
\t[    --binary ]
\t[    --headings none|abbrev|full|0|1|2 ]
\t[    --nameprefixes ]
\t[    --noheadings ]
\t[    --nosuffix ]
\t[    --rows ]
\t[    --separator String ]
\t[    --unbuffered ]
\t[    --unquoted ]
\t[ COMMON_OPTIONS ]
\t[ VG|LV|Tag ... ]

  Common options for lvm:
\t[ -d|--debug ]
\t[ -h|--help ]
\t[ -q|--quiet ]
\t[ -v|--verbose ]
\t[ -y|--yes ]
\t[ -t|--test ]
\t[    --commandprofile String ]
\t[    --config String ]
\t[    --driverloaded y|n ]
\t[    --nolocking ]
\t[    --lockopt String ]
\t[    --longhelp ]
\t[    --profile String ]
\t[    --version ]
\t[    --devicesfile String ]
\t[    --devices PV ]
\t[    --nohints ]
\t[    --journal String ]

  Use --longhelp to show all options and advanced commands.
command: lvm 'lvs' '-o' 'vg_name,lv_name' '-S' 'lv_role=public && lv_skip_activation!=yes' '--noheadings' '--separator' '/'
libguestfs: trace: lvs = []
libguestfs: trace: inspect_os
guestfsd: => lvs (0xb) took 0.03 secs
guestfsd: <= inspect_os (0x1e0) request length 40 bytes
command: lvm returned 0
command: ls '-1v' '/dev/disk/by-path'
command: ls returned 0
command: ls: stdout:
pci-0000:00:02.0-scsi-0:0:0:0
pci-0000:00:02.0-scsi-0:0:0:0-part
pci-0000:00:02.0-scsi-0:0:0:0-part1
pci-0000:00:02.0-scsi-0:0:0:0-part2
pci-0000:00:02.0-scsi-0:0:1:0
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle -E /dev/sda
No filesystem is currently mounted on /sys/fs/cgroup.
Failed to determine unit we run in, ignoring: No data available
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle -E /dev/sdb
No filesystem is currently mounted on /sys/fs/cgroup.
Failed to determine unit we run in, ignoring: No data available
command: ls '-1v' '/dev/disk/by-path'
command: ls returned 0
command: ls: stdout:
pci-0000:00:02.0-scsi-0:0:0:0
pci-0000:00:02.0-scsi-0:0:0:0-part
pci-0000:00:02.0-scsi-0:0:0:0-part1
pci-0000:00:02.0-scsi-0:0:0:0-part2
pci-0000:00:02.0-scsi-0:0:1:0
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle -E /dev/sda
No filesystem is currently mounted on /sys/fs/cgroup.
Failed to determine unit we run in, ignoring: No data available
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle -E /dev/sdb
No filesystem is currently mounted on /sys/fs/cgroup.
Failed to determine unit we run in, ignoring: No data available
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle
No filesystem is currently mounted on /sys/fs/cgroup.
Failed to determine unit we run in, ignoring: No data available
command: parted '-m' '-s' '--' '/dev/sda' 'unit' 'b' 'print'
command: parted returned 0
command: parted: stdout:
BYT;
/dev/sda:137438953472B:scsi:512:512:gpt:QEMU QEMU HARDDISK:;
1:20480B:209735679B:209715200B:fat16:EFI System Partition:boot, esp;
2:209735680B:137304715263B:137094979584B:::;
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle
No filesystem is currently mounted on /sys/fs/cgroup.
Failed to determine unit we run in, ignoring: No data available
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle
No filesystem is currently mounted on /sys/fs/cgroup.
Failed to determine unit we run in, ignoring: No data available
command: sfdisk '--part-type' '/dev/sda' '1'
command: sfdisk returned 0
command: sfdisk: stdout:
C12A7328-F81F-11D2-BA4B-00A0C93EC93B
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle
No filesystem is currently mounted on /sys/fs/cgroup.
Failed to determine unit we run in, ignoring: No data available
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle
No filesystem is currently mounted on /sys/fs/cgroup.
Failed to determine unit we run in, ignoring: No data available
command: parted '-m' '-s' '--' '/dev/sda' 'unit' 'b' 'print'
command: parted returned 0
command: parted: stdout:
BYT;
/dev/sda:137438953472B:scsi:512:512:gpt:QEMU QEMU HARDDISK:;
1:20480B:209735679B:209715200B:fat16:EFI System Partition:boot, esp;
2:209735680B:137304715263B:137094979584B:::;
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle
No filesystem is currently mounted on /sys/fs/cgroup.
Failed to determine unit we run in, ignoring: No data available
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle
No filesystem is currently mounted on /sys/fs/cgroup.
Failed to determine unit we run in, ignoring: No data available
command: sfdisk '--part-type' '/dev/sda' '2'
command: sfdisk returned 0
command: sfdisk: stdout:
7C3457EF-0000-11AA-AA11-00306543ECAC
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle
No filesystem is currently mounted on /sys/fs/cgroup.
Failed to determine unit we run in, ignoring: No data available
command: blkid '-c' '/dev/null' '-o' 'value' '-s' 'TYPE' '/dev/sda1'
command: blkid returned 0
command: blkid: stdout:
vfat
command: blkid '-c' '/dev/null' '-o' 'value' '-s' 'TYPE' '/dev/sda2'
command: blkid returned 0
command: blkid: stdout:
apfs
command: lvm 'lvs' '-o' 'vg_name,lv_name' '-S' 'lv_role=public && lv_skip_activation!=yes' '--noheadings' '--separator' '/'
command: lvm returned 0
check_for_filesystem_on: /dev/sda1 (vfat)
command: mount '-o' 'ro' '/dev/sda1' '/sysroot//'
command: mount returned 0
chroot: /sysroot: running 'is_file: /grub/menu.lst'
chroot: /sysroot: running 'is_file: /grub/grub.conf'
chroot: /sysroot: running 'is_file: /grub2/grub.cfg'
chroot: /sysroot: running 'is_dir: /etc'
chroot: /sysroot: running 'is_dir: /etc'
chroot: /sysroot: running 'is_dir: /etc'
chroot: /sysroot: running 'is_file: /hurd/console'
chroot: /sysroot: running 'is_dir: /etc'
chroot: /sysroot: running 'is_dir: /etc'
chroot: /sysroot: running 'is_dir: /etc'
chroot: /sysroot: running 'is_dir: /etc'
chroot: /sysroot: running 'is_dir: /bin'
chroot: /sysroot: running 'is_dir: /bin'
chroot: /sysroot: running 'is_dir: /log'
chroot: /sysroot: running 'case_sensitive_path: /windows'
chroot: /sysroot: running 'case_sensitive_path: /windows/system32'
chroot: /sysroot: running 'case_sensitive_path: /winnt'
chroot: /sysroot: running 'case_sensitive_path: /winnt/system32'
chroot: /sysroot: running 'case_sensitive_path: /win32'
chroot: /sysroot: running 'case_sensitive_path: /win32/system32'
chroot: /sysroot: running 'case_sensitive_path: /win'
chroot: /sysroot: running 'case_sensitive_path: /win/system32'
chroot: /sysroot: running 'case_sensitive_path: /reactos'
chroot: /sysroot: running 'case_sensitive_path: /reactos/system32'
chroot: /sysroot: running 'case_sensitive_path: /boot.ini'
chroot: /sysroot: running 'get_windows_systemroot_from_boot_ini'
chroot: /sysroot: running 'case_sensitive_path: /System Volume Information'
chroot: /sysroot: running 'is_dir: /System Volume Information'
chroot: /sysroot: running 'case_sensitive_path: /System Volume Information'
chroot: /sysroot: running 'is_dir: /System Volume Information'
chroot: /sysroot: running 'case_sensitive_path: /FDOS'
chroot: /sysroot: running 'is_dir: /FDOS'
chroot: /sysroot: running 'case_sensitive_path: /DOS'
chroot: /sysroot: running 'is_dir: /DOS'
check_filesystem: /dev/sda1 matched no known OS partition
command: umount '/sysroot'
command: umount returned 0
check_for_filesystem_on: /dev/sda2 (apfs)
command: mount '-o' 'ro' '/dev/sda2' '/sysroot//'
command: mount returned 32
command: mount: stderr:
mount: /sysroot: unknown filesystem type 'apfs'.
       dmesg(1) may have more information after failed mount system call.
inspect_os: fses:
fs: /dev/sda1 (vfat) role: other
inspect_get_roots: roots:
guestfsd: => inspect_os (0x1e0) took 0.40 secs
libguestfs: trace: inspect_os = []
virt-sysprep: error: no operating systems were found in the guest image
libguestfs: trace: close
libguestfs: closing guestfs handle 0x592582c450b0 (state 2)
libguestfs: trace: internal_autosync
guestfsd: <= internal_autosync (0x11a) request length 40 bytes
umount-all: /proc/mounts: fsname=/dev/root dir=/ type=ext2 opts=rw,noatime freq=0 passno=0
umount-all: /proc/mounts: fsname=/proc dir=/proc type=proc opts=rw,relatime freq=0 passno=0
umount-all: /proc/mounts: fsname=/sys dir=/sys type=sysfs opts=rw,relatime freq=0 passno=0
umount-all: /proc/mounts: fsname=/dev dir=/dev type=devtmpfs opts=rw,relatime,size=611840k,nr_inodes=152960,mode=755,inode64 freq=0 passno=0
umount-all: /proc/mounts: fsname=/dev/pts dir=/dev/pts type=devpts opts=rw,relatime,mode=600,ptmxmode=000 freq=0 passno=0
umount-all: /proc/mounts: fsname=shmfs dir=/dev/shm type=tmpfs opts=rw,relatime,inode64 freq=0 passno=0
umount-all: /proc/mounts: fsname=tmpfs dir=/run type=tmpfs opts=rw,nosuid,relatime,size=248064k,mode=755,inode64 freq=0 passno=0
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle -E /dev/sdb
No filesystem is currently mounted on /sys/fs/cgroup.
Failed to determine unit we run in, ignoring: No data available
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle -E /dev/sda
No filesystem is currently mounted on /sys/fs/cgroup.
Failed to determine unit we run in, ignoring: No data available
fsync /dev/sda
guestfsd: => internal_autosync (0x11a) took 0.04 secs
libguestfs: trace: internal_a
8000
utosync = 0
libguestfs: sending SIGTERM to process 2976775
libguestfs: qemu maxrss 265836K
libguestfs: command: run: rm
libguestfs: command: run: \ -rf /tmp/libguestfsKkZET5
libguestfs: command: run: rm
libguestfs: command: run: \ -rf /run/user/1000/libguestfsYMlWFi

I haven't tried to install either apfs-fuse or linux-apfs-rw yet, but was curious if anyone's tried this and if this is a viable path?

It looks like at least linux-apfs-rw has recently allowed for Read/Write APFS mounts to be enabled by default... maybe it's worth testing?

@rwmjones
Copy link
Member
rwmjones commented Jan 8, 2025

The lack of support for apfs would be a Linux kernel issue. Does Linux actually support that at all? Edit: OK I see the out of tree module. Is that going upstream into Linux any time soon?

In general, it's possible, but it's a considerable amount of work. The first issue is that libguestfs inspection doesn't recognize macOS. It does already recognize many Linux distros and many Windows versions, so macOS is a logical extension, but it's not implemented right now. See:
https://github.com/libguestfs/libguestfs/tree/master/daemon inspect_*.ml

Inspection is the hard part. Adding sysprepping support for macOS to virt-sysprep would be relatively easy, if you know what kinds of files need to be deleted/reverted.

@trinitronx
Copy link
Author
trinitronx commented Jan 9, 2025

Is that going upstream into Linux any time soon?

A good question which I had also wondered about...

Looks like someone asked this question. Their answer was:

The driver is still very far from being ready for upstream. Even if we get there, there is no guarantee that upstream we'll want it. But sure, I'll try to submit someday; it would be nice to stop worrying about supporting all kernel versions. Do you need this to be upstream for any particular reason?

So, it may not be anytime soon but hopefully some day.

In general, it's possible, but it's a considerable amount of work. The first issue is that libguestfs inspection doesn't recognize macOS. It does already recognize many Linux distros and many Windows versions, so macOS is a logical extension, but it's not implemented right now. See:
https://github.com/libguestfs/libguestfs/tree/master/daemon inspect_*.ml

Inspection is the hard part. Adding sysprepping support for macOS to virt-sysprep would be relatively easy, if you know what kinds of files need to be deleted/reverted.

Thanks! Makes a lot of sense, given the nature of config management and provisioning often requiring discovery tools (e.g. Puppet's facter, Chef's ohai, Ansible's facts ,etc...). Given macOS's root volume changes since Catalina, some slight complexity would need to be worked around to detect which volume is which. They now have 2 main APFS volumes, one for root (a.k.a. the OS system volume) and one for "Data" (a.k.a. user home directories & data).

It sounds like the support for this is in virt-sysprep is not there (yet... maybe someday). I was just curious as to the feasibility for drop-in use if I got past the APFS read/write mount 1. I discovered virt-sysprep from using tools like vagrant-libvirt which automatically run virt-sysprep and virt-sparsify 2 during vagrant package. The error I posted above occurred when trying to package a macOS guest VM as a vagrant .box.

I guess for now I should try to simply disable this step, or manually "sysprep" the image by hand or with scripts.

[1] details

$ virt-filesystems --all --long --uuid -a /tmp/lyraphase-runner-macos-monterey-12-1-base/box.img
Name      Type       VFS  Label MBR Size         Parent   UUID
/dev/sda1 filesystem vfat EFI   -   152346624    -        0E8C-E277
/dev/sda2 filesystem apfs -     -   137094979584 -        88f32947-1c60-4f58-a51a-d7abc3f8e031
/dev/sda1 partition  -    -     -   209715200    /dev/sda -
/dev/sda2 partition  -    -     -   137094979584 /dev/sda -
/dev/sda  device     -    -     -   137438953472 -        -

$ guestmount -a /tmp/lyraphase-runner-macos-monterey-12-1-base/box.img -m /dev/sda2 /tmp/guestfs-apfs-test

$  mount | grep -i apfs
/dev/fuse on /tmp/guestfs-apfs-test type fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)

$ ls -l /tmp/guestfs-apfs-test
total 0
drwxrwxr-x 1 root   80 0 Jan  2  2022  Applications
drwxr-xr-x 1 root root 0 Dec  7  2021  cores
drwxr-xr-x 1 root root 0 Dec  7  2021  home
drwxr-xr-x 1 root root 0 Jan  1  2022  Library
drwxr-xr-x 1 root root 0 Dec  7  2021  mnt
drwxr-xr-x 1 root root 0 Dec  7  2021  opt
drwxr-xr-x 1 root   80 0 Dec 31  2021 'Previous Content'
drwxr-xr-x 1 root root 0 Dec  7  2021  private
drwxr-xr-x 1 root root 0 Dec  7  2021  sw
drwxr-xr-x 1 root root 0 Dec  7  2021  System
drwxr-xr-x 1 root   80 0 Jan  1  2022  Users
drwxr-xr-x 1 root root 0 Dec  7  2021  usr
drwxr-xr-x 1 root root 0 Jan 16  2022  Volumes

[2] details

$  virt-sparsify --verbose  --in-place /tmp/lyraphase-runner-macos-monterey-12-1-base/box.img

[...SNIP...]

command: blkid '-c' '/dev/null' '-o' 'value' '-s' 'TYPE' '/dev/sda1'
command: blkid returned 0
command: blkid: stdout:
vfat
command: blkid '-c' '/dev/null' '-o' 'value' '-s' 'TYPE' '/dev/sda2'
command: blkid returned 0
command: blkid: stdout:
apfs

[...SNIP...]

[   2.6] Trimming /dev/sda1
guestfsd: => mount_options (0x4a) took 0.04 secs
guestfsd: <= fstrim (0x14e) request length 72 bytes

[...SNIP...]

fsync /dev/sda
commandrvf: stdout=y stderr=y flags=0x0
commandrvf: fstrim -v /sysroot/
/sysroot/: 129.5 MiB (135753728 bytes) trimmed

[...SNIP...]

command: mount '-o' 'discard' '/dev/sda2' '/sysroot//'
command: mount returned 32
command: mount: stderr:
mount: /sysroot: wrong fs type, bad option, bad superblock on /dev/sda2, missing codepage or helper program, or other error.
       dmesg(1) may have more information after failed mount system call.
ocaml_exn: 'mount_options' raised 'Failure' exception
guestfsd: error: mount exited with status 32: mount: /sysroot: wrong fs type, bad option, bad superblock on /dev/sda2, missing codepage or helper program, or other error.
       dmesg(1) may have more information after failed mount system call.
guestfsd: => mount_options (0x4a) took 0.02 secs
guestfsd: <= pread_device (0x114) request length 68 bytes

[...SNIP...]

[   2.8] Sparsify in-place operation completed with no errors

$ echo $?
0

Footnotes

  1. FWIW, I just tested guestmount with linux-apfs-rw @ latest commit 1643ae2 installed via DKMS. It worked!

  2. Thankfully, vagrant package works! Testing virt-sparsify alone (see [2] details) on the qcow2 image also completed without failures (and "sparsified" the EFI vfat partition), but evidently the apfs filesystem partition doesn't yet support TRIM via mount -o discard, so it silently fails to trim the APFS volume and moves on. Luckily, I had previously booted the QEMU VM with discard='unmap' & <target ... rotation_rate='1' />, then manually issued sudo trimforce enable, and finally zeroed the APFS OS volume internally inside macOS to "sparsify" it (sudo dd if=/dev/zero of=/wipefile bs=4m; sudo rm /wipefile). So, for my purposes at least, this method still works! 🤷

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants
0