{% extends "base.html" %} {% block title %}Blancco Updates - PXE Server Manager{% endblock %} {% macro mb(n) -%}{{ "%.1f"|format((n or 0) / 1048576) }} MB{%- endmacro %} {% macro release_cells(r) -%} {{ r.kernel or '-' }} {{ r.prefs_version or '-' }}{% if r.vendor_prefs_version and r.vendor_prefs_version != r.prefs_version %}
vendor {{ r.vendor_prefs_version }}
{% endif %} {{ mb(r.size) }} {%- endmacro %} {% block content %}

Installs a new Blancco Drive Eraser release from the vendor ISO (or the vendor's USB image, .img or .img.gz). Staging extracts the release next to the live one, applies the same changes as scripts/prepare-boot-tools.sh (our preferences written into config.img, the initramfs network patch), and a test entry in the PXE boot menu boots the staged copy. Only Activate changes what the normal Blancco entry boots, and the files it replaces are kept as a backup you can roll back to. The Ubuntu kernel, its initrd and the kmod tarball the UEFI path uses are not part of a release and are never touched.

{# ---- Live release -------------------------------------------------------- #}
Live release

Served from {{ current.path }}.

{{ release_cells(current) }}
VersionBlancco kernelPreferencesSizeRootfs dateInstalled
{{ current.version }} {% if current.inferred %}
from the preferences in config.img
{% endif %} {% if current.changed_by_hand %}
files changed outside this page since the last activate or roll back
{% endif %}
{{ current.rootfs_mtime | timestamp_fmt if current.rootfs_mtime else '-' }} {% if current.activated %}{{ current.activated | local_dt }} {% if current.restored_from %}
rolled back to {{ current.restored_from }}
{% elif current.source %}
from {{ current.source }}
{% endif %} {% else %}by hand (before this page){% endif %}
{% if current.missing %}
Missing from the live folder: {{ current.missing | join(', ') }}
{% endif %}
{# ---- Job ----------------------------------------------------------------- #} {% if job.state %}
Staging {{ job.source or '' }}
{% if job_running %}
{{ job.step or 'Starting' }} {{ job.message or '' }}
{% elif job.state == 'done' %}
{{ job.message }} ({{ job.finished | local_dt }})
{% elif job.state == 'blocked' %}
Staging stopped: preferences need merging. {{ job.message }}
{% elif job.state == 'cancelled' %}
Staging was cancelled.
{% else %}
{{ job.message or 'Staging failed.' }}
{% endif %} {% if job.log %}
Job log
{{ job.log | join('\n') }}
{% endif %}
{% endif %} {# ---- Get a release ------------------------------------------------------- #}
Release files
About 1 GB; streamed to {{ upload_dir }}.

Files copied in by hand are listed too, from {% for key, folder in source_dirs %}{{ folder }}{{ ', ' if not loop.last }}{% endfor %} (.iso, .img, .img.gz, .iso.gz).

{% if sources %}
{% for s in sources %} {% endfor %}
FileFolderSizeModified
{{ s.name }} {{ s.key }} {{ mb(s.size) }} {{ s.modified | timestamp_fmt }}
{% if s.deletable %}
{% endif %}
{% else %}

No release files yet. Upload the vendor ISO or USB image above.

{% endif %}
{# ---- Staged -------------------------------------------------------------- #}
Staged releases
{% if staged %}
{% for s in staged %} {{ release_cells(s) }} {% if s.status == 'blocked' %} {% endif %} {% endfor %}
VersionBlancco kernelPreferencesSizeStatusStaged
{{ s.name }}{% if s.in_menu %} in boot menu{% endif %} {% if s.status == 'ready' %}Ready {% if s.merged_prefs %}
merged preferences
{% endif %} {% elif s.status == 'blocked' %}Needs preferences merge {% elif s.status == 'failed' %}Failed {% if s.error %}
{{ s.error }}
{% endif %} {% else %}{{ s.status }}{% endif %}
{{ s.staged | local_dt }}
{{ s.source or '' }}
{% if s.status == 'ready' %} {% if not s.in_menu %}
{% endif %}
{% endif %}
{{ s.blocked }}
  1. Download the vendor preferences.xml of {{ s.name }}.
  2. Carry our settings across from playbook/blancco-preferences.xml (report share {{ server }}/blancco-reports, auto_backup, WiFi, screensaver, business location and the rest), keeping the new file's <version> block and any new settings.
  3. Upload the merged file here; staging then finishes. Commit it to the repo as playbook/blancco-preferences.xml.
{% else %}

Nothing staged.

{% endif %}
{# ---- Test entry ---------------------------------------------------------- #}
Test entry in the PXE boot menu
{% if test %}

The menu has {{ test.item or 'a blancco_staged entry' }}, booting the staged {{ test.version or '?' }} from /blancco/staged/{{ test.version }}/.

{% if test.efi is false %}
The entry's UEFI branch is off: when it was added, the UEFI initrd did not read blancco.base=, so a UEFI test boot would have run the LIVE release. A UEFI boot of the entry says so and returns to the menu. After rebuilding the initrd, add the test entry again.
{% endif %}
{% else %}

No test entry. Add test entry on a staged release puts one under the normal Blancco entry.

{% endif %}
{# ---- Backups ------------------------------------------------------------- #}
Backups

Folders {{ current.path }}/backup-*. A rollback first saves what is live, so it can be undone the same way; the restored backup's folder is then released, because its files are the live files.

{% if backups %}
{% for b in backups %} {{ release_cells(b) }} {% endfor %}
BackupVersionBlancco kernelPreferencesSizeSaved
{{ b.name }}{% if b.reason %}
{{ b.reason }}
{% endif %}
{{ b.version }}{{ b.created | local_dt if b.created is string else b.created | timestamp_fmt }} {% if b.complete %}
{% else %} Incomplete {% endif %}
Each backup holds one release, about 1 GB. Taking one is instant (hard links of the live files before they are replaced).
{% else %}

No backups yet. Activating a release saves the one it replaces here.

{% endif %}
{# ---- How it works -------------------------------------------------------- #}

What a release changes

Replaced in {{ current.path }}: arch/x86_64/airootfs.sfs, vmlinuz-bde-linux, initramfs-bde-linux.img (copytoram network patch), intel-ucode.img, amd-ucode.img, config.img (vendor cpio with our preferences written in at the same size), preferences.xml, config-clean.xml (the licence container from config.img) and, when the ISO has one, blancco-shim.efi. Never touched: vmlinuz-ubuntu*, kexec-initrd*, kmod*.tar.gz, grubx64.efi, shimx64.efi, blancco-progress.py.

Our preferences come from the live preferences.xml (the playbook deploys playbook/blancco-preferences.xml there). They are a merge onto one vendor release's file, so when a release's <version> differs, staging stops until a merged file is uploaded. After activating such a release, commit the merged file to the repo, or the next playbook run puts the old one back.

A playbook run also copies boot-tools/blancco/* from the USB over the live files. After activating a release here, refresh that copy (scripts/prepare-boot-tools.sh with the new ISO), or a playbook run puts the old release back.

{% endblock %} {% block extra_scripts %} {% endblock %}