RE: Mini guide to build Manjaro ISO

Hello Frede,
I’m building a custom Manjaro ISO using buildiso and encountering an issue with /etc/skel/ content not appearing in the live environment.

Problem Description:

  • I place custom files and configurations in /home/$USER/iso-profiles/custom/myxfce/live-overlay/etc/skel/
  • These files do not appear when booting the live ISO
  • This happens even with a completely fresh clone from the git repository
  • The files exist in the profile directory before building, but the user (manjaro) doesn’t have access to them in the live environment

What I’ve Tried:

Build Output:
The build completes successfully, and calamares installs properly, but the live user (manjaro) doesn’t have any custom files from /etc/skel/.

Question:

  1. Is this related to the new manjaro-live-setup in recent versions? It worked fine since Jan.
  2. Are there configuration parameters I’m missing to enable /etc/skel/ population in the live environment?
  3. Is there a documented workflow for properly including custom user files in the live ISO?

I’m aware that /etc/skel/ is typically used as a template for new user homes during installation, but I need custom configurations available in the live environment itself.

Any guidance on the proper way to include custom skeleton files in the live ISO would be appreciated.

Kind regards,
Michael

ok, found a solution that worked for me:

In: /home/$USER/iso-profiles/custom/myxfce/live-overlay/etc/systemd/system/:

Datei: copy-user-skel.service

[Unit]
Description=Copy custom skel to live user
After=systemd-user-sessions.service

[Service]
Type=oneshot
ExecStart=/bin/bash -c 'cp -af /etc/skel/. /home/manjaro/'
User=root
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

In profile.conf:

enable_systemd_live=('manjaro-live' 'mhwd-live' 'pacman-init' 'mirrors-live' 'copy-user-skel')

Mod edit:- General tidy. No charge. @M78 – Please note that the forum uses markdown – whenever you type an # it is interpreted as HTML heading one (<h1>).


[Mini-HowTo] Present code or command output

Note: Grave accent (or, backtick) characters are used. :eyes:

For inline code or to show a single command:

  • please follow this simple example: code here.

For multi-line command output:

  • place text beween two rows of three (```) backtick characters to form a scrollable text box, or …
  • use the </> button in the Compose window to achieve the same result.

The empty row between these rows of backtick characters is where to paste any multi-line command output (such as inxi).

An example of a pre-formatted text enclosure:

What is a Quark?

A. In Physics, an elementary particle and fundamental constituent of matter. 
B. A character from the Star Trek: "Deep Space Nine" television series.
C. A soft, creamy, usually unsalted cheese traditional to central Europe.

What you are doing is technically correct - I have been using these features in many situations - and this has always worked.

In your iso-profiles folder - all content should be owned by your user

sudo chown $USER:$USER ~/iso-profiles

Quite possible

Not that I know of

There is very little documentation on the subject, what I know comes from hard work.

I would refer to the wiki - but it is so unstable that it has been disabled.

The ISO is a layered cake.

The layers are built using the Packages-<layer> package lists and the <layer>-overlay folders is used to inject customisation not available in any package.

The layers are built into separate folders configured by the chroots_dir in manjaro-tools.conf

# build dir where buildpkg or buildiso chroots are created
chroots_dir='/var/lib/manjaro-tools'

The build process has a -x argument which stops the process before generating the squash file systems.

This allows for editing the source file systems before building the ISO.

This can be used for various purposes e.g. to troubleshoot a stubborn configuration.

To resume the build session run with -zx arguments to build the file system. You can even use this for a repeated troubleshooting - where you tweak a given configuration - then regenerate the ISO - the script will know rebuild the part you touched without having to rebuild all file systems over and over.

I used the live-overlay quite extensively by injecting modified versions of the final scripts. I also work with trimmed down package lists and sometimes omitting mhwd completely.

If you put it in the desktop file it will still work in the live one as both are loaded.