Rescue Boot an OpenStack VM
Warning
Warning: these instructions are meant for advanced users only.
Motivation
Sometimes you want to repair a broken system using a rescue boot. Some examples of problems:
-
ssh key is lost → temporarily enable password login
-
broken network configuration
-
broken boot configuration
-
interactive fsck needed
Rescue Procedure
Think of a PC that does not boot, but it has a CD drive. You insert a rescue CD, boot from it and repair the problem on the hard drive.
Similarly you can dismount the problematic hard drive and attach it to a different PC, repair the problem and put it back.
Rescue System
Depending on the broken system and the repair work that needs to be done, choose a suitable rescue system. E.g. when you look at an Ubuntu system, it is often easiest to just use a fresh Ubuntu system launched from a standard SWITCHengines image.
Root Disk on Volume
When the problematic root disk is an OpenStack volume, then you can remove the VM but keep the volume. Attach it to a different VM as an additional disk to do the repair work. This can be a temporary VM that you can throw away afterwards. Then launch a new VM from the volume.
Rescue CDs
There may be more complicated cases where you want to use a specialized repair system. Example of such a system: http://www.system-rescue-cd.org/ (some more explanations: http://www.linux-magazine.com/Online/Features/SystemRescueCd ).
Get CD Image
We will need an image file of the rescue CD, i.e. a file with type iso. Download from http://www.system-rescue-cd.org/Download/ or whatever suits you.
Upload CD Image
Upload the iso file:
openstack image create --file systemrescuecd-6.0.1.iso --disk-format iso --container-format bare --min-ram 800 --property hw_cdrom_bus=scsi systemrescuecd
Rescue Boot
The rescue command adds the rescue image as boot device and boots:
openstack server rescue --image 'Ubuntu Xenial 16.04 (SWITCHengines)' VM
openstack server rescue --image systemrescuecd VM
In the case of a regular SWITCHengines image, login using SSH.
If you are using a the systemrescuecd, go to the console. Do the rescue work.
When you are finished, shut down the VM. Then end the rescue mode:
openstack server unrescue VM
This will also start the VM again.