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
|
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
|
Contribute
|
||||||
==========
|
==========
|
||||||
|
|
||||||
|
@ -834,11 +834,19 @@ _set_overrides() {
|
|||||||
_msg_info "Done!"
|
_msg_info "Done!"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
_export_gpg_publickey() {
|
_export_gpg_publickey() {
|
||||||
gpg --batch --output "${work_dir}/pubkey.gpg" --export "${gpg_key}"
|
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() {
|
_make_pkglist() {
|
||||||
install -d -m 0755 -- "${isofs_dir}/${install_dir}"
|
install -d -m 0755 -- "${isofs_dir}/${install_dir}"
|
||||||
@ -867,6 +875,7 @@ _build_profile() {
|
|||||||
[[ -n "${gpg_key}" ]] && _run_once _export_gpg_publickey
|
[[ -n "${gpg_key}" ]] && _run_once _export_gpg_publickey
|
||||||
_run_once _make_custom_airootfs
|
_run_once _make_custom_airootfs
|
||||||
_run_once _make_packages
|
_run_once _make_packages
|
||||||
|
_run_once _make_version
|
||||||
_run_once _make_customize_airootfs
|
_run_once _make_customize_airootfs
|
||||||
_run_once _make_pkglist
|
_run_once _make_pkglist
|
||||||
_make_bootmodes
|
_make_bootmodes
|
||||||
|
Loading…
Reference in New Issue
Block a user