mkarchiso: add version information
To date the iso version was used for iso volume information and iso file name. In my custom builds I do use it a lot more: * Inside the root fs: The system knows about its own version. I use this to: -> report the version to a server (poor man's inventory) -> let the system update itself * On the iso fs: The files are served via rsync, running systems transfer version file first to check for available update. * A grub environment file on the iso fs: Booting the iso from grub allows to create cow directory per version: loopback loop archlinux.iso load_env -f (loop)/arch/grubenv linux (loop)/arch/boot/x86_64/vmlinuz-linux ... \ cow_directory=archlinux/${VERSION} ... So let's just create these files.
This commit is contained in:
parent
d153b48613
commit
b30d1cad9b
13
README.rst
13
README.rst
@ -118,6 +118,19 @@ Optionally install archiso's mkinitcpio hooks:
|
||||
|
||||
make install-initcpio
|
||||
|
||||
Optional Features
|
||||
=================
|
||||
|
||||
The iso image contains a grub environment block holding the iso version. This allows to boot the iso image from grub
|
||||
with a version specific cow directory to mitigate overlay clashes.
|
||||
|
||||
.. code:: grub
|
||||
loopback loop archlinux.iso
|
||||
load_env -f (loop)/arch/grubenv
|
||||
linux (loop)/arch/boot/x86_64/vmlinuz-linux ... \
|
||||
cow_directory=archlinux/${VERSION} ...
|
||||
initrd (loop)/arch/boot/x86_64/initramfs-linux-lts.img
|
||||
|
||||
Contribute
|
||||
==========
|
||||
|
||||
|
@ -834,11 +834,19 @@ _set_overrides() {
|
||||
_msg_info "Done!"
|
||||
}
|
||||
|
||||
|
||||
_export_gpg_publickey() {
|
||||
gpg --batch --output "${work_dir}/pubkey.gpg" --export "${gpg_key}"
|
||||
}
|
||||
|
||||
_make_version() {
|
||||
install -d -m 0755 -- "${isofs_dir}/${install_dir}"
|
||||
_msg_info "Creating files with iso version..."
|
||||
printf '%s\n' "${iso_version}" > "${airootfs_dir}/version"
|
||||
printf '%s\n' "${iso_version}" > "${isofs_dir}/${install_dir}/version"
|
||||
printf '%.1024s' "$(printf '# GRUB Environment Block\nVERSION=%s\n%s' "${iso_version}" \
|
||||
"$(printf '%0.1s' "#"{1..1024})")" > "${isofs_dir}/${install_dir}/grubenv"
|
||||
_msg_info "Done!"
|
||||
}
|
||||
|
||||
_make_pkglist() {
|
||||
install -d -m 0755 -- "${isofs_dir}/${install_dir}"
|
||||
@ -867,6 +875,7 @@ _build_profile() {
|
||||
[[ -n "${gpg_key}" ]] && _run_once _export_gpg_publickey
|
||||
_run_once _make_custom_airootfs
|
||||
_run_once _make_packages
|
||||
_run_once _make_version
|
||||
_run_once _make_customize_airootfs
|
||||
_run_once _make_pkglist
|
||||
_make_bootmodes
|
||||
|
Loading…
Reference in New Issue
Block a user