Last updated on Friday 20th of May 2022 09:09:07 AM

XSIGR Granular Restore

File level granular restore command line tool for ©XSIBackup

Granular restore has been present in ©XSIBackup since some time now. The XSIFS binary allows to mount any restore point at any deduplicated repository to access the contained files. Then the -flat.vmdk disks can be mounted through a loop device to access their contents.

The procedure was described at this post: ©VMWare ©ESXi backup with granular recovery. Nothing out of usual for an experienced Linux sysadmin, still, probably too picky for a power user or some less technical ©ESXi user.

To make granular restore a more accessible feature, we have created a simple recovery tool which works as a TUI (Text User Interface). You start by just entering the root path of some repository, from that point, you just have to enter some predefined options to access the contents at any restore point.

The package to install this tool is present at the [install root]/bin/XSIGR folder of the downloadable ©VMWare backup package. You can install it at any previously linked Rocky Linux server (--add-key) by just running ./bin/XSIGR/install from the root installation folder or ./install from the very [install root]/bin/XSIGR folder.

The --force argument will make sure that any previously existing file is overwritten.

# ./bin/XSIGR/install --force Archive: /scratch/XSI/XSIBackup-DC/bin/XSIGR/XSIGR.zip inflating: libfuse3.so.3.6.1 inflating: libssl.so.1.0.2k inflating: smb.conf.sam inflating: xsifs inflating: xsigr inflating: libcrypto.so.1.0.2k |------------------------------------------------------------------------------| | | | (c)XSIGR Installation for Linux | | (c)2022 | 33HOPS, Sistemas de Información y Redes, SL | | Daniel J. Garcia Fidalgo | | ALL RIGHTS RESERVED | | | |------------------------------------------------------------------------------| | | | This program will install XSI Granular Restore Tools to CentOS/RHEL 7/8 | | We recommend that you previously link the server as a backend, otherwise | | you will need to enter the remote server's root password many times | | | |------------------------------------------------------------------------------| Enter Linux host to install XSIGR Tools to [FQDN:port]: 192.168.3.214:22 ------------------------------------------------------------------------------- Server is reachable OK ------------------------------------------------------------------------------- Copying files to 192.168.3.214 ------------------------------------------------------------------------------- /bin/../../etc/dialogrc ../../etc/dialogrc copied to /bin/../../etc/dialogrc ------------------------------------------------------------------------------- /dialog2 ../dialog2 copied to /bin/../dialog2 ------------------------------------------------------------------------------- /bin/xsigr xsigr copied to /bin/xsigr ------------------------------------------------------------------------------- /bin/xsifs xsifs copied to /bin/xsifs ------------------------------------------------------------------------------- /bin/libcrypto.so.1.0.2k libcrypto.so.1.0.2k copied to /bin/libcrypto.so.1.0.2k Symlink set from /usr/lib64/libcrypto.so.10 to /bin/libcrypto.so.1.0.2k ------------------------------------------------------------------------------- /bin/libssl.so.1.0.2k libssl.so.1.0.2k copied to /bin/libssl.so.1.0.2k Symlink set from /usr/lib64/libssl.so.10 to /bin/libssl.so.1.0.2k ------------------------------------------------------------------------------- /bin/libfuse3.so.3.6.1 libfuse3.so.3.6.1 copied to /bin/libfuse3.so.3.6.1 Symlink set from /usr/lib64/libfuse3.so.3 to /bin/libfuse3.so.3.6.1 ------------------------------------------------------------------------------- /bin/smb.conf.sam smb.conf.sam copied to /bin/smb.conf.sam ------------------------------------------------------------------------------- The installation process finished without errors

The installation process will take care to copy all necessary binaries, including XSIFS and some other files, like the very xsigr executable. Once the installation process is complete you can start to use xsigr in the Rocky Linux backup server.

The first time that you run xsigr some additional dependencies will be installed, like FUSE3 support, a Samba server and client, etc..., just accept all prompts until all dependencies are indeed installed, then just use xsigr by running: xsigr --interactive

You can reinstall dependencies by running xsigr --install. This will also allow you to set the Samba password for the root user. Nonetheless you can change the Samba password for any user any time by running the command

smbpasswd -U root

You can see how straight using xsigr executable is in the command line output below.

[root@localhost ~]# xsigr --interactive -------------------------------------------------------------------------------- | | | (c)XSIBackup Granular Restore for Linux | | (c)2022 | 33HOPS, Sistemas de Información y Redes, SL | | Daniel J. Garcia Fidalgo | | ALL RIGHTS RESERVED | | | -------------------------------------------------------------------------------- System type is: Linux localhost.localdomain 4.18.0-348.12.2.el8_5.x86_64 1 SMP Wed Jan 19 17:53:40 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux -------------------------------------------------------------------------------- Usage: xsigr --interactive xsigr --install xsigr --reset -------------------------------------------------------------------------------- (i) Entering interactive mode -------------------------------------------------------------------------------- Please enter a path to some (c)XSIBackup repository: [enter to select]: /home/backup01/repo01-1M List of restore points: -------------------------------------------------------------------------------- 1: 20220302134814 2: 20220302132821 -------------------------------------------------------------------------------- Enter the restore point number to access: 1 -------------------------------------------------------------------------------- Selected restore point is: /home/backup01/repo01-1M/20220302134814 -------------------------------------------------------------------------------- Mounting... Checking if mount point already exists... The restore point mount was created at: /mnt/XSI/repos/repo01-1M/20220302134814 Listing contents: List of Virtual Machines in the restore point: -------------------------------------------------------------------------------- 1: LRAS01 -------------------------------------------------------------------------------- Enter the VM number to browse: 1 -------------------------------------------------------------------------------- Selected Virtual Machine is: LRAS01 -------------------------------------------------------------------------------- Choose some -flat.vmdk disk to browse: List of Virtual Disks: -------------------------------------------------------------------------------- 1: LRAS01_0-flat.vmdk -------------------------------------------------------------------------------- Enter the disk number to access: 1 -------------------------------------------------------------------------------- Selected Virtual Disk is: ...po01-1M/20220302134814/LRAS01/LRAS01_0-flat.vmdk -------------------------------------------------------------------------------- Available partitions in: ...po01-1M/20220302134814/LRAS01/LRAS01_0-flat.vmdk -------------------------------------------------------------------------------- 1: loop0p1:39940096 2: loop0p2:2 3: loop0p5:1996800 -------------------------------------------------------------------------------- Enter the partition number to access: 1 -------------------------------------------------------------------------------- Selected partition is ------ loop0p1 Partition size is: --------- 38GB -------------------------------------------------------------------------------- Select the Virtual Disk OS family: -------------------------------------------------------------------------------- 1: Linux 2: MS Windows -------------------------------------------------------------------------------- Enter some OS family number: 1 -------------------------------------------------------------------------------- OS is Linux -------------------------------------------------------------------------------- Does the partition contain Logical Volumes [y/n]: n -------------------------------------------------------------------------------- Your Linux partition was mounted to /mnt/XSI/guests/repo01-1M/20220302134814 -------------------------------------------------------------------------------- Listing content of root dir at: /mnt/XSI/guests/repo01-1M/20220302134814 total 108 drwxr-xr-x. 21 root root 4096 Dec 17 10:10 . drwxr-xr-x. 3 root root 28 Mar 2 09:55 .. drwxr-xr-x. 2 root root 4096 Dec 17 10:13 bin drwxr-xr-x. 3 root root 4096 Dec 17 11:17 boot drwxr-xr-x. 4 root root 4096 Dec 17 10:07 dev drwxr-xr-x. 130 root root 12288 Dec 17 12:05 etc drwxr-xr-x. 3 root root 4096 Dec 17 10:01 home lrwxrwxrwx. 1 root root 31 Dec 17 10:01 initrd.img -> boot/initrd.img-4.19.0-13-amd64 lrwxrwxrwx. 1 root root 31 Dec 17 10:10 initrd.img.old -> boot/initrd.img-4.19.0-13-amd64 drwxr-xr-x. 18 root root 4096 Dec 17 10:12 lib drwx------. 2 root root 16384 Dec 17 10:01 lost+found drwxr-xr-x. 3 root root 4096 Jan 11 2021 media drwxr-xr-x. 2 root root 4096 Jan 11 2021 mnt drwxr-xr-x. 3 root root 4096 Dec 17 10:02 opt drwxr-xr-x. 2 root root 4096 Nov 22 2020 proc drwx------. 3 root root 4096 Dec 17 11:03 root drwxr-xr-x. 2 root root 4096 Dec 17 10:13 run drwxr-xr-x. 2 root root 12288 Dec 17 10:13 sbin drwxr-xr-x. 2 root root 4096 Jan 11 2021 srv drwxr-xr-x. 2 root root 4096 Nov 22 2020 sys drwxrwxrwt. 9 root root 4096 Feb 16 08:48 tmp drwxr-xr-x. 10 root root 4096 Dec 17 10:07 usr drwxr-xr-x. 11 root root 4096 Dec 17 10:14 var lrwxrwxrwx. 1 root root 28 Dec 17 10:07 vmlinuz -> boot/vmlinuz-4.19.0-13-amd64 lrwxrwxrwx. 1 root root 28 Dec 17 10:10 vmlinuz.old -> boot/vmlinuz-4.19.0-13-amd64 -------------------------------------------------------------------------------- Leave this window as it is and point some CIFS file explorer to browse the contents of the disk mounted at: /mnt/XSI/guests/repo01-1M/20220302134814 You may also use some SSH client like WinSSH or use the xsimail command to send recovered files to users from the command line -------------------------------------------------------------------------------- When you are done type 'y' to free resources and exit [y/n]: y Guest umounted from /mnt/XSI/guests/repo01-1M/20220302134814 --------------------------------------------------------------------------------

XSIGR includes support for Linux: both plain and LVM2 based and Windows. Once some VM at some repository restore point is mounted you can browse the mount point using different methods. The simplest one is to open an additional SSH window and use the command line.

XSIGR also installs a Samba server and automatically adds the root user to it, so that you can browse the backup server mount points contents via a regular Windows or Linux file browser. A graphical SCP client like WinSCP is also a simple way to browse the file system from a UI.

Another nice and very convenient way to have access to restore files is by just installing a window system in the Rocky Linux backup server instead of just the minimal install.