is the free and opensource imaging solution for linuxmuster.net 7. It handles Windows 10 (TM) and Linux 64bit operating systems. Via TFTP and Grub's PXE implementation it boots a small linux system (linbofs) with a gui, which can manage all the imaging tasks on the client. Console tools are also available to manage clients and imaging remotely via the server.
- Kernel >5.18.
- qcow2 image format.
- Differential images.
- Complete refactoring of linbo_cmd.
- switch to new ntfs3 kernel driver, allows file sync for ntfs partitions.
- Currently the code in this repo is not for production use. For the currently stable version go to branch 4.0.
- The README for the stable version is still valid.
- Packages were published in the lmn72 testing repository.
- At the moment the linbo_gui is not compatible with Ubuntu 22.04 and will not work.
- Perform a two step upgrade of the server from Ubuntu 18.04 to 20.04 and finally to 22.04 using
do-release-upgrade
. - Reconfigure the linuxmuster packages (webui package may fail for the moment):
dpkg-reconfigure sophomorix-samba linuxmuster-base7 linuxmuster-webui7
- Add the
nogui
kernel parameter to the global KernelOptions in start.conf to avoid starting linbo_gui, because this would lead to a non functional linbo client (needed as long as the linbo_gui is not compatible to 22.04). Don't forget to invokelinuxmuster-import-devices
to apply the changes. - Reactivate the lmn71 repo
/etc/apt/sources-list.d/lmn71.list.distUpgrade
. - Add the lmn72 repo according to this instruction.
- Perform a dist-upgrade subsequently.
- Differential imagefile uses the qcow2 baseimage as so called backingstore.
- Differential image gets extension
qdiff
:image.qdiff
->image.qcow2
. - The diffimage will be created in the same directory as the baseimage, so they are virtually "bundled".
- If a diffimage exists for a baseimage, the diffimage is used for the restore.
- If you remove the diffimage on the server, it is also deleted on the client during the sync and only the baseimage is used for the restore.
- When uploading a new diffimage, any existing old diffimage is moved to a backup folder.
- When uploading a new baseimage, the old baseimage and diffimage (if any) are moved to a backup folder.
- Diffimage is created file-based by rsync:
qemu-img create -f qcow2 -b image.qcow2 image.qdiff qemu-nbd --connect /dev/nbd0 image.qdiff mount /dev/nbd0 /image mount /dev/sda1 /mnt rsync -HAa --exclude="/.linbo" --exclude-from="/etc/rsync.exclude" --delete --delete-excluded /mnt/ /image umount /mnt umount /image qemu-nbd --disconnect /dev/nbd0
- Diffimage wll be restored file-based:
qemu-nbd -r --connect /dev/nbd0 image.qdiff mount /dev/nbd0 /image mount /dev/sda1 /mnt rsync -HAa --exclude="/.linbo" --exclude-from="/etc/rsync.exclude" --delete --delete-excluded /image/ /mnt umount /mnt umount /image qemu-img --disconnect /dev/nbd0
- This also works with Windows10 thanks to the new native ntfs3 driver.
- The entry
Image =
in start.conf becomes obsolete, because diffimage is always bundled with baseimage. - For image creation, you only specify whether you want to create a base image or a diffimage:
linbo-remote -c|-p create_qdiff:<#> ... linbo_cmd create <cache> <imagefile> <root> linbo_create_image <#> qdiff
- Image upload accordingly:
linbo-remote -c|-p upload_qdiff:<#> ... linbo_cmd upload <server> <user> <password> <cache> <imagefile> linbo_upload <password> <imagefile>
Note:
- <#>: start.conf position number of operating system.
- qdiff: option to indicate a differential image, if omitted a baseimage will be created.
- Further infos about the new linbo commands see refactor linbo_cmd #72.
- build: all files, which are used to build the package.
- bin: helper scripts (only get kernel archive script at the moment).
- conf.d: environment variables definition for the various build components.
- config: configuration files for various source packages (eg. busybox, kernel).
- initramfs.d: initramfs configurations for the various components, which are picked from the ubuntu build system to create the linbofs system from it.
- patches: source patches, which are to be applied (eg. cloop).
- run.d: the build scripts for the package components.
- debian: debian packaging stuff
- linbofs: files, which are installed to the initramfs file system.
- serverfs: files, which are installed to the server root file system.
- Install Ubuntu 22.04
- If you are using Ubuntu server or minimal:
sudo apt install dpkg-dev
- Install build depends (uses sudo):
./get-depends.sh
- Build package:
./buildpackage.sh
Or for better convenience use the new linbo-build-docker environment.
Parameter | Description |
---|---|
nogui | Does not start linbo_gui (for debugging purposes), console only mode. |
nowarmstart | Suppresses linbo warmstart after downloading a new linbo kernel from the server (in case this causes problems). Note: The old parameter warmstart=no does the same and is still valid for compatibility reasons. |
gets two new commands for differential imaging:
create_qdiff:<#>:<"msg"> : Creates a differential image from operating system nr <#>.
upload_qdiff:<#> : Uploads a differential image from operating system nr <#>.
Further infos see README of stable branch.