mwhudson / livefs-editor

GNU General Public License v3.0
68 stars 31 forks source link

Read-only file system error #39

Closed suprematis closed 11 months ago

suprematis commented 1 year ago

I am getting an error when the script is trying to unpack initrd. Below the trace.

Install the snap with:
   snap ack ../../../../tmp/tmpn7_6wfd1/.tmp/tmpmrgs1fnz/dl.assert
   snap install ../../../../tmp/tmpn7_6wfd1/.tmp/tmpmrgs1fnz/dl.snap
  running inject-snap with arguments {'snap': '/tmp/tmpn7_6wfd1/.tmp/tmpmrgs1fnz/dl.snap', 'channel': 'edge'}
    running setup-rootfs with arguments {}
      running unpack-initrd with arguments {}
Traceback (most recent call last):
  File "/root/.pyenv/versions/3.6.15/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/root/.pyenv/versions/3.6.15/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/administrator/subiquity/scripts/livefs-editor/livefs_edit/__main__.py", line 100, in <module>
    main(sys.argv[1:])
  File "/home/administrator/subiquity/scripts/livefs-editor/livefs_edit/__main__.py", line 82, in main
    func(ctxt, **kw)
  File "/home/administrator/subiquity/scripts/livefs-editor/livefs_edit/actions.py", line 58, in impl
    return func(ctxt, **kw)
  File "/home/administrator/subiquity/scripts/livefs-editor/livefs_edit/actions.py", line 297, in add_snap_from_store
    ctxt, snap=download_snap(ctxt, snap_name, channel), channel=channel)
  File "/home/administrator/subiquity/scripts/livefs-editor/livefs_edit/actions.py", line 58, in impl
    return func(ctxt, **kw)
  File "/home/administrator/subiquity/scripts/livefs-editor/livefs_edit/actions.py", line 232, in inject_snap
    rootfs = setup_rootfs(ctxt)
  File "/home/administrator/subiquity/scripts/livefs-editor/livefs_edit/actions.py", line 45, in impl
    r = ctxt._cache[key] = func(ctxt, **kw)
  File "/home/administrator/subiquity/scripts/livefs-editor/livefs_edit/actions.py", line 58, in impl
    return func(ctxt, **kw)
  File "/home/administrator/subiquity/scripts/livefs-editor/livefs_edit/actions.py", line 117, in setup_rootfs
    ctxt.add_sys_mounts(target)
  File "/home/administrator/subiquity/scripts/livefs-editor/livefs_edit/context.py", line 148, in add_sys_mounts
    options=fs['options']))
  File "/home/administrator/subiquity/scripts/livefs-editor/livefs_edit/context.py", line 127, in add_mount
    os.makedirs(mountpoint)
  File "/root/.pyenv/versions/3.6.15/lib/python3.6/os.py", line 220, in makedirs
    mkdir(name, mode)
OSError: [Errno 30] Read-only file system: '/tmp/tmpm9je7le5/rootfs/sys/fs/cgroup/unified'
mwhudson commented 1 year ago

err that's a new one. what does "findmnt --submounts /sys --json --list" return on your system?

(Also are you on Ubuntu?)

suprematis commented 1 year ago

root@ubuntu-images:/home/administrator/subiquity/scripts# cat /etc/*release* DISTRIB_ID=Ubuntu DISTRIB_RELEASE=20.04 DISTRIB_CODENAME=focal DISTRIB_DESCRIPTION="Ubuntu 20.04.6 LTS" NAME="Ubuntu" VERSION="20.04.6 LTS (Focal Fossa)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 20.04.6 LTS" VERSION_ID="20.04" HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" VERSION_CODENAME=focal UBUNTU_CODENAME=focal

{ "filesystems": [ {"target":"/sys", "source":"sysfs", "fstype":"sysfs", "options":"rw,nosuid,nodev,noexec,relatime"}, {"target":"/sys/kernel/security", "source":"securityfs", "fstype":"securityfs", "options":"rw,nosuid,nodev,noexec,relatime"}, {"target":"/sys/fs/cgroup", "source":"tmpfs", "fstype":"tmpfs", "options":"ro,nosuid,nodev,noexec,mode=755"}, {"target":"/sys/fs/cgroup/unified", "source":"cgroup2", "fstype":"cgroup2", "options":"rw,nosuid,nodev,noexec,relatime,nsdelegate"}, {"target":"/sys/fs/cgroup/systemd", "source":"cgroup", "fstype":"cgroup", "options":"rw,nosuid,nodev,noexec,relatime,xattr,name=systemd"}, {"target":"/sys/fs/cgroup/net_cls,net_prio", "source":"cgroup", "fstype":"cgroup", "options":"rw,nosuid,nodev,noexec,relatime,net_cls,net_prio"}, {"target":"/sys/fs/cgroup/perf_event", "source":"cgroup", "fstype":"cgroup", "options":"rw,nosuid,nodev,noexec,relatime,perf_event"}, {"target":"/sys/fs/cgroup/devices", "source":"cgroup", "fstype":"cgroup", "options":"rw,nosuid,nodev,noexec,relatime,devices"}, {"target":"/sys/fs/cgroup/pids", "source":"cgroup", "fstype":"cgroup", "options":"rw,nosuid,nodev,noexec,relatime,pids"}, {"target":"/sys/fs/cgroup/blkio", "source":"cgroup", "fstype":"cgroup", "options":"rw,nosuid,nodev,noexec,relatime,blkio"}, {"target":"/sys/fs/cgroup/rdma", "source":"cgroup", "fstype":"cgroup", "options":"rw,nosuid,nodev,noexec,relatime,rdma"}, {"target":"/sys/fs/cgroup/cpu,cpuacct", "source":"cgroup", "fstype":"cgroup", "options":"rw,nosuid,nodev,noexec,relatime,cpu,cpuacct"}, {"target":"/sys/fs/cgroup/memory", "source":"cgroup", "fstype":"cgroup", "options":"rw,nosuid,nodev,noexec,relatime,memory"}, {"target":"/sys/fs/cgroup/cpuset", "source":"cgroup", "fstype":"cgroup", "options":"rw,nosuid,nodev,noexec,relatime,cpuset"}, {"target":"/sys/fs/cgroup/freezer", "source":"cgroup", "fstype":"cgroup", "options":"rw,nosuid,nodev,noexec,relatime,freezer"}, {"target":"/sys/fs/cgroup/hugetlb", "source":"cgroup", "fstype":"cgroup", "options":"rw,nosuid,nodev,noexec,relatime,hugetlb"}, {"target":"/sys/fs/pstore", "source":"pstore", "fstype":"pstore", "options":"rw,nosuid,nodev,noexec,relatime"}, {"target":"/sys/firmware/efi/efivars", "source":"efivarfs", "fstype":"efivarfs", "options":"rw,nosuid,nodev,noexec,relatime"}, {"target":"/sys/fs/bpf", "source":"none", "fstype":"bpf", "options":"rw,nosuid,nodev,noexec,relatime,mode=700"}, {"target":"/sys/kernel/debug", "source":"debugfs", "fstype":"debugfs", "options":"rw,nosuid,nodev,noexec,relatime"}, {"target":"/sys/kernel/tracing", "source":"tracefs", "fstype":"tracefs", "options":"rw,nosuid,nodev,noexec,relatime"}, {"target":"/sys/fs/fuse/connections", "source":"fusectl", "fstype":"fusectl", "options":"rw,nosuid,nodev,noexec,relatime"}, {"target":"/sys/kernel/config", "source":"configfs", "fstype":"configfs", "options":"rw,nosuid,nodev,noexec,relatime"} ] }

jw-rav commented 11 months ago

I experience this error also. Problem is, that /sys/fs/cgroup is mounted read-only and livefs-editor inherits this setting. As a consequence, the mount point directories for the sub-mounts can not be created.

livefs-editor should probably override this option with rw.

Why do livefs-editor need to mount those virtual filesystems at all? Is it running any processes within this "sandbox"?

jw@h730:/my/src/rep/git/subiquity$ findmnt --submounts /sys --list TARGET SOURCE FSTYPE OPTIONS /sys sysfs sysfs rw,nosuid,nodev,noexec,relatime /sys/kernel/security securityfs securityfs rw,nosuid,nodev,noexec,relatime /sys/fs/cgroup tmpfs tmpfs ro,nosuid,nodev,noexec,mode=755,inode64 /sys/fs/cgroup/unified cgroup2 cgroup2 rw,nosuid,nodev,noexec,relatime /sys/fs/cgroup/systemd cgroup cgroup rw,nosuid,nodev,noexec,relatime,xattr,name=systemd /sys/fs/cgroup/freezer cgroup cgroup rw,nosuid,nodev,noexec,relatime,freezer /sys/fs/cgroup/cpu,cpuacct cgroup cgroup rw,nosuid,nodev,noexec,relatime,cpu,cpuacct /sys/fs/cgroup/net_cls,net_prio cgroup cgroup rw,nosuid,nodev,noexec,relatime,net_cls,net_prio /sys/fs/cgroup/pids cgroup cgroup rw,nosuid,nodev,noexec,relatime,pids /sys/fs/cgroup/devices cgroup cgroup rw,nosuid,nodev,noexec,relatime,devices /sys/fs/cgroup/blkio cgroup cgroup rw,nosuid,nodev,noexec,relatime,blkio /sys/fs/cgroup/cpuset cgroup cgroup rw,nosuid,nodev,noexec,relatime,cpuset,clone_children /sys/fs/cgroup/misc cgroup cgroup rw,nosuid,nodev,noexec,relatime,misc /sys/fs/cgroup/perf_event cgroup cgroup rw,nosuid,nodev,noexec,relatime,perf_event /sys/fs/cgroup/memory cgroup cgroup rw,nosuid,nodev,noexec,relatime,memory /sys/fs/cgroup/hugetlb cgroup cgroup rw,nosuid,nodev,noexec,relatime,hugetlb /sys/fs/cgroup/rdma cgroup cgroup rw,nosuid,nodev,noexec,relatime,rdma /sys/fs/pstore pstore pstore rw,nosuid,nodev,noexec,relatime /sys/firmware/efi/efivars efivarfs efivarfs rw,nosuid,nodev,noexec,relatime /sys/fs/bpf bpf bpf rw,nosuid,nodev,noexec,relatime,mode=700 /sys/kernel/debug debugfs debugfs rw,nosuid,nodev,noexec,relatime /sys/kernel/tracing tracefs tracefs rw,nosuid,nodev,noexec,relatime /sys/fs/fuse/connections fusectl fusectl rw,nosuid,nodev,noexec,relatime /sys/kernel/config configfs configfs rw,nosuid,nodev,noexec,relatime jw@h730:/my/src/rep/git/subiquity$

mwhudson commented 11 months ago

49 should fix this.

Why do livefs-editor need to mount those virtual filesystems at all?

It probably doesn't need to replicate the sys hierarchy quite this faithfully but we do need to set up some of it because...

Is it running any processes within this "sandbox"?

.. yes, in general it does (often to install packages).

jw-rav commented 11 months ago

49 should fix this.

I can confirm: works great for me. Thanks!

Is it running any processes within this "sandbox"? .. yes, in general it does (often to install packages).

Thanks for the clarification!