Creating a boot environment from an existing one
Now, it's an appropriate time to talk about the possibility of creating a new environment from an existing one.
Getting ready
To follow this recipe, it's necessary that we have a machine (physical or virtual) running Oracle Solaris 11; we log in to the system as the root user and open a terminal. Some extra disk space might be necessary.
How to do it…
To perform this recipe, we're obliged to create a backup from the current BE (solaris_test_1
), after which we should be successful in creating a new BE from this backup. The whole process uses snapshots. (In this case, we are using a logical snapshot, which uses pointers to leave the original image untouched.) Let's create a snapshot by running the following command:
root@solaris11:~# beadm create solaris_test_1@backup root@solaris11:~# beadm list -a solaris_test_1 BE/Dataset/Snapshot Active Mountpoint Space Policy Created ------------------- ------ ---------- ----- ------ ------- solaris_test_1 rpool/ROOT/solaris_test_1 NR / 26.06G static 2013-11-05 22:38 rpool/ROOT/solaris_test_1/var - /var 421.96M static 2013-11-08 04:06 rpool/ROOT/solaris_test_1/var@2013-10-10-22:27:20 - - 66.49M static 2013-10-10 19:27 rpool/ROOT/solaris_test_1/var@2013-11-08-06:06:01 - - 62.48M static 2013-11-08 04:06 rpool/ROOT/solaris_test_1/var@backup - - 73.0K static 2013-11-08 04:23 rpool/ROOT/solaris_test_1/var@install - - 63.03M static 2013-10-05 21:01 rpool/ROOT/solaris_test_1@2013-10-10-22:27:20 - - 132.81M static 2013-10-10 19:27 rpool/ROOT/solaris_test_1@2013-11-08-06:06:01 - - 65.78M static 2013-11-08 04:06 rpool/ROOT/solaris_test_1@backup - - 0 static 2013-11-08 04:23 rpool/ROOT/solaris_test_1@install - - 105.95M static 2013-10-05 21:01
We are now ready to create a new BE from another one:
root@solaris11:~# beadm create -e solaris_test_1@backup solaris_test_2 root@solaris11:~# beadm list BE Active Mountpoint Space Policy Created -- ------ ---------- ----- ------ ------- solaris - - 8.57M static 2013-10-05 20:44 solaris-backup-1 - - 303.0K static 2013-10-26 22:49 solaris-backup-a - - 7.26G static 2013-10-10 19:57 solaris_test_1 NR - 26.06G static 2013-11-05 22:38 solaris_test_2 - - 209.0K static 2013-11-08 04:23
At this point, it might be logical to activate this environment (beadm activate solaris_test_2
) and boot it.
Finally, before finishing the chapter, we need to reactivate the original solaris
boot environment, reboot the system, and remove all the remaining BEs:
root@solaris11:~# beadm activate solaris root@solaris11:~# init 6 root@solaris11:~# beadm destroy solaris_test_2 Are you sure you want to destroy solaris_test_2? This action cannot be undone(y/[n]): y root@solaris11:~# beadm destroy solaris_test_1 Are you sure you want to destroy solaris_test_1? This action cannot be undone(y/[n]): y root@solaris11:~# beadm destroy solaris-backup-a Are you sure you want to destroy solaris-backup-a? This action cannot be undone(y/[n]): y root@solaris11:~# beadm destroy solaris-backup-1 Are you sure you want to destroy solaris-backup-1? This action cannot be undone(y/[n]): y root@solaris11:~# beadm list BE Active Mountpoint Space Policy Created -- ------ ---------- ----- ------ ------- solaris NR / 25.46G static 2013-10-05 20:44
An overview of the recipe
This final recipe from the chapter has shown us a quick way to create a new BE based on an old one. To do this, we needed to take a backup first. Finally, we destroyed the existing BEs to clean up our system. Obviously, it's not appropriate to destroy the booted BE.