]> git.proxmox.com Git - proxmox-backup-restore-image.git/log
proxmox-backup-restore-image.git
17 months agobuildsys: split out applying ZFS patches, allows build continuation
Thomas Lamprecht [Tue, 30 May 2023 07:34:54 +0000 (09:34 +0200)]
buildsys: split out applying ZFS patches, allows build continuation

as trying to applying them twice won't work, so rather move that out
to its own target, that won't be repeated if new enough.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
17 months agobuildsys: output the patch being applied
Thomas Lamprecht [Tue, 30 May 2023 07:33:18 +0000 (09:33 +0200)]
buildsys: output the patch being applied

as otherwise it's unnecessarily harder to map errors from `patch` to
the respective patch file.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
17 months agod/control: record missing uuid-dev build-depenency
Thomas Lamprecht [Tue, 30 May 2023 07:32:44 +0000 (09:32 +0200)]
d/control: record missing uuid-dev build-depenency

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
18 months agod/source: override some false-positive lintian warning/errors
Thomas Lamprecht [Sat, 27 May 2023 16:01:33 +0000 (18:01 +0200)]
d/source: override some false-positive lintian warning/errors

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
18 months agod/control: define compat level via build-depends and raise to 13
Thomas Lamprecht [Sat, 27 May 2023 16:01:24 +0000 (18:01 +0200)]
d/control: define compat level via build-depends and raise to 13

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
18 months agobuildsys: pre-cache initramfs dependencies on build-dir assembly
Thomas Lamprecht [Sat, 27 May 2023 15:58:15 +0000 (17:58 +0200)]
buildsys: pre-cache initramfs dependencies on build-dir assembly

makes for huge "source" tarballs with DSC, but much nicer than
downloading them on build.

Still missing: using apt-rdepends should be avoided either way..

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
18 months agobuild initramfs: add options for pre-caching dependencies and allow using them
Thomas Lamprecht [Sat, 27 May 2023 15:57:48 +0000 (17:57 +0200)]
build initramfs: add options for pre-caching dependencies and allow using them

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
18 months agobuildsys: shorter build-dir rules
Thomas Lamprecht [Sat, 27 May 2023 13:46:21 +0000 (15:46 +0200)]
buildsys: shorter build-dir rules

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
18 months agobuildsys: improve DSC target & add sbuild convenience target
Thomas Lamprecht [Sat, 27 May 2023 13:45:14 +0000 (15:45 +0200)]
buildsys: improve DSC target & add sbuild convenience target

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
18 months agod/control: add missing ${misc:Depends}
Thomas Lamprecht [Sat, 27 May 2023 13:44:48 +0000 (15:44 +0200)]
d/control: add missing ${misc:Depends}

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
18 months agod/control: replace build-dependency for perl-module with perl
Thomas Lamprecht [Sat, 27 May 2023 13:42:46 +0000 (15:42 +0200)]
d/control: replace build-dependency for perl-module with perl

the modules thing does nothing (virtual package)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
18 months agod/control: drop build-dependencies on essential sed & tar package
Thomas Lamprecht [Sat, 27 May 2023 11:26:06 +0000 (13:26 +0200)]
d/control: drop build-dependencies on essential sed & tar package

and do a wrap-and-sort, added only two trailing commas

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
18 months agomakefile: convert to use simple parenthesis
Thomas Lamprecht [Sat, 27 May 2023 11:16:01 +0000 (13:16 +0200)]
makefile: convert to use simple parenthesis

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
18 months agofix #4477: init: symlink busybox binaries on init
Max Carrara [Thu, 20 Apr 2023 12:53:07 +0000 (14:53 +0200)]
fix #4477: init: symlink busybox binaries on init

This change makes Busybox symbolically link its inbuilt utils to their
respective locations, allowing them to be invoked through their
absolute path. This means that Busybox inbuilts like e.g. `mount`
and `env` become available at `/bin/mount` and `/usr/bin/env` etc.

In particular, when entering any of the snapshot directories in
`.zfs/snapshot` (e.g. via `cd` or `ls`), ZFS normally mounts the
respective snapshot(s) on demand, using `/usr/bin/env mount [...]`
internally. Before this change, this would fail, rendering ZFS
snapshots unavailable when restoring individual files.

Signed-off-by: Max Carrara <m.carrara@proxmox.com>
19 months agoinit shim: print booted Linux kernel version
Thomas Lamprecht [Wed, 12 Apr 2023 10:30:49 +0000 (12:30 +0200)]
init shim: print booted Linux kernel version

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
19 months agoinit shim: print package version
Thomas Lamprecht [Wed, 12 Apr 2023 10:29:38 +0000 (12:29 +0200)]
init shim: print package version

use the one from the debian package, as that's what we actually track
but fall back to the cargo one from the init shim (which we normally
don't bump) for developer convenience (env! fails the build if the
variable isn't set).

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
19 months agoinit shim: code style touch up
Thomas Lamprecht [Wed, 12 Apr 2023 09:32:53 +0000 (11:32 +0200)]
init shim: code style touch up

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
21 months agobuild: use system toolchain and rust dependencies
Fabian Grünbichler [Tue, 24 Jan 2023 10:05:28 +0000 (11:05 +0100)]
build: use system toolchain and rust dependencies

instead of using crates.io - the build still requires network access and
depends on configured APT sources in the build environment, so there's room for
further improvement.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
21 months agoinit: update nix to 0.26
Fabian Grünbichler [Tue, 24 Jan 2023 10:05:27 +0000 (11:05 +0100)]
init: update nix to 0.26

and stop tracking Cargo.lock file

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agobump version to 0.4.0
Thomas Lamprecht [Wed, 12 Jan 2022 17:05:22 +0000 (18:05 +0100)]
bump version to 0.4.0

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoinit shim: drop ttyS1 driver check
Thomas Lamprecht [Tue, 15 Nov 2022 16:08:31 +0000 (17:08 +0100)]
init shim: drop ttyS1 driver check

the path changed to not include serial8250 directly anymore in jammy
kernel and we just don't really care, not much winning by dying here
if the base ttyS1 dev exists..

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoinit shim: rust fmt
Thomas Lamprecht [Tue, 15 Nov 2022 16:08:12 +0000 (17:08 +0100)]
init shim: rust fmt

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoupdate ZFS to 2.1.6
Thomas Lamprecht [Tue, 15 Nov 2022 14:13:44 +0000 (15:13 +0100)]
update ZFS to 2.1.6

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoupdate kernel to Ubuntu-5.15.0-54.60
Thomas Lamprecht [Tue, 15 Nov 2022 14:13:28 +0000 (15:13 +0100)]
update kernel to Ubuntu-5.15.0-54.60

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoupdate kernel to Ubuntu Jammy based on 5.15.12
Thomas Lamprecht [Wed, 12 Jan 2022 17:05:17 +0000 (18:05 +0100)]
update kernel to Ubuntu Jammy based on 5.15.12

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoupdate ZFS to 2.1.2
Thomas Lamprecht [Wed, 12 Jan 2022 16:02:05 +0000 (17:02 +0100)]
update ZFS to 2.1.2

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoadd kernel config options for memory hotplug
Dominik Csapak [Mon, 31 Oct 2022 11:39:51 +0000 (12:39 +0100)]
add kernel config options for memory hotplug

so that we can hotplug memory in the guest

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
3 years agobump version to 0.3.1
Thomas Lamprecht [Fri, 2 Jul 2021 23:57:15 +0000 (01:57 +0200)]
bump version to 0.3.1

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
3 years agoadd LVM (thin) tooling
Stefan Reiter [Wed, 30 Jun 2021 15:57:55 +0000 (17:57 +0200)]
add LVM (thin) tooling

FILE_LOCKING is required for LVM, the 4 lib* dependencies are not
automatically resolved for some reason, but are required.

Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
3 years agobump version to 0.3.0
Thomas Lamprecht [Mon, 28 Jun 2021 10:41:04 +0000 (12:41 +0200)]
bump version to 0.3.0

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
3 years agoupload to PVE 7
Thomas Lamprecht [Mon, 28 Jun 2021 10:41:00 +0000 (12:41 +0200)]
upload to PVE 7

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
3 years agobuild custom ZFS tools without udev requirement
Stefan Reiter [Wed, 16 Jun 2021 10:55:49 +0000 (12:55 +0200)]
build custom ZFS tools without udev requirement

We already include the required sources with the zfsonlinux submodule,
so apply a patch to disable linking against libudev (as I couldn't find
a working configure flag for it?) and build the user space part as well.

Includes dependencies as well as 'strace' for the debug initramfs, which
proved quite useful for debugging.

The init-shim automatically creates the necessary /dev/zfs device node,
and additionally /dev/null to make rust's std::process::Command happy.

Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
3 years agodebian: update control for bullseye
Stefan Reiter [Wed, 16 Jun 2021 10:55:48 +0000 (12:55 +0200)]
debian: update control for bullseye

python 2 is not available anymore

Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
3 years agobump version to 0.2.3
Thomas Lamprecht [Thu, 10 Jun 2021 11:11:06 +0000 (13:11 +0200)]
bump version to 0.2.3

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
3 years agokconfig: enable V4 xfs support for kernel in restore image
Dominik Csapak [Thu, 10 Jun 2021 10:17:59 +0000 (12:17 +0200)]
kconfig: enable V4 xfs support for kernel in restore image

since kernel 5.10, xfs v4 format is deprecated, reenable it for our
restore image kernel

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
3 years agobump version to 0.2.2
Thomas Lamprecht [Tue, 25 May 2021 11:26:10 +0000 (13:26 +0200)]
bump version to 0.2.2

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
3 years agoadd debug initramfs as seperate package
Stefan Reiter [Thu, 6 May 2021 15:26:24 +0000 (17:26 +0200)]
add debug initramfs as seperate package

"proxmox-backup-restore-image-debug", containing only the debug
initramfs, so depends on the base "proxmox-backup-restore-image" for the
kernel.

Adapt the init-shim to start an agetty on ttyS1, which the host
can use to connect to a root shell for debugging, and use
create_dir_all, since some debug packages seem to create /sys and /proc
as empty dirs already.

The build_initramfs.sh script is modified to include dependency
resolution via apt-rdepends, so debug packages like agetty (util-linux),
busybox and gdb can easily be added. This now builds both the regular
and the debug binary at once, to avoid downloading shared packages
twice.

Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
3 years agokernel: power off on panic
Stefan Reiter [Thu, 6 May 2021 15:26:23 +0000 (17:26 +0200)]
kernel: power off on panic

Instead of just rebooting, which may lead to an infinite loop, try to
resolve the situation by just powering off the VM - it can be restarted
any time anyway.

Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
3 years agoupdate kernel to Ubuntu-5.11.0-18.19 / v5.11.17
Thomas Lamprecht [Tue, 25 May 2021 11:24:53 +0000 (13:24 +0200)]
update kernel to Ubuntu-5.11.0-18.19 / v5.11.17

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
3 years agobump version to 0.2.1
Thomas Lamprecht [Mon, 26 Apr 2021 16:48:44 +0000 (18:48 +0200)]
bump version to 0.2.1

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
3 years agoadd workaround kernel patch for vsock panics
Stefan Reiter [Mon, 26 Apr 2021 13:04:17 +0000 (15:04 +0200)]
add workaround kernel patch for vsock panics

Allocation failures for vsock packet buffers occur routinely when
downloading more than one stream at the same time, with less then 512
MiB of RAM it sometimes even occurs for single downloads.

This appears to fix it in all of my reproducer scenarios, tested with up
to 6 downloads at once in a 128 MiB RAM machine.

Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
3 years agobump version to 0.2.0
Thomas Lamprecht [Fri, 9 Apr 2021 13:13:12 +0000 (15:13 +0200)]
bump version to 0.2.0

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
3 years agod/control: reword description a bit
Thomas Lamprecht [Fri, 9 Apr 2021 14:52:51 +0000 (16:52 +0200)]
d/control: reword description a bit

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
3 years agod/control: adapt to changed proxmox-backup-file-restore package name
Thomas Lamprecht [Fri, 9 Apr 2021 14:52:33 +0000 (16:52 +0200)]
d/control: adapt to changed proxmox-backup-file-restore package name

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
3 years agomake this package native versioned
Thomas Lamprecht [Fri, 9 Apr 2021 13:13:03 +0000 (15:13 +0200)]
make this package native versioned

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
3 years agobuild initramfs: do not hardcode package versions
Thomas Lamprecht [Fri, 9 Apr 2021 12:58:14 +0000 (14:58 +0200)]
build initramfs: do not hardcode package versions

While it can be good to have those tracked, handling that should be
less friction. (e.g., simply output them a file tracked in git)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
3 years agoupdate ZFS to 2.0.4
Thomas Lamprecht [Fri, 9 Apr 2021 10:07:25 +0000 (12:07 +0200)]
update ZFS to 2.0.4

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
3 years agoupdate submodule to Ubuntu-5.11.0-14.15
Thomas Lamprecht [Fri, 9 Apr 2021 09:51:23 +0000 (11:51 +0200)]
update submodule to Ubuntu-5.11.0-14.15

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
3 years agoupdate to 5.11 based kernel
Thomas Lamprecht [Tue, 16 Mar 2021 15:48:28 +0000 (16:48 +0100)]
update to 5.11 based kernel

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
3 years agofixup "test-run" target
Stefan Reiter [Tue, 16 Mar 2021 15:26:00 +0000 (16:26 +0100)]
fixup "test-run" target

Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
3 years agoactually commit the new split-out make file
Thomas Lamprecht [Tue, 16 Mar 2021 14:23:25 +0000 (15:23 +0100)]
actually commit the new split-out make file

... -.-

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
3 years agoupdate/rework packaging and buildsys
Thomas Lamprecht [Thu, 18 Feb 2021 16:16:47 +0000 (17:16 +0100)]
update/rework packaging and buildsys

try to split packaging from build and lots of such stuff

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
3 years agodebian: use compat level 12
Thomas Lamprecht [Wed, 17 Feb 2021 08:13:00 +0000 (09:13 +0100)]
debian: use compat level 12

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
3 years agobump version to 0.1.0-1
Thomas Lamprecht [Wed, 17 Feb 2021 08:12:09 +0000 (09:12 +0100)]
bump version to 0.1.0-1

do not start out with a to stable sounding 1.0 yet

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
3 years agoinitial commit
Stefan Reiter [Tue, 16 Feb 2021 17:06:51 +0000 (18:06 +0100)]
initial commit

proxmox-restore-vm-data provides means to build a debian package
containing a minimalistic Linux kernel and a corresponding initramfs
image for use in a file-restore VM.

Launched with QEMU/KVM, it boots in 1.6 seconds to userspace (on AMD
2700X) and has a minimal attack surface (no network stack other than
virtio-vsock, no auxiliary device support (USB, etc...), userspace
written in Rust) as opposed to mounting backup archives directly on the
host.

Since our Rust binaries are currently not fully statically linked, we
need to include some libraries into the initramfs as well. This is done
in 'build_initramfs.sh'.

A minimal /init is included as a Rust binary (init-shim-rs), doing only
the bare-minimum userspace setup before handing over control to the
file-restore daemon (see 'proxmox-backup' repository).

The debian package comes with a 'activate-noawait
pbs-file-restore-initramfs' trigger activation to rebuild the cached
initramfs when the base image shipped here updates. This is taken care
of by proxmox-file-restore.

Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>