Broken after commit 6ee0b1c, No such file or directory
hshh opened this issue · comments
Broken after commit 6ee0b1c
Warning: Failed mounting /boot as an overlay, see /tmp/tmp.nwIl2siLYA
Warning: Failed mounting /boot/efi as an overlay, see /tmp/tmp.nwIl2siLYA
/tmp/tmp.kIsD0QvoHA: line 5: /tmp/tmp.uqN6ZNuDyl: No such file or directory
/tmp/tmp.qU8jIEuvWJ
OS: Archlinux.
Could you please send the full output after adding set -x
after every line in try that containes #!/bin/sh (should be three of them)
Can you confirm that it worked before that commit?
Yes, it worked before that commit.
Attached set -x log
- TRY_VERSION=0.1.0
- NO_COMMIT=interactive
- getopts :yvnD: opt
- case "$opt" in
- NO_COMMIT=show
- getopts :yvnD: opt
- shift 1
- '[' 1 -eq 0 ']'
- case "$1" in
- try bash
- START_DIR=/home/hshh
- '[' '' ']'
++ mktemp -d - SANDBOX_DIR=/tmp/tmp.yYq06Th9z0
- export SANDBOX_DIR
- mkdir -p /tmp/tmp.yYq06Th9z0/upperdir /tmp/tmp.yYq06Th9z0/workdir /tmp/tmp.yYq06Th9z0/temproot
- for top_dir in /*
- '[' -d /bin ']'
- mkdir /tmp/tmp.yYq06Th9z0/upperdir//bin /tmp/tmp.yYq06Th9z0/workdir//bin /tmp/tmp.yYq06Th9z0/temproot//bin
- for top_dir in /*
- '[' -d /boot ']'
- mkdir /tmp/tmp.yYq06Th9z0/upperdir//boot /tmp/tmp.yYq06Th9z0/workdir//boot /tmp/tmp.yYq06Th9z0/temproot//boot
- for top_dir in /*
- '[' -d /data ']'
- mkdir /tmp/tmp.yYq06Th9z0/upperdir//data /tmp/tmp.yYq06Th9z0/workdir//data /tmp/tmp.yYq06Th9z0/temproot//data
- for top_dir in /*
- '[' -d /dev ']'
- mkdir /tmp/tmp.yYq06Th9z0/upperdir//dev /tmp/tmp.yYq06Th9z0/workdir//dev /tmp/tmp.yYq06Th9z0/temproot//dev
- for top_dir in /*
- '[' -d /etc ']'
- mkdir /tmp/tmp.yYq06Th9z0/upperdir//etc /tmp/tmp.yYq06Th9z0/workdir//etc /tmp/tmp.yYq06Th9z0/temproot//etc
- for top_dir in /*
- '[' -d /home ']'
- mkdir /tmp/tmp.yYq06Th9z0/upperdir//home /tmp/tmp.yYq06Th9z0/workdir//home /tmp/tmp.yYq06Th9z0/temproot//home
- for top_dir in /*
- '[' -d /lib ']'
- mkdir /tmp/tmp.yYq06Th9z0/upperdir//lib /tmp/tmp.yYq06Th9z0/workdir//lib /tmp/tmp.yYq06Th9z0/temproot//lib
- for top_dir in /*
- '[' -d /lib64 ']'
- mkdir /tmp/tmp.yYq06Th9z0/upperdir//lib64 /tmp/tmp.yYq06Th9z0/workdir//lib64 /tmp/tmp.yYq06Th9z0/temproot//lib64
- for top_dir in /*
- '[' -d /lost+found ']'
- mkdir /tmp/tmp.yYq06Th9z0/upperdir//lost+found /tmp/tmp.yYq06Th9z0/workdir//lost+found /tmp/tmp.yYq06Th9z0/temproot//lost+found
- for top_dir in /*
- '[' -d /mnt ']'
- mkdir /tmp/tmp.yYq06Th9z0/upperdir//mnt /tmp/tmp.yYq06Th9z0/workdir//mnt /tmp/tmp.yYq06Th9z0/temproot//mnt
- for top_dir in /*
- '[' -d /opt ']'
- mkdir /tmp/tmp.yYq06Th9z0/upperdir//opt /tmp/tmp.yYq06Th9z0/workdir//opt /tmp/tmp.yYq06Th9z0/temproot//opt
- for top_dir in /*
- '[' -d /proc ']'
- mkdir /tmp/tmp.yYq06Th9z0/upperdir//proc /tmp/tmp.yYq06Th9z0/workdir//proc /tmp/tmp.yYq06Th9z0/temproot//proc
- for top_dir in /*
- '[' -d /root ']'
- mkdir /tmp/tmp.yYq06Th9z0/upperdir//root /tmp/tmp.yYq06Th9z0/workdir//root /tmp/tmp.yYq06Th9z0/temproot//root
- for top_dir in /*
- '[' -d /run ']'
- mkdir /tmp/tmp.yYq06Th9z0/upperdir//run /tmp/tmp.yYq06Th9z0/workdir//run /tmp/tmp.yYq06Th9z0/temproot//run
- for top_dir in /*
- '[' -d /sbin ']'
- mkdir /tmp/tmp.yYq06Th9z0/upperdir//sbin /tmp/tmp.yYq06Th9z0/workdir//sbin /tmp/tmp.yYq06Th9z0/temproot//sbin
- for top_dir in /*
- '[' -d /srv ']'
- mkdir /tmp/tmp.yYq06Th9z0/upperdir//srv /tmp/tmp.yYq06Th9z0/workdir//srv /tmp/tmp.yYq06Th9z0/temproot//srv
- for top_dir in /*
- '[' -d /swapfile ']'
- for top_dir in /*
- '[' -d /sys ']'
- mkdir /tmp/tmp.yYq06Th9z0/upperdir//sys /tmp/tmp.yYq06Th9z0/workdir//sys /tmp/tmp.yYq06Th9z0/temproot//sys
- for top_dir in /*
- '[' -d /tmp ']'
- mkdir /tmp/tmp.yYq06Th9z0/upperdir//tmp /tmp/tmp.yYq06Th9z0/workdir//tmp /tmp/tmp.yYq06Th9z0/temproot//tmp
- for top_dir in /*
- '[' -d /usr ']'
- mkdir /tmp/tmp.yYq06Th9z0/upperdir//usr /tmp/tmp.yYq06Th9z0/workdir//usr /tmp/tmp.yYq06Th9z0/temproot//usr
- for top_dir in /*
- '[' -d /var ']'
- mkdir /tmp/tmp.yYq06Th9z0/upperdir//var /tmp/tmp.yYq06Th9z0/workdir//var /tmp/tmp.yYq06Th9z0/temproot//var
++ mktemp - mount_and_execute=/tmp/tmp.bQMjrA9zrN
++ mktemp - export chroot_executable=/tmp/tmp.8c3XGHS86r
- chroot_executable=/tmp/tmp.8c3XGHS86r
++ mktemp - export try_mount_log=/tmp/tmp.3EdQrjqEVT
- try_mount_log=/tmp/tmp.3EdQrjqEVT
++ mktemp - export script_to_execute=/tmp/tmp.quHrlbd81g
- script_to_execute=/tmp/tmp.quHrlbd81g
- cat
- cat
- echo bash
- chmod +x /tmp/tmp.bQMjrA9zrN /tmp/tmp.8c3XGHS86r
- set -m
- unshare --mount --map-root-user --user --pid --fork /tmp/tmp.bQMjrA9zrN
/tmp/tmp.8c3XGHS86r: line 5: /tmp/tmp.quHrlbd81g: No such file or directory - exitcode=1
- case "$NO_COMMIT" in
- printf '%s\n' /tmp/tmp.yYq06Th9z0
/tmp/tmp.yYq06Th9z0 - exit 1
Hello, could you try again but remove the ‘set -m’ at line 98. and making sure the other two ‘set -x’ is set.
could you also try using the branch nested-mount?
- Tried to remove line 98 'set -m', not work.
- branch nested-mount, Error: Failed to mount overlayfs normally, mergerfs or unionfs not found for /run, see /tmp/tmp.2HDGhcPeFv
% cat /tmp/tmp.2HDGhcPeFv
mount: /tmp/tmp.RqsG9C9s8e/temproot/run: wrong fs type, bad option, bad superblock on overlay, missing codepage or helper program, or other error.
dmesg(1) may have more information after failed mount system call.
- TRY_VERSION=0.1.0
- NO_COMMIT=interactive
- getopts :yvnD:U: opt
- case "$opt" in
- NO_COMMIT=show
- getopts :yvnD:U: opt
- shift 1
- '[' 1 -eq 0 ']'
- case "$1" in
- try bash
- START_DIR=/home/hshh
- command -v findmnt
- '[' '' ']'
++ mktemp -d - SANDBOX_DIR=/tmp/tmp.JoPBePmOhV
- export SANDBOX_DIR
- mkdir -p /tmp/tmp.JoPBePmOhV/upperdir /tmp/tmp.JoPBePmOhV/workdir /tmp/tmp.JoPBePmOhV/temproot
++ findmnt --real -r -o target -n
++ grep -v '^/$' - for mointpoint in /*
$(findmnt --real -r -o target -n | grep -v "^/$ ") - '[' -d /bin ']'
- mkdir -p /tmp/tmp.JoPBePmOhV/upperdir//bin /tmp/tmp.JoPBePmOhV/workdir//bin /tmp/tmp.JoPBePmOhV/temproot//bin
- for mointpoint in /*
$(findmnt --real -r -o target -n | grep -v "^/$ ") - '[' -d /boot ']'
- mkdir -p /tmp/tmp.JoPBePmOhV/upperdir//boot /tmp/tmp.JoPBePmOhV/workdir//boot /tmp/tmp.JoPBePmOhV/temproot//boot
- for mointpoint in /*
$(findmnt --real -r -o target -n | grep -v "^/$ ") - '[' -d /data ']'
- mkdir -p /tmp/tmp.JoPBePmOhV/upperdir//data /tmp/tmp.JoPBePmOhV/workdir//data /tmp/tmp.JoPBePmOhV/temproot//data
- for mointpoint in /*
$(findmnt --real -r -o target -n | grep -v "^/$ ") - '[' -d /dev ']'
- mkdir -p /tmp/tmp.JoPBePmOhV/upperdir//dev /tmp/tmp.JoPBePmOhV/workdir//dev /tmp/tmp.JoPBePmOhV/temproot//dev
- for mointpoint in /*
$(findmnt --real -r -o target -n | grep -v "^/$ ") - '[' -d /etc ']'
- mkdir -p /tmp/tmp.JoPBePmOhV/upperdir//etc /tmp/tmp.JoPBePmOhV/workdir//etc /tmp/tmp.JoPBePmOhV/temproot//etc
- for mointpoint in /*
$(findmnt --real -r -o target -n | grep -v "^/$ ") - '[' -d /home ']'
- mkdir -p /tmp/tmp.JoPBePmOhV/upperdir//home /tmp/tmp.JoPBePmOhV/workdir//home /tmp/tmp.JoPBePmOhV/temproot//home
- for mointpoint in /*
$(findmnt --real -r -o target -n | grep -v "^/$ ") - '[' -d /lib ']'
- mkdir -p /tmp/tmp.JoPBePmOhV/upperdir//lib /tmp/tmp.JoPBePmOhV/workdir//lib /tmp/tmp.JoPBePmOhV/temproot//lib
- for mointpoint in /*
$(findmnt --real -r -o target -n | grep -v "^/$ ") - '[' -d /lib64 ']'
- mkdir -p /tmp/tmp.JoPBePmOhV/upperdir//lib64 /tmp/tmp.JoPBePmOhV/workdir//lib64 /tmp/tmp.JoPBePmOhV/temproot//lib64
- for mointpoint in /*
$(findmnt --real -r -o target -n | grep -v "^/$ ") - '[' -d /lost+found ']'
- mkdir -p /tmp/tmp.JoPBePmOhV/upperdir//lost+found /tmp/tmp.JoPBePmOhV/workdir//lost+found /tmp/tmp.JoPBePmOhV/temproot//lost+found
- for mointpoint in /*
$(findmnt --real -r -o target -n | grep -v "^/$ ") - '[' -d /mnt ']'
- mkdir -p /tmp/tmp.JoPBePmOhV/upperdir//mnt /tmp/tmp.JoPBePmOhV/workdir//mnt /tmp/tmp.JoPBePmOhV/temproot//mnt
- for mointpoint in /*
$(findmnt --real -r -o target -n | grep -v "^/$ ") - '[' -d /opt ']'
- mkdir -p /tmp/tmp.JoPBePmOhV/upperdir//opt /tmp/tmp.JoPBePmOhV/workdir//opt /tmp/tmp.JoPBePmOhV/temproot//opt
- for mointpoint in /*
$(findmnt --real -r -o target -n | grep -v "^/$ ") - '[' -d /proc ']'
- mkdir -p /tmp/tmp.JoPBePmOhV/upperdir//proc /tmp/tmp.JoPBePmOhV/workdir//proc /tmp/tmp.JoPBePmOhV/temproot//proc
- for mointpoint in /*
$(findmnt --real -r -o target -n | grep -v "^/$ ") - '[' -d /root ']'
- mkdir -p /tmp/tmp.JoPBePmOhV/upperdir//root /tmp/tmp.JoPBePmOhV/workdir//root /tmp/tmp.JoPBePmOhV/temproot//root
- for mointpoint in /*
$(findmnt --real -r -o target -n | grep -v "^/$ ") - '[' -d /run ']'
- mkdir -p /tmp/tmp.JoPBePmOhV/upperdir//run /tmp/tmp.JoPBePmOhV/workdir//run /tmp/tmp.JoPBePmOhV/temproot//run
- for mointpoint in /*
$(findmnt --real -r -o target -n | grep -v "^/$ ") - '[' -d /sbin ']'
- mkdir -p /tmp/tmp.JoPBePmOhV/upperdir//sbin /tmp/tmp.JoPBePmOhV/workdir//sbin /tmp/tmp.JoPBePmOhV/temproot//sbin
- for mointpoint in /*
$(findmnt --real -r -o target -n | grep -v "^/$ ") - '[' -d /srv ']'
- mkdir -p /tmp/tmp.JoPBePmOhV/upperdir//srv /tmp/tmp.JoPBePmOhV/workdir//srv /tmp/tmp.JoPBePmOhV/temproot//srv
- for mointpoint in /*
$(findmnt --real -r -o target -n | grep -v "^/$ ") - '[' -d /swapfile ']'
- for mointpoint in /*
$(findmnt --real -r -o target -n | grep -v "^/$ ") - '[' -d /sys ']'
- mkdir -p /tmp/tmp.JoPBePmOhV/upperdir//sys /tmp/tmp.JoPBePmOhV/workdir//sys /tmp/tmp.JoPBePmOhV/temproot//sys
- for mointpoint in /*
$(findmnt --real -r -o target -n | grep -v "^/$ ") - '[' -d /tmp ']'
- mkdir -p /tmp/tmp.JoPBePmOhV/upperdir//tmp /tmp/tmp.JoPBePmOhV/workdir//tmp /tmp/tmp.JoPBePmOhV/temproot//tmp
- for mointpoint in /*
$(findmnt --real -r -o target -n | grep -v "^/$ ") - '[' -d /usr ']'
- mkdir -p /tmp/tmp.JoPBePmOhV/upperdir//usr /tmp/tmp.JoPBePmOhV/workdir//usr /tmp/tmp.JoPBePmOhV/temproot//usr
- for mointpoint in /*
$(findmnt --real -r -o target -n | grep -v "^/$ ") - '[' -d /var ']'
- mkdir -p /tmp/tmp.JoPBePmOhV/upperdir//var /tmp/tmp.JoPBePmOhV/workdir//var /tmp/tmp.JoPBePmOhV/temproot//var
++ mktemp - mount_and_execute=/tmp/tmp.ezuY2nKyMb
++ mktemp - export chroot_executable=/tmp/tmp.Ttozmq5eAO
- chroot_executable=/tmp/tmp.Ttozmq5eAO
++ mktemp - export try_mount_log=/tmp/tmp.9RnWvhcKwb
- try_mount_log=/tmp/tmp.9RnWvhcKwb
++ mktemp - export script_to_execute=/tmp/tmp.D0ozg0xbRr
- script_to_execute=/tmp/tmp.D0ozg0xbRr
- cat
- cat
- echo bash
- chmod +x /tmp/tmp.ezuY2nKyMb /tmp/tmp.Ttozmq5eAO
- set -m
- unshare --mount --map-root-user --user --pid --fork /tmp/tmp.ezuY2nKyMb
Error: Failed to mount overlayfs normally, mergerfs or unionfs not found for /run, see /tmp/tmp.9RnWvhcKwb - exitcode=1
- case "$NO_COMMIT" in
- printf '%s\n' /tmp/tmp.JoPBePmOhV
/tmp/tmp.JoPBePmOhV - exit 1
There is no pre-compiled mergerfs for Arch.
After installed mergerfs, it works, branch nested-mount.
Great
I hope it can be run without mergerfs.
unionfs is also a workable alternative if that works for you, you can also now just pull from the main branch as nested-mount is now merged in.
Could you send the output of the mount
command so we can see why we needed union/mergerfs.
# mount
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
sys on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
dev on /dev type devtmpfs (rw,nosuid,relatime,size=1998176k,nr_inodes=499544,mode=755,inode64)
run on /run type tmpfs (rw,nosuid,nodev,relatime,mode=755,inode64)
efivarfs on /sys/firmware/efi/efivars type efivarfs (rw,nosuid,nodev,noexec,relatime)
/dev/nvme0n1p3 on / type ext4 (rw,relatime,stripe=2)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,inode64)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate,memory_recursiveprot)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
bpf on /sys/fs/bpf type bpf (rw,nosuid,nodev,noexec,relatime,mode=700)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=34,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=1703)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,pagesize=2M)
mqueue on /dev/mqueue type mqueue (rw,nosuid,nodev,noexec,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,nosuid,nodev,noexec,relatime)
tracefs on /sys/kernel/tracing type tracefs (rw,nosuid,nodev,noexec,relatime)
ramfs on /run/credentials/systemd-sysctl.service type ramfs (ro,nosuid,nodev,noexec,relatime,mode=700)
fusectl on /sys/fs/fuse/connections type fusectl (rw,nosuid,nodev,noexec,relatime)
configfs on /sys/kernel/config type configfs (rw,nosuid,nodev,noexec,relatime)
ramfs on /run/credentials/systemd-sysusers.service type ramfs (ro,nosuid,nodev,noexec,relatime,mode=700)
ramfs on /run/credentials/systemd-tmpfiles-setup-dev.service type ramfs (ro,nosuid,nodev,noexec,relatime,mode=700)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev,size=2006528k,nr_inodes=1048576,inode64)
/dev/nvme0n1p2 on /boot/efi type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro)
ramfs on /run/credentials/systemd-tmpfiles-setup.service type ramfs (ro,nosuid,nodev,noexec,relatime,mode=700)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,nosuid,nodev,noexec,relatime)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,size=401304k,nr_inodes=100326,mode=700,inode64)
Can you try pulling from the latest main and removing the exit 1
at line 147
After remove exit 1
line, it can enter try mode. But there is some warning.
tmp.4zlSOZRfJ3: Failed to mount overlayfs normally, mergerfs or unionfs not found for /boot, see /tmp/tmp.IPUkF77Fui
tmp.4zlSOZRfJ3: Warning: Failed to mount /boot via , see "/tmp/tmp.IPUkF77Fui"
tmp.4zlSOZRfJ3: Warning: Failed to mount /run via , see "/tmp/tmp.IPUkF77Fui"
tmp.4zlSOZRfJ3: Warning: Failed to mount /sys via , see "/tmp/tmp.IPUkF77Fui"
tmp.4zlSOZRfJ3: Warning: Failed to mount /boot/efi via , see "/tmp/tmp.IPUkF77Fui"
The warnings are fine, is everything else working?
If you don't care about /sys and /run, it works.