publish: Upload rootfs image atomically

Using `--no-W` (disable whole file transfer) saves some time and
bandwidth when uploading the root filesystem image, but it has the
negative side-effect of overwriting the destination file in place.  If
any NBD clients are currently running using the image as their root
filesystem, they are likely to experience SquashFS corruption errors, as
the filesystem driver does not expect the underlying data to change once
it has been mounted.  As such, we have to use the default file transfer
method to create a new file and atomically replace the old file once the
transfer is complete.  The original file will be unlinked and will
eventually be deleted once no clients are using it.
pull/1/head
Dustin 2022-03-28 20:10:13 -05:00
parent 95019d20d7
commit 5c19a75603
1 changed files with 1 additions and 1 deletions

View File

@ -10,6 +10,6 @@ rsync -rtliO --chmod=a=rwX \
"${bootdir}"/initramfs.img \
"${bootdir}"/vmlinuz \
pxe0.pyrocufflink.blue:/var/lib/tftpboot/basementhud/
rsync -ti --chmod=a=rwX --no-W \
rsync -ti --chmod=a=rwX \
"${bootdir}"/basementhud.squashfs \
pxe0.pyrocufflink.blue:/var/lib/nbd/basementhud.squashfs