Skip to content
View in the app

A better way to browse. Learn more.

Armbian Community Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

mounting rw partition along with overlayroot

Featured Replies

Hi Experts,

 

I am trying to achieve following and facing some difficulties. Hope you can guide me.

 

Target: Freez rootfs with overlayroot but allow application to write data file on permanent basis in separate partition on sd card.

 

Steps Taken:

1. Partition SD card (8GB) with rootfs in primary partition (4GB) and extended/logical partition (4GB). 

2. Formatted logical partition (ext4)

3. Created Entry in fstab to mount logical partition automatically at boot.

4. Run overlay root as described in https://docs.armbian.com/User-Guide_Advanced-Features/#how-to-freeze-your-filesystem

 

Behaviour Observed:

Partition is mounted at boot and files can be created but changes on partition disappear on reboot due to overlayroot.

 

Qustion: Is there any way to mount partition for permanent read/write?

 

My etc in overlay-chroot looks as follows

UID=fd472eba-571d-4583-8873-97f09353655c / ext4 defaults,noatime,nodiratime,commit=600,errors=remount-ro 0 1
tmpfs /tmp tmpfs defaults,nosuid 0 0
/var/swap none swap sw 0 0
/dev/mmcblk0p5 /mnt/data ext4 defaults 0 2

But when system is booted /etc/fstab on NON overlay-chroot mode looks as below

UUID=fd472eba-571d-4583-8873-97f09353655c /media/root-ro/ ext4 ro,defaults,noatime,nodiratime,commit=600,errors=remount-ro 0 1
/media/root-ro/ / overlayfs lowerdir=/media/root-ro/,upperdir=/media/root-rw/overlay/ 0 1
tmpfs /tmp tmpfs defaults,nosuid 0 0 # overlayroot:fs-virtual
#overlayroot:swap=0#/var/swap none swap sw 0 0
/dev/mmcblk0p5 /media/root-ro/mnt/data ext4 ro,defaults 0 2
/media/root-ro/mnt/data /mnt/data overlayfs lowerdir=/media/root-ro/mnt/data,upperdir=/media/root-rw/overlay/mnt/data 0 2

 Since my partition as specified in /etc/fstab is mounted by overlayroot it is automatically changed to have changes on temp basis.

 

Question:

Is there a way to specify in /etc/fstab that a particular mount point should not be touched by overlayroot?

 

Thanks 

The Debian packages bilibop(-*) are what you want. It works with kernels that have either aufs or overlayfs. You must be using initramfs-tools (as opposed to dracut). When your initrd is rebuilt it includes some of its scripts and files that do the magic. Use a normal /etc/fstab. In the bilibop configuration file you can whitelist other partitions that you want mounted normally.

 

You have to put in a kernel command line argument, I like 'lockfs=soft', but other options are available. With lockfs=soft the real rootfs is mounted read-only at either /overlay/ro or /aufs/ro. You can, as root, do something like below if you need to change something permanently:

root@skylight1:~$ mount -o remount,rw /overlay/ro
root@skylight1:~$ chroot /overlay/ro
root@skylight1:/$ .... do your work here
root@skylight1:/$ exit
root@skylight1:~$ mount -o remount,ro /overlay/ro

For simple file edits that's it. But some operations, say 'apt-get install somepackage', will require more work. You'll need to bind mount /dev, /proc and maybe others to /overlay/ro before entering the chroot (and umounting it all later).

 

One caution: if you use lockfs=hard (good for kiosk mode) you can paint yourself into a corner where you can't change the system at all. You'd have to mount your rootfs on another system (if you're working off an SD card) or NFS boot if you're working off of MMC.

 

 The included /usr/share/doc/bilibop* files are pretty good at explaining how it works.

Guest
This topic is now closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.