August 7, 20233 yr Hi all, I need to customize the /etc/fstab during the build to mount a mtd partition and also to override some mountpoints with tmpfs in order to reduce wearing on mmc. So, have added the following lines to customize-image.sh: cat <<EOT >> /etc/fstab # Reduce SD wearing by storing log files into ram (no need as overlayroot is used to freeze all the rootfs) tmpfs /tmp tmpfs defaults,noatime,nosuid,nodev 0 0 tmpfs /run tmpfs defaults,noatime,nosuid,nodev 0 0 tmpfs /var/tmp tmpfs defaults,noatime,nosuid,nodev 0 0 tmpfs /var/log tmpfs defaults,noatime,nosuid,nodev,noexec 0 0 tmpfs /var/lib/logrotate tmpfs defaults,noatime,nosuid,nodev,noexec,size=1m,mode=0755 0 0 tmpfs /var/lib/sudo tmpfs defaults,noatime,nosuid,nodev,noexec,size=1m,mode=0700 0 0 # MTD EEPROM memory dev/mtdblock0 /mnt/mtd jffs2 ro,relatime 0 0 EOT However changes in /etc/fstab are overridden somewhere over the build process, and this is the resulting /etc/fstab: UUID=c8167755-b557-4288-9109-9108bc48dd94 / btrfs defaults,noatime,commit=600 0 1 UUID=27ac6cc6-eff3-4736-a7bd-5517e3b150c0 /boot ext4 defaults,commit=600,errors=remount-ro 0 2 tmpfs /tmp tmpfs defaults,nosuid 0 0 Is there a way to safely patch the /etc/fstab file? Thanks very much! Andrea Edited August 7, 20233 yr by Andrea
September 14, 20233 yr Hello Andrea, I'm also having the same issue. Did you find a solution to the problem? Thanks!
September 21, 20233 yr Hello again! It turns out I solved this problem by utilizing the Extension Hook format_partitions (https://docs.armbian.com/Developer-Guide_Extensions-Hooks/#format_partitions) Essentially you can follow the example outlined here https://docs.armbian.com/Developer-Guide_Extensions/#example where you can write all of your fstab setup logic in its own shell script, say it's called fstab-setup.sh. You'll need to write a function in this fstab-setup.sh script where the function name is formatted as format_partition__func_name() where "func_name" can be any name you like. It's important to note that you will need to have the extension hook name, in this case its format_parition, first in the function name followed by 2 underscores. Finally, in your configuration file, or on the ./compile.sh line, you will need to add ENABLE_EXTENSIONS=fstab-setup where fstab-setup is the name of the shell script. Something like ./compile.sh ENABLE_EXTENSIONS=fstab-setup BOARD=....more args.... Hope this helps!
November 27, 20232 yr Author Hi @jesus2k21 , sorry for the late reply. I came to the same conclusions by other means, but yes it was the way to go!
September 22, 20242 yr I was trying to do the same thing and this was the post which duckduck go lead me to. For the future searchers: you'll need format_partitions__func_name() function (notice "partitions" vs "partition"). You have 2 options: create separate file in extensions with your function and enable it in board config file or just create function in board config file (eg config/boards/orangepizero3.csc), like: function format_partitions__fstab() { echo "# something custom for fstab" >> $SDCARD/etc/fstab } Rerun compile.sh and you'll have your custom fstab I did try all the hooks but only modifications done in format_partitions will end up not overwritten. Edited September 22, 20242 yr by Johnny on the couch
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.