On 9/19/17, Tarmo Kuuse <[email protected]> wrote: > On Tuesday, 19 September 2017 20:03:46 UTC+3, Britton Kerin wrote: >> >> On Mon, Sep 18, 2017 at 2:21 AM, Tarmo Kuuse <[email protected] >> <javascript:>> wrote: >> > On Sunday, 17 September 2017 10:45:16 UTC+3, Britton Kerin wrote: >> >> >> >> On Wed, Sep 6, 2017 at 7:59 AM, Tarmo Kuuse <[email protected]> >> wrote: >> >> > On Tuesday, September 5, 2017 at 1:45:05 AM UTC+3, Britton Kerin >> wrote: >> >> >> >> >> >> Any help modifying the above recipe or pointer to how to do it these >> >> >> >> >> >> days would be appreciated. >> >> > >> >> > >> >> > I just declare the root file system as read-only in fstab and create >> >> > >> >> > some >> >> > ramdisks for stuff that needs to be writable. >> >> > >> >> > LABEL=rootfs / ext4 ro,noatime,errors=remount-ro 0 1 >> >> > debugfs /sys/kernel/debug debugfs defaults 0 0 >> >> > tmpfs /var/log tmpfs defaults,noatime,nosuid,mode=0777,size=128M >> 0 >> >> > 0 >> >> > tmpfs /var/tmp tmpfs defaults,noatime,nosuid,size=16M 0 0 >> >> > tmpfs /tmp tmpfs defaults,noatime,nosuid,size=128M 0 0 >> >> > >> >> > Service generic-board-startup (a.k.a. >> >> > /opt/scripts/boot/generic-startup.sh) >> >> > must run once with a writable root to set up a bunch of stuff (on >> later >> >> > boots it complains, but it doesn't seem to matter). After that you're >> >> > >> >> > stuck >> >> > hacking all the software which expects to be able to write to disk. >> For >> >> > a >> >> > working network, "/etc/resolv.conf" needs symlinking to a writable >> >> > location. >> >> > Many services expect to persistently store their stuff under >> "/var/lib". >> >> > >> >> > I've used tmpfiles.d to create required symlinks, e.g. >> >> > >> >> > $ cat /etc/tmpfiles.d/10-ro-symlinks.conf >> >> > L+ /etc/resolv.conf - - - - /var/run/symlinks/etc/resolv.conf >> >> > L+ /etc/ppp/resolv.conf - - - - /var/run/symlinks/etc/ppp/resolv.conf >> >> > >> >> >> >> Hmm having tried this I don't get it. This fragment seem to be >> assuming >> >> that: >> >> >> >> * the dirs /var/run/symlinks/etc etc. are created somehow, maybe >> >> with a d line in the same file? >> >> >> >> * the link target files /var/run/symlinks/etc/resolv.conf exist, >> >> I guess they can just be empty as connection manager is going to fix >> >> them up for me anyway? >> >> >> >> Thanks, >> >> Britton >> > >> > >> > Right. I wanted to emphasize only the important lines, but prerequisites >> > >> are >> > important too :) >> > >> > Here's the full file >> > >> > #Type Path Mode UID GID Age Argument >> > d /var/run/symlinks 0755 - - - >> > d /var/run/symlinks/etc 0755 - - - >> > d /var/run/symlinks/etc/ppp 0755 - - - >> > f /var/run/symlinks/etc/resolv.conf 0755 - - - >> > f /var/run/symlinks/etc/ppp/resolv.conf 0755 - - - >> > >> > # NB! Connman might override this by linking >> > "/usr/lib/tmpfiles.d/connman_resolvconf.conf" to >> "/run/connman/resolv.conf" >> > L+ /etc/resolv.conf - - - - /var/run/symlinks/etc/resolv.conf >> > L+ /etc/ppp/resolv.conf - - - - /var/run/symlinks/etc/ppp/resolv.conf >> >> Ok this work, thanks so much. There are still a couple things I don't >> get though: >> >> * I notice in your original replay you don't have a tmpfs for /run >> (which is sym linked to from /var/run). So I wonder how the dirs >> and files you create from /etc/tmpfiles.d/10-ro-symlinks.conf are >> getting created, since I would think they would be on the (read-only) >> root file system. Is there something missing from the fstab you >> originally showed? I included this line as well: >> >> tmpfs /run tmpfs defaults,noatime,nosuid,size=16M 0 0 >> >> I haven't gone back and tested without it, so maybe it works as you >> show and I just don't understand how. >> > > The Debian images from Robert already have that set up. "/run" is a tmpfs > and "/var/run" is symlink pointing to it.
Ok. For the record it looks like this happens due to configuration in /etc/default/tmpfs, which configures temp file systems that have to be available early in boot. There's some (disabled) stuff in there to configure /tmp as tmpfs as well, though doing it from fstab as you originally describe seems to work fine. >> * I end up with a rw tmpfs for /root (root home dir), as shown by >> cat /etc/mtab (last line): >> >> root@bbone217slave:/etc# cat /etc/mtab >> sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0 >> proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0 >> udev /dev devtmpfs rw,relatime,size=10240k,nr_inodes=55575,mode=755 0 >> >> 0 >> devpts /dev/pts devpts >> rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0 >> tmpfs /run tmpfs rw,nosuid,noatime,size=16384k,mode=755 0 0 >> /dev/mmcblk1p1 / ext4 ro,noatime,errors=remount-ro,data=ordered 0 0 >> securityfs /sys/kernel/security securityfs >> rw,nosuid,nodev,noexec,relatime 0 0 >> tmpfs /dev/shm tmpfs rw,nosuid,nodev 0 0 >> tmpfs /run/lock tmpfs rw,nosuid,nodev,noexec,relatime,size=5120k 0 0 >> tmpfs /sys/fs/cgroup tmpfs ro,nosuid,nodev,noexec,mode=755 0 0 >> cgroup /sys/fs/cgroup/systemd cgroup >> rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd >> >> >> 0 0 >> cgroup /sys/fs/cgroup/blkio cgroup >> rw,nosuid,nodev,noexec,relatime,blkio 0 0 >> cgroup /sys/fs/cgroup/net_cls,net_prio cgroup >> rw,nosuid,nodev,noexec,relatime,net_cls,net_prio 0 0 >> cgroup /sys/fs/cgroup/devices cgroup >> rw,nosuid,nodev,noexec,relatime,devices 0 0 >> cgroup /sys/fs/cgroup/cpuset cgroup >> rw,nosuid,nodev,noexec,relatime,cpuset 0 0 >> cgroup /sys/fs/cgroup/cpu,cpuacct cgroup >> rw,nosuid,nodev,noexec,relatime,cpu,cpuacct 0 0 >> cgroup /sys/fs/cgroup/perf_event cgroup >> rw,nosuid,nodev,noexec,relatime,perf_event 0 0 >> cgroup /sys/fs/cgroup/pids cgroup rw,nosuid,nodev,noexec,relatime,pids >> >> 0 0 >> cgroup /sys/fs/cgroup/freezer cgroup >> rw,nosuid,nodev,noexec,relatime,freezer 0 0 >> cgroup /sys/fs/cgroup/memory cgroup >> rw,nosuid,nodev,noexec,relatime,memory 0 0 >> systemd-1 /proc/sys/fs/binfmt_misc autofs >> rw,relatime,fd=30,pgrp=1,timeout=0,minproto=5,maxproto=5,direct 0 0 >> mqueue /dev/mqueue mqueue rw,relatime 0 0 >> debugfs /sys/kernel/debug debugfs rw,relatime 0 0 >> fusectl /sys/fs/fuse/connections fusectl rw,relatime 0 0 >> configfs /sys/kernel/config configfs rw,relatime 0 0 >> tmpfs /var/log tmpfs rw,nosuid,noatime,size=131072k,mode=777 0 0 >> tmpfs /var/tmp tmpfs rw,nosuid,noatime,size=16384k 0 0 >> tmpfs /tmp tmpfs rw,nosuid,noatime,size=131072k 0 0 >> tmpfs /root tmpfs rw,relatime 0 0 >> >> I don't know what mechanism causes this? It presumably is why my old >> way of doing this once worked. >> > > No idea. I don't have that last entry for /root. Ah my bad, I have a service that explicitly does it. It's been so long since I touched this thing. Britton -- For more options, visit http://beagleboard.org/discuss --- You received this message because you are subscribed to the Google Groups "BeagleBoard" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/beagleboard/CAC4O8c9JD4PRZ9-STVf3Pmqhi8inZVidudBtDMA%2BDd5K8Wap1A%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
