Commit Graph

124 Commits

Author SHA1 Message Date
Thomas Lamprecht
8b15a09710 d/maintscripts: we will use 6.4-1 as next version
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-04-23 13:28:56 +02:00
Thomas Lamprecht
c2395dd2d4 reword update-grup warnign slighty
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-04-23 13:28:56 +02:00
Stoiko Ivanov
72ed875819 proxmox-boot: run p-b-t refresh on update-grub
If the system seems to be using proxmox-boot, simply run it, in
addition to warning the user about the situation.

Since the warning is only printed when update-grub is not called
by dpkg or proxmoxmox-boot-tool, this should be safe, and potentially
help keeping systems bootable.

Suggested-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-04-23 13:28:56 +02:00
Stoiko Ivanov
7290506104 proxmox-boot: add grub-install wrapper
if a (legacy) system is booted with proxmox-boot-tool, running
`grub-install` without being aware of the fact can render the system
unbootable (e.g. when letting the early stage point to an incompatible
zpool instead of the ESP).

To prevent this we add a dpkg-diversion [0], which simply checks if
`proxmox-boot-tool status` indicates that proxmox-boot is used and
errors out in that case, and runs the actual grub-install else.

Co-authored-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-04-23 13:28:56 +02:00
Stoiko Ivanov
ff28956d40 proxmox-boot: add grub.cfg header snippet
If the system seems to be booted using proxmox-boot, write a header at
the beginning of the grub.cfg generated when running `update-grub`

Additionally print a warning in case the script is run interactively.
This is determined by checking for DPKG_VERSION, which is set when
running as post-inst task (after a kernel install/removal)
and for PVE_EFIBOOT_UNSHARED, which is set by proxmox-boot-tool when
running `proxmox-boot-tool refresh.`

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-04-23 13:28:56 +02:00
Stoiko Ivanov
593001de1b proxmox-boot-tool: handle legacy boot zfs installs
This patch adds support for booting non-uefi/legacy/bios-boot ZFS
installs, by using proxmox-boot-tool to copy the kernels to the ESP
and then generate a fitting grub config for booting from the vfat ESP:

* grub is installed onto the ESP and the MBR points to the ESP
* after copying/deleting the kernels proxmox-boot-tool bindmounts the
  ESP on /boot (inside the new mount namespace)
* grub-update then manages to generate a fitting config.

Some paths/sanity-checks needed adaptation (to differentiate between
EFI boot and not (based on the existence of /sys/firmware/efi)

The arguments for grub-install are taken from the pve-installer.

The approach is inspired by @avw in our community-forum [0].

[0] https://forum.proxmox.com/threads/zfs-error-no-such-device-error-unknown-filesystem-entering-rescue-mode.75122/post-374799

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-04-23 13:28:56 +02:00
Stoiko Ivanov
8c0a22adfe proxmox-boot: rename uuid list file
in order to be consistent with the renaming of pve-efiboot-tool to
proxmox-boot-tool.

Sending as separate patch, since it changes and removes a file in
'/etc', which could be considered part of the external 'api' of
proxmox-boot-tool

Co-authored-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-04-23 13:28:56 +02:00
Stoiko Ivanov
33f32d0a30 proxmox-boot-tool: sort and remove duplicates on clean
This is mostly in preparation for renaming pve-efiboot-uuids into
proxmox-boot-uuids, but can help in general (since each duplicate uuid
causes excessive disk i/o upon kernel upgrades).

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-04-23 13:28:56 +02:00
Stoiko Ivanov
182bfa3a0f proxmox-boot-tool: add status command
currently simply checking if $ESP_LIST exists, and indicating via
the exit status if proxmox-boot-tool is used for booting the system.

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-04-23 13:28:56 +02:00
Stoiko Ivanov
b3c980626d proxmox-boot-tool: rename from pve-efiboot-tool
We will be using the mechanics also for ZFS systems booting with BIOS
legacy boot, and the tool is used also in PMG and PBS.

A symlink is kept in place for compatibility reasons

The hook scripts are marked as conffiles (as all files in /etc) and
are handled by dpkg-maintscript-helper(1) via dh_installdeb(1)

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-04-23 13:28:56 +02:00
Thomas Lamprecht
f41600a3a6 bump version to 7.0-0+4
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-04-09 11:07:51 +02:00
Thomas Lamprecht
96257df1e3 bump version to 7.0-0+3
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-03-18 19:22:55 +01:00
Thomas Lamprecht
825caa0f5d bump version to 7.0-0+2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-03-18 16:08:33 +01:00
Thomas Lamprecht
659521a666 bump version to 7.0-0+1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-03-02 16:20:54 +01:00
Thomas Lamprecht
63e0aae7f4 bump version to 6.3-6
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-02-26 14:16:42 +01:00
Thomas Lamprecht
833938ddac bump version to 6.3-5
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-02-15 18:21:35 +01:00
Thomas Lamprecht
03c04fd36b bump version to 6.3-4
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-02-15 17:23:15 +01:00
Thomas Lamprecht
60956e9ab2 bump version to 6.3-4
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-01-28 16:00:24 +01:00
Thomas Lamprecht
5ab2d06ce3 bump version to 6.3-3
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-12-03 15:11:28 +01:00
Thomas Lamprecht
30645aaef0 bump version to 6.3-2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-11-30 12:05:36 +01:00
Thomas Lamprecht
ad81f6384b bump version to 6.3-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-11-16 11:28:24 +01:00
Thomas Lamprecht
2006e8c483 bump version to 6.2-7
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-09-21 17:17:06 +02:00
Thomas Lamprecht
2ec72b24eb bump version to 6.2-6
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-08-31 11:59:14 +02:00
Thomas Lamprecht
ffebe658c4 bump version to 6.2-4
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-07-02 07:16:40 +02:00
Thomas Lamprecht
a8f040bc92 bump version to 6.2-3
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-06-16 13:43:06 +02:00
Aaron Lauterer
78c0b9cbd1 pve-efiboot-tool: format: show real path in warning if needed
Show the real path of the partition in case when the basename couldn't
be determined and the partition given is a symlinked one like
/dev/disk/by-id/<part>/

Signed-off-by: Aaron Lauterer <a.lauterer@proxmox.com>
2020-06-02 12:29:57 +02:00
Aaron Lauterer
5d733131b6 pve-efiboot-tool: format: fix handling of disk/by-id
The format command will fail when using other paths like
/dev/disk/by-id/<part> instead of /dev/sdXY directly. It cannot find
the path /sys/block/<disk>/<part>/partition path.

The part name in /dev/disk/by-id is a symlink to /dev/sdXY. At that
point we already have the symlink resolved to the real path. It is
stored in `bdev`.

Signed-off-by: Aaron Lauterer <a.lauterer@proxmox.com>
2020-06-02 12:29:54 +02:00
Thomas Lamprecht
723eacb774 bump version to 6.2-2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-15 15:40:17 +02:00
Thomas Lamprecht
04ec22d77d bump version to 6.2-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-06 10:23:48 +02:00
Thomas Lamprecht
f8b44bc9e5 bump version to 6.1-9
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-04-10 11:34:53 +02:00
Thomas Lamprecht
541cd729b6 bump version to 6.1-8
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-03-23 15:03:55 +01:00
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