Commit Graph

243 Commits

Author SHA1 Message Date
Thomas Lamprecht
c454a8217d bump version to 6.1-7
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-03-09 16:08:46 +01:00
Thomas Lamprecht
1536115e6a bump version to 6.1-6
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-03-02 18:59:43 +01:00
Thomas Lamprecht
403d7c5b11 bump version to 6.1-5
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-02-15 17:24:40 +01:00
Thomas Lamprecht
6a3c4acefd fix #2595: less false positives when filtering out meta packages
This fixes selecting kernels for manual inclusion in the ESP which do
not come with a "-pve" in name.
It fixes listing, by just printing out the whole list as is. refresh
complains already if there's a kernel selected but no respective
vmlinuz got found. Additionally, we already plainly add the "manual
kernel list" in kernel_keep_versions, but filter then out any kernel
not containing a "-pve" in boot_kernel_list.

But boot_kernel_list should actually only filter out the kernel meta
packages.

So, use a inverse match and check for a /\d+\.\d+/ pattern, this
seems to work well enough.

Note that kernel_keep_versions doesn't picks up non-pve kernels
anyway, so this only really alters manual selection.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-02-15 17:17:39 +01:00
Thomas Lamprecht
c4ef475852 bump version to 6.1-4
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-02-05 13:15:58 +01:00
Thomas Lamprecht
e224fb3428 bump version to 6.1-3
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-01-31 14:15:01 +01:00
Oguz Bektas
8e80d38d3c zz-pve-efiboot: improve loader title detection
Signed-off-by: Oguz Bektas <o.bektas@proxmox.com>
2020-01-31 14:14:47 +01:00
Thomas Lamprecht
8b88cd5d5a bump version to 6.1-2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-01-24 12:22:23 +01:00
Thomas Lamprecht
0ba2c0c421 bump version to 6.1-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-05 09:28:47 +01:00
Thomas Lamprecht
2368f59412 bump version to 6.0-12
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-11-14 10:46:47 +01:00
Oguz Bektas
cd42dbfb99 use perl instead of (g)awk to clean /proc/cmdline
this awk line only works with gawk because of implementation differences
between awk alternatives.
debian has mawk installed by default, and mawk does not implement word
boundary regex. to avoid having to depend on gawk, we can just use perl
instead.

Signed-off-by: Oguz Bektas <o.bektas@proxmox.com>
2019-11-08 14:13:30 +01:00
Thomas Lamprecht
25c1475040 efiboot/autorm functions: ignore running kernel if it was removed
In the case were someone removes the current kernel we do not can
"keep" it anymore. While this was obviously no issue for the
autoremoval logic, it is an issue for the pve-efiboot-tool refresh
command, which reuses this helper to see which kernels it needs to
keep on the ESP.

Without this a running kernel was never removed from the EFI System
Partitions if de-installed from a host, so if it sorted as newest one
it was then booted again, which naturally confuses users (it was just
removed!!). So to ensure that we cannot get such zombie kernels
ensure that only installed kernels are included in the list.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-11-07 18:37:06 +01:00
Thomas Lamprecht
40cfed49af bump version to 6.0-11 with ABI 5.3.7-1-pve
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-10-23 19:44:35 +02:00
Thomas Lamprecht
1a72195a29 followup: code cleanup
* add some spaces for separation, increasing readability
* do not use the non-existent variable x as replacement, but an actual
  empty string ""
* don't use the "truth-y action" at end to make awk print the line ($0)
  but explicitly print $0 after the gsub, makes it easier to get for
  people with not much awk background

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-10-17 07:44:52 +02:00
Oguz Bektas
86cdbeb5aa fix #2403: exclude initrd entries from /proc/cmdline
if we fallback to /proc/cmdline, it can include the booted initrd.

to avoid loader entries with initrd 'options' lines, we have to parse
them out.

Signed-off-by: Oguz Bektas <o.bektas@proxmox.com>
2019-10-17 07:25:15 +02:00
Thomas Lamprecht
1533d98534 bump version to 6.0-10
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-10-02 08:42:21 +02:00
Thomas Lamprecht
015b1e852f bump version to 6.0-9
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-09-30 09:47:22 +02:00
Thomas Lamprecht
6b9b98085f d/control: adapt to lintian change regarding empty-binary-package
Previously, mentioning "virtual package" in the package long
description was enough to supress the "empty-binary-package" linitian
tag[0]. That changed, so let's use "metapackage", which is suggested
as one of the replacement options.

[0]: https://lintian.debian.org/tags/empty-binary-package.html

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-09-30 09:47:22 +02:00
Thomas Lamprecht
3cfa335dc3 bump version to 6.0-8
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-09-05 15:38:00 +02:00
Thomas Lamprecht
8d0eb48179 bump version to 6.0-7 with ABI 5.0.21-1-pve
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-08-21 09:44:38 +02:00
Stefan Reiter
d156f6aa14 Add efiboot refresh hook to update-initramfs
As explained in [0], we can add a hook script that will be called after
update-initramfs did its job (and thus, a new initrd has been created).

We can use this to automatically sync the ESPs using 'pve-efiboot-tool
refresh', if update-initramfs was called manually (on kernel upgrade we
already have a hook that does this).

[0]: https://kernel-team.pages.debian.net/kernel-handbook/ch-update-hooks.html

Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
2019-08-05 13:26:08 +02:00
Fabian Grünbichler
27d9325195 efiboot refresh: check --hook parameter
against list of default hook scripts.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2019-08-05 13:26:08 +02:00
Stefan Reiter
6e829c9b0a Add parameter '--hook' to 'refresh' command
Mostly to avoid calling hooks directly in other scripts, future-proofing.

Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
2019-08-05 12:06:52 +02:00
Thomas Lamprecht
82a85499c3 bump version to 6.0-6
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-07-24 16:47:37 +02:00
Thomas Lamprecht
46aeff56bc bump version to 6.0-5
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-07-15 15:08:59 +02:00
Thomas Lamprecht
992c689e1b pve-efiboot-tool: accept also 'kernel' for the 'kernels' command
As all operations are done on a single or no version, thus "kernel"
fits minimally better, IMO. But just accept both, for convenience

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-07-15 15:07:42 +02:00
Thomas Lamprecht
f43873b2be zz-efiboot: output ESP_LIST fn quoted, to avoid copying the !
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-07-15 15:06:01 +02:00
Thomas Lamprecht
d0519968fa pve-efiboot-tool: small output hints and cleanups
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-07-15 15:02:31 +02:00
Thomas Lamprecht
f879b0405d zz-pve-efiboot: make loader title product dependent
default to "Proxmox Virtual Environment", and if the
proxmox-mailgateway package is installed (we simply check the docs
path) use "Proxmox Mailgateway" instead

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-07-15 14:36:03 +02:00
Fabian Grünbichler
4f11dd6347 efiboot: guard against grep returning non-zero
which would trigger 'set -e', instead of continuing with correct (empty)
strings.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2019-07-15 14:28:21 +02:00
Fabian Grünbichler
e0bda4e7b3 efiboot: only keep last two series metapackages
namely, the current/latest and previous one, for which we also keep the
last kernel installed and synced.

the pipe to 'head' has the added bonus of guarding against 'grep'
returnin non-zero and triggering 'set -e'

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2019-07-15 14:28:21 +02:00
Fabian Grünbichler
c2c2229764 pve-efiboot-tool: also refresh autoremove config
especially after modifying the manually selected kernels list, we don't
want this to be skipped.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2019-07-15 14:28:21 +02:00
Fabian Grünbichler
401a69c9ed zz-pve-efiboot: use loop_esp_list helper
to loop over list of ESPs, like in pve-efiboot-tool

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2019-07-15 14:28:21 +02:00
Fabian Grünbichler
2d7389fb02 pve-efiboot-tool: add 'kernels list' subcommand
to list custom and automatically selected kernel versions that are synced to configured ESPs

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2019-07-15 14:28:21 +02:00
Fabian Grünbichler
427fba7112 efiboot: add manual kernel list
with 'kernels <add|remove>' command in pve-efiboot-tool to add/remove
kernels to/from manual kernel list, and honor it when generating lists
of kernels to not autoremove/sync to ESPs

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2019-07-15 14:28:21 +02:00
Fabian Grünbichler
0956bd22cb pve-efiboot-tool: add clean command
to remove outdated entries from the ESP list

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2019-07-15 14:28:21 +02:00
Fabian Grünbichler
2955b2b7fe pve-efiboot-tool: add and use list file helpers
in preparation of adding another file for custom kernels with the same semantics

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2019-07-15 14:28:21 +02:00
Fabian Grünbichler
4bd56b83e1 efiboot: add loop_esp_list helper
that calls the passed-in function+args for each UUID

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2019-07-15 14:28:21 +02:00
Fabian Grünbichler
e0379dcf06 efiboot: actually sync last kernel of old series
and not just keep it from being autoremoved

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2019-07-15 14:28:21 +02:00
Thomas Lamprecht
7979ef4599 bump version to 6.0-4
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-07-11 18:35:53 +02:00
Fabian Grünbichler
420039cdb3 pve-efiboot-tool: initialize in mount namespace
by re-executing the whole 'pve-efiboot-tool init' command inside a new mount namespace

Co-Developed-By: Thomas Lamprecht <t.lamprecht@proxmox.com>
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2019-07-11 18:27:06 +02:00
Fabian Grünbichler
cfb0e459ea zz-pve-efiboot: re-exec in mount namespace
to avoid affecting the running system negatively, e.g. because the
target paths for mounting the ESPs have been modified via symlinks or
similar attacks.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2019-07-11 18:27:06 +02:00
Fabian Grünbichler
7800310ce5 efiboot: add new mount namespace helper
to re-execute the currently running script in an unshared mount name
space.

Co-Developed-By: Thomas Lamprecht <t.lamprecht@proxmox.com>
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2019-07-11 18:27:06 +02:00
Thomas Lamprecht
58487bcb45 bump version to 6.0-3
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-07-10 21:13:08 +02:00
Thomas Lamprecht
425f328334 rename pveesptool to pve-efiboot-tool
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-07-10 21:11:28 +02:00
Thomas Lamprecht
0b99d576b6 pveesptool: document 'help' command in usage
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-07-10 20:34:02 +02:00
Fabian Grünbichler
7b2efc96c3 add B=R on proxmox-ve << 6.0-2~
since we took over the efiboot files from there.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2019-07-10 20:17:53 +02:00
Fabian Grünbichler
c2f02a98c9 efiboot: call on kernel removal as well
but don't pass in newly 'installed' kernel version

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2019-07-10 20:17:53 +02:00
Fabian Grünbichler
a8dad4e801 efiboot: always exit cleanly
otherwise the whole apt process stops.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2019-07-10 20:17:53 +02:00
Fabian Grünbichler
5b03b1fdb5 efiboot: be less verbose if UUID file does not exist
this is the default for upgraded systems after all.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2019-07-10 20:17:53 +02:00