Restoring Old Snapshots


When a snapshot is restored with SBUML, the version of SBUML in the snapshot is used, not the one currently installed in the host. This is correct behavior because the code running in the snapshot depends on the kernel that was used to boot the virtual machine. However, it raises a few compatibility issues with the kernel and the guest scripts.

The snapshots on this website currently fall into basically two groups: the 2.4.23-2um kernels and the 2.4.18-36um kernels. The first issue for the kernel is that it must run on the host. The 2.4.23-2um kernels have worked in every Linux 2.4 host that I've tried as long as host kernel was compiled with tuntap support. However, the 2.4.23-2um snapshots will not restore on 2.6 hosts. The 2.4.18-36um kernels restore reliably on standard RedHat 8.0 and 9.0 distributions, but have been known to have trouble running on other distributions.

The second compatibility issue for the older 2.4.18-36um kernels is that they do not shut down as cleanly. Therefore the sbuml--kill-all-xterm-linux command might be needed to find evasive processes. Also, the hibernate feature is not supported for machines running the 2.4.18-36um kernels.

As for the scripts, there are currently two versions. The version inside of the rh72c base distribution tries to route the machine's specific IP address to the host, which only works if the host is on the same class C subnet. The newer version, which is packed in the file sbumldemo/scripts/sbumlguest-xxxxxx.tar.gz, explicitly place the host in the routing table so that the virtual machine can use private addresses. Also the method for copying in /etc/resolv.conf has been changed. The old guest script connects to a temporary server on the host. The new scripts place the server on the guest machines so that restoring multiple machines at the same time works more smoothly. The new guest scripts must be explicitly installed inside freshly booted VMs and started with either sbumlguest-start-ipchanger or sbumlguest-initvncserver.

SBUML will output a warning if either an old kernel or old guest script is being restored. If an old snapshot does not restore correctly, the machine can be easily removed with the sbumlremove -F command or, if necessary, the sbuml--kill-all-xterm-linux command. So there is no harm in trying to restore an incompatible snapshot.


For snapshots that are not delta compressed (or have been expanded), it is also possible to get information about a snapshot using the sbumlstatus command. A character '-' before the first IP address on line 5 means the old guest script is running. A character 'a' means the new version of the script is running. The version of the kernel is at the end of the sbumlstatus command's output.

This example shows that the many-eyes snapshot is running a 2.4.18-36um kernel and the old guest scripts:

[(sbumldemo subshell) sbumldemo]$ sbumlstatus ./snapshots/many-eyes-1028234982a9eefa/
Status: frozen
sv-120503
bv-120503
Freeze Count: 3
Continue Count: 2
IP Addresses: -192.168.1.23 192.168.1.116
Main PIDs: 17346 17350
Bin Path: /home/test/doit/sbumldemo/scripts/../kernel/linux
Base Path: /home/test/doit/sbumldemo/bases/rh72c
Machine Path: /home/test/doit/sbumldemo/scripts/../machines/m1
linux_banner: Linux version 2.4.18-36um-1sb (test@localhost.localdomain) (gcc version 2.96 20000731 (Red Hat Linux 7.1 2.96-98)) #3 Fri Dec 5 14:27:58 JST 2003


This example shows that the many-eyes-ns snapshot is running a 2.4.18-36um kernel and the new guest scripts:
(The snapshots with names that end with "-ns" are old snapshots that have had their guest scripts updated and resaved.)

[(sbumldemo subshell) sbumldemo]$ sbumlstatus ./snapshots/many-eyes-ns-0799f637abc8b722/
Status: frozen
sv-120503
bv-120503
Freeze Count: 4
Continue Count: 3
IP Addresses: a192.168.1.23 192.168.1.116
Main PIDs: 5948 5952
Bin Path: /tmp/sbumldemo/kernel/linux
Base Path: /home/rlp/demo/sbumldemo/bases/rh72c
Machine Path: /tmp/sbumldemo/machines/m1
linux_banner: Linux version 2.4.18-36um-1sb (test@localhost.localdomain) (gcc version 2.96 20000731 (Red Hat Linux 7.1 2.96-98)) #3 Fri Dec 5 14:27:58 JST 2003


And this snapshot is running a 2.4.23-2um kernel and the old scripts:

[(sbumldemo subshell) sbumldemo]$ sbumlstatus ./snapshots/sbumlbuild-d-9b4e9ce67503fac0/
Status: frozen
sv-120503
bv-120503
Freeze Count: 8
Continue Count: 7
IP Addresses: -192.168.1.23 192.168.1.183
Main PIDs: 16999 17002
Bin Path: /tmp/mainmonitor/sbumldemo/scripts/../kernel/linux
Base Path: /home/rlp/sbuml/sbumldemo/bases/rh72c-9ea4752fc925386a774e3fb14aa89b4f
Machine Path: /tmp/mainmonitor/sbumldemo/scripts/../machines/m1
linux_banner: Linux version 2.4.23-2um-1sb (test@localhost.localdomain) (gcc version 2.96 20000731 (Red Hat Linux 7.1 2.96-98)) #1 Wed Jun 9 21:36:07 JST 2004