summaryrefslogtreecommitdiff
path: root/docs/image-mgmt.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/image-mgmt.rst')
-rw-r--r--docs/image-mgmt.rst106
1 files changed, 106 insertions, 0 deletions
diff --git a/docs/image-mgmt.rst b/docs/image-mgmt.rst
new file mode 100644
index 00000000..ebb1de23
--- /dev/null
+++ b/docs/image-mgmt.rst
@@ -0,0 +1,106 @@
+.. _image-mgmt:
+
+System Image Management
+=======================
+
+The VyOS image-based installation is implemented by creating a directory for
+each image on the storage device selected during the install process.
+
+The directory structure of the boot device:
+
+.. code-block:: sh
+
+ /
+ /boot
+ /boot/grub
+ /boot/1.2.0-rolling+201810021347
+
+The image directory contains the system kernel, a compressed image of the root
+filesystem for the OS, and a directory for persistent storage, such as
+configuration.
+
+On boot, the system will extract the OS image into memory and mount the
+appropriate live-rw sub-directories to provide persistent storage system
+configuration.
+
+This process allows for a system to always boot to a known working state, as
+the OS image is fixed and non-persistent. It also allows for multiple releases
+of VyOS to be installed on the same storage device.
+
+The image can be selected manually at boot if needed, but the system will
+otherwise boot the image configured to be the default.
+
+The default boot image can be set using the :code:`set system image
+default-boot` command in operational mode.
+
+A list of available images can be shown using the :code:`show system image`
+command in operational mode.
+
+.. code-block:: sh
+
+ vyos@vyos:~$ show system image
+ The system currently has the following image(s) installed:
+
+ 1: 1.2.0-rolling+201810021347 (default boot)
+ 2: 1.2.0-rolling+201810021217
+ 3: 1.2.0-rolling+201809280337
+ 4: 1.2.0-rolling+201809252218
+ 5: 1.2.0-rolling+201809192034
+ 6: 1.2.0-rolling+201809191744
+ 7: 1.2.0-rolling+201809150337
+ 8: 1.2.0-rolling+201809141130
+ 9: 1.2.0-rolling+201809140949
+ 10: 1.2.0-rolling+201809131722
+
+ vyos@vyos:~$
+
+Images no longer needed can be removed using the :code:`delete system image`
+command.
+
+
+Update VyOS Installation
+------------------------
+
+Finally, new system images can be added using the `add system image` command.
+The add image command will extract the image from the release ISO (either on
+the local filesystem or remotely if a URL is provided). The image install
+process will prompt you to use the current system configuration and SSH
+security keys, allowing for the new image to boot using the current
+configuration.
+
+.. code-block:: sh
+
+ vyos@vyos:~$ add system image https://downloads.vyos.io/rolling/current/amd64/vyos-1.2.0-rolling%2B201810030440-amd64.iso
+ Trying to fetch ISO file from https://downloads.vyos.io/rolling/current/amd64/vyos-1.2.0-rolling%2B201810030440-amd64.iso
+ % Total % Received % Xferd Average Speed Time Time Time Current
+ Dload Upload Total Spent Left Speed
+ 100 338M 100 338M 0 0 3837k 0 0:01:30 0:01:30 --:--:-- 3929k
+ ISO download succeeded.
+ Checking for digital signature file...
+ % Total % Received % Xferd Average Speed Time Time Time Current
+ Dload Upload Total Spent Left Speed
+ 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
+ curl: (22) The requested URL returned error: 404 Not Found
+
+ Unable to fetch digital signature file.
+ Do you want to continue without signature check? (yes/no) [yes]
+ Checking MD5 checksums of files on the ISO image...OK.
+ Done!
+
+ What would you like to name this image? [1.2.0-rolling+201810030440]:
+
+ OK. This image will be named: 1.2.0-rolling+201810030440
+ We do not have enough disk space to install this image!
+ We need 344880 KB, but we only have 17480 KB.
+ Exiting...
+
+.. note:: Rolling releases are not GPG signed, only the real release build
+ will have a proper GPG signature.
+
+.. note:: VyOS configuration is associated to each image, and each image has
+ a unique copy of its configuration. This is different than a traditional
+ network router where the configuration is shared across all images.
+
+If you need some files from a previous images - take a look inside a
+:code:`/live` directory.
+