From 078ee76f1d6f3ae3dc3d5311404f14d3345dcd23 Mon Sep 17 00:00:00 2001 From: puneetse <22071208+puneetse@users.noreply.github.com> Date: Thu, 21 Jun 2018 13:12:53 -0700 Subject: [PATCH 1/6] Reorder methods to find partition size The lsblk approach is more likely to be used on an already deployed system, while the config.json is more of a reference point. --- .../increase-virtual-disk-size.rst | 40 ++++++++++--------- 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/source/clear-linux/guides/maintenance/increase-virtual-disk-size.rst b/source/clear-linux/guides/maintenance/increase-virtual-disk-size.rst index 7b991faa..5c87482c 100644 --- a/source/clear-linux/guides/maintenance/increase-virtual-disk-size.rst +++ b/source/clear-linux/guides/maintenance/increase-virtual-disk-size.rst @@ -13,7 +13,28 @@ Determine the prebuilt image size There are two methods to find the virtual disk size of your prebuilt |CL| image. -The first method is to check the config.JSON file of the image, located in the +The first method is to boot up your :abbr:`VM (Virtual Machine)` and +execute the :command:`lsblk` command as shown below: + +.. code-block:: bash + + sudo lsblk + +An example output of the :command:`lsblk` command: + +.. code-block:: console + + NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT + sda 8:0 0 8.5G 0 disk + ├─sdd1 8:1 0 512M 0 part + ├─sdd2 8:2 0 32M 0 part [SWAP] + └─sdd3 8:3 0 8G 0 part / + +In this example, both methods show the prebuilt Hyper-V image is about 8.5 GB. + + + +The second method is to check the config.JSON file of the image, located in the `releases`_ repository. For example, to find the size of the Hyper-V\* image version number 20450, follow these steps: @@ -39,24 +60,7 @@ version number 20450, follow these steps: "size" : "8G", "type" : "linux" } ], -The second method is to boot up your :abbr:`VM (Virtual Machine)` and -execute the :command:`lsblk` command as shown below: -.. code-block:: bash - - sudo lsblk - -An example output: - -.. code-block:: console - - NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT - sda 8:0 0 8.5G 0 disk - ├─sdd1 8:1 0 512M 0 part - ├─sdd2 8:2 0 32M 0 part [SWAP] - └─sdd3 8:3 0 8G 0 part / - -In this example, both methods show the prebuilt Hyper-V image is about 8.5 GB. Increase virtual disk size ************************** From 746bef2d0d332b2c16bc056ca29103b31d3f0ef1 Mon Sep 17 00:00:00 2001 From: puneetse <22071208+puneetse@users.noreply.github.com> Date: Thu, 21 Jun 2018 13:53:20 -0700 Subject: [PATCH 2/6] Add second level headers --- .../increase-virtual-disk-size.rst | 53 +++++++++++++------ 1 file changed, 38 insertions(+), 15 deletions(-) diff --git a/source/clear-linux/guides/maintenance/increase-virtual-disk-size.rst b/source/clear-linux/guides/maintenance/increase-virtual-disk-size.rst index 5c87482c..005d436b 100644 --- a/source/clear-linux/guides/maintenance/increase-virtual-disk-size.rst +++ b/source/clear-linux/guides/maintenance/increase-virtual-disk-size.rst @@ -1,40 +1,51 @@ .. _increase-virtual-disk-size: -Increase Clear Linux image virtual disk size -############################################ +Increase virtual disk size of a Clear Linux image +################################################# Prebuilt |CLOSIA| images come in different sizes, ranging from 300 MB to 20 GB. This guide describes how to increase the size of your prebuilt |CL| image if you need more capacity. -Determine the prebuilt image size -********************************* +.. contents:: This guide will cover: + + +Determine the partition sizes of the prebuilt image +*************************************************** There are two methods to find the virtual disk size of your prebuilt |CL| image. +In both examples, the prebuilt Hyper-V image used starting off at about 8.5 GB +with /dev/sdd3 being the partition + + +Checking :command:`lsblk` on the VM +----------------------------------- + The first method is to boot up your :abbr:`VM (Virtual Machine)` and execute the :command:`lsblk` command as shown below: -.. code-block:: bash + .. code-block:: bash - sudo lsblk + sudo lsblk An example output of the :command:`lsblk` command: -.. code-block:: console + .. code-block:: console - NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT - sda 8:0 0 8.5G 0 disk - ├─sdd1 8:1 0 512M 0 part - ├─sdd2 8:2 0 32M 0 part [SWAP] - └─sdd3 8:3 0 8G 0 part / - -In this example, both methods show the prebuilt Hyper-V image is about 8.5 GB. + NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT + sda 8:0 0 8.5G 0 disk + ├─sdd1 8:1 0 512M 0 part + ├─sdd2 8:2 0 32M 0 part [SWAP] + └─sdd3 8:3 0 8G 0 part / -The second method is to check the config.JSON file of the image, located in the + +Checking :file:`config.json` used to build the image +---------------------------------------------------- +The second method is to check the :file:`config.json` file used to create prebuilt image, located in the `releases`_ repository. For example, to find the size of the Hyper-V\* image version number 20450, follow these steps: @@ -65,12 +76,20 @@ version number 20450, follow these steps: Increase virtual disk size ************************** +Power off VM and increase virtual disk size: +-------------------------------------------- + To increase the virtual disk size for a prebuilt image, perform the steps below: #. Shut down your VM if it is running. #. Use an appropriate hypervisor tool to increase the virtual disk size of your VM. #. Power up the VM. + + +Resize the partition of the virtual disk: +----------------------------------------- + #. Log in to an account with root privileges. #. Open a terminal emulator. #. Add the |CL| `storage-utils` bundle to install the `parted` and @@ -114,6 +133,10 @@ To increase the virtual disk size for a prebuilt image, perform the steps below: #. Enter :command:`q` to exit `parted` when you are finished resizing the image. + +Resize the filesytem +-------------------- + #. Enter :command:`sudo resize2fs -p /dev/[modified partition name]` where *[modified partition name]* is the partition that was changed in `parted`. From b8af0eb051a5c1c5d5c72d7d7287a51409d211e5 Mon Sep 17 00:00:00 2001 From: puneetse <22071208+puneetse@users.noreply.github.com> Date: Fri, 22 Jun 2018 10:36:26 -0700 Subject: [PATCH 3/6] Split figure into two and minor clarifications --- .../figures/increase-virtual-disk-size-1.png | Bin 32439 -> 22657 bytes .../figures/increase-virtual-disk-size-2.png | Bin 0 -> 11026 bytes .../increase-virtual-disk-size.rst | 155 ++++++++++-------- 3 files changed, 87 insertions(+), 68 deletions(-) create mode 100644 source/clear-linux/guides/maintenance/figures/increase-virtual-disk-size-2.png diff --git a/source/clear-linux/guides/maintenance/figures/increase-virtual-disk-size-1.png b/source/clear-linux/guides/maintenance/figures/increase-virtual-disk-size-1.png index db5a2f3f413ead2268e9a55c7c053d6e3831f4e4..a4692c9affcf3f1040252b177910d34bd7aba681 100755 GIT binary patch literal 22657 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 W?YdTw_!{!-?|1EeNA~s~|Mb6RM4_1g literal 0 HcmV?d00001 diff --git a/source/clear-linux/guides/maintenance/increase-virtual-disk-size.rst b/source/clear-linux/guides/maintenance/increase-virtual-disk-size.rst index 005d436b..755a327f 100644 --- a/source/clear-linux/guides/maintenance/increase-virtual-disk-size.rst +++ b/source/clear-linux/guides/maintenance/increase-virtual-disk-size.rst @@ -10,14 +10,15 @@ if you need more capacity. .. contents:: This guide will cover: -Determine the partition sizes of the prebuilt image +Determine the partition order and sizes of the prebuilt image *************************************************** -There are two methods to find the virtual disk size of your prebuilt |CL| +There are two methods to find the order and sizes of partitions virtual disk of your prebuilt |CL| image. -In both examples, the prebuilt Hyper-V image used starting off at about 8.5 GB -with /dev/sdd3 being the partition +In both examples, the prebuilt Hyper-V image +has a disk size of 8.5 GB with /dev/sdd3 being the partition +for the root filesystem (/) Checking :command:`lsblk` on the VM @@ -26,26 +27,28 @@ Checking :command:`lsblk` on the VM The first method is to boot up your :abbr:`VM (Virtual Machine)` and execute the :command:`lsblk` command as shown below: - .. code-block:: bash + .. code-block:: bash - sudo lsblk + sudo lsblk An example output of the :command:`lsblk` command: - .. code-block:: console - - NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT - sda 8:0 0 8.5G 0 disk - ├─sdd1 8:1 0 512M 0 part - ├─sdd2 8:2 0 32M 0 part [SWAP] - └─sdd3 8:3 0 8G 0 part / + .. code-block:: console + NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT + sda 8:0 0 8.5G 0 disk + ├─sdd1 8:1 0 512M 0 part + ├─sdd2 8:2 0 32M 0 part [SWAP] + └─sdd3 8:3 0 8G 0 part / +An example of this can also be seen in Figure 1. Checking :file:`config.json` used to build the image ---------------------------------------------------- -The second method is to check the :file:`config.json` file used to create prebuilt image, located in the + +The second method to determine partition to check the :file:`config.json` +file used to create prebuilt image, located in the `releases`_ repository. For example, to find the size of the Hyper-V\* image version number 20450, follow these steps: @@ -53,101 +56,117 @@ version number 20450, follow these steps: #. Drill down into the `20450 > clear > config > image` directory. #. Open the :file:`hyperv-config.json` file. #. Locate the `PartitionLayout` key. - The example shows 512 MB for the EFI partition, 32 MB for the swap - partition, and 8 GB for the root partition. - .. code-block:: console + The example shows 512 MB for the EFI partition, 32 MB for the swap + partition, and 8 GB for the root partition. - "PartitionLayout" : [ { "disk" : "hyperv.img", - "partition" : 1, - "size" : "512M", - "type" : "EFI" }, - { "disk" : "hyperv.img", - "partition" : 2, - "size" : "32M", - "type" : "swap" }, - { "disk" : "hyperv.img", - "partition" : 3, - "size" : "8G", - "type" : "linux" } ], + + .. code-block:: console + + "PartitionLayout" : [ { "disk" : "hyperv.img", + "partition" : 1, + "size" : "512M", + "type" : "EFI" }, + { "disk" : "hyperv.img", + "partition" : 2, + "size" : "32M", + "type" : "swap" }, + { "disk" : "hyperv.img", + "partition" : 3, + "size" : "8G", + "type" : "linux" } ], Increase virtual disk size ************************** +Once you have determined the disk and partition to be increased, you are ready to perform the actual increase. + Power off VM and increase virtual disk size: -------------------------------------------- To increase the virtual disk size for a prebuilt image, perform the steps below: -#. Shut down your VM if it is running. -#. Use an appropriate hypervisor tool to increase the virtual disk size of - your VM. -#. Power up the VM. +#. Shut down your VM if it is running. +#. Use the process defined by your hypervisor to + increase the virtual disk size of your |CL| VM. +#. Power up the VM. Resize the partition of the virtual disk: ----------------------------------------- -#. Log in to an account with root privileges. -#. Open a terminal emulator. -#. Add the |CL| `storage-utils` bundle to install the `parted` and - `resize2fs` tools. +#. Log in to an account with root privileges. +#. Open a terminal emulator. +#. Add the |CL| `storage-utils` bundle to install the :command:`parted` and :command:`resize2fs` tools. - .. code-block:: bash + .. code-block:: bash - sudo swupd bundle-add storage-utils + sudo swupd bundle-add storage-utils #. Launch the `parted` tool. - .. code-block:: bash + .. code-block:: bash - sudo parted + sudo parted #. In the `parted` tool, perform these steps: - #. Press :command:`p` to print the partitions table. - #. If the warning message below is displayed, enter :command:`Fix`. + #. Press :command:`p` to print the partitions table. + #. If the warning message below is displayed, enter :command:`Fix`. - .. code-block:: console + .. code-block:: console - Warning: Not all of the space available to /dev/sda appears to be - used, you can fix the GPT to use all of the space (an extra ... - blocks) or continue with the current setting? + Warning: Not all of the space available to /dev/sda appears to be + used, you can fix the GPT to use all of the space (an extra ... + blocks) or continue with the current setting? - Fix/Ignore? + Fix/Ignore? - #. Enter :command:`resizepart [partition number]` where - *[partition number]* is the partition number to modify. - #. Enter :command:`yes` when prompted. - #. Enter the new `End` size. + #. Enter :command:`resizepart [partition number]` where + *[partition number]* is the partition number of the partition to modify. + #. Enter :command:`yes` when prompted. + #. Enter the new `End` size. - .. note:: + .. note:: - If you want a partition to take up the remaining disk space, then - enter the total size of the disk. When you print the partitions - table with the :command:`p` command, the total disk size is shown - after the `Disk` label. + If you want a partition to take up the remaining disk space, then + enter the total size of the disk. When you print the partitions + table with the :command:`p` command, the total disk size is shown + after the `Disk` label. - #. Enter :command:`q` to exit `parted` when you are finished resizing the - image. + An example of this can be seen in Figure 1. + + + + #. Enter :command:`q` to exit `parted` when you are finished resizing the + image. + + +Figure 1 depicts the described steps to resize the partition of the virtual disk from 8.5GB to 20GB. + +.. figure:: figures/increase-virtual-disk-size-1.png + :scale: 100 % + :alt: Increase root partition size + + Figure 1: Increase root partition size. Resize the filesytem -------------------- -#. Enter :command:`sudo resize2fs -p /dev/[modified partition name]` where - *[modified partition name]* is the partition that was changed in `parted`. +#. Enter :command:`sudo resize2fs -p /dev/[modified partition name]` where + *[modified partition name]* is the partition that was changed in `parted`. -Figure 1 shows how to increase the size of a |CL| Hyper-V image from 8.5 -GB to 20 GB. Before the steps shown in Figure 1, we used the Hyper-V Manager -to increase the VM virtual disk size from 8.5 GB to 20 GB. +#. Run the :command:`df -h` to verify that the filesystem size has increased. -.. figure:: figures/increase-virtual-disk-size-1.png - :scale: 100 % - :alt: Increase root partition size example +Figure 2 depicts the described steps to resize the partition of the virtual disk from 8.5GB to 20GB. - Figure 1: Increase root partition size example. +.. figure:: figures/increase-virtual-disk-size-2.png + :scale: 100 % + :alt: Increase root filesystem with resize2fs + + Figure 2: Increase root filesystem size after partition has been expanded. .. _releases: https://download.clearlinux.org/releases/ From 63a862b615f73e9060dccec1f46f654a73e1f357 Mon Sep 17 00:00:00 2001 From: puneetse <22071208+puneetse@users.noreply.github.com> Date: Mon, 25 Jun 2018 10:33:42 -0700 Subject: [PATCH 4/6] Minor formatting and clarifications. --- .../increase-virtual-disk-size.rst | 42 ++++++++++--------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/source/clear-linux/guides/maintenance/increase-virtual-disk-size.rst b/source/clear-linux/guides/maintenance/increase-virtual-disk-size.rst index 755a327f..76765100 100644 --- a/source/clear-linux/guides/maintenance/increase-virtual-disk-size.rst +++ b/source/clear-linux/guides/maintenance/increase-virtual-disk-size.rst @@ -3,7 +3,7 @@ Increase virtual disk size of a Clear Linux image ################################################# -Prebuilt |CLOSIA| images come in different sizes, ranging from 300 MB to 20 +|CLOSIA| prebuilt images come in different sizes, ranging from 300 MB to 20 GB. This guide describes how to increase the size of your prebuilt |CL| image if you need more capacity. @@ -47,7 +47,7 @@ An example of this can also be seen in Figure 1. Checking :file:`config.json` used to build the image ---------------------------------------------------- -The second method to determine partition to check the :file:`config.json` +The second method to determine partition to check the :file:`config.json` file used to create prebuilt image, located in the `releases`_ repository. For example, to find the size of the Hyper-V\* image version number 20450, follow these steps: @@ -80,7 +80,7 @@ version number 20450, follow these steps: Increase virtual disk size ************************** -Once you have determined the disk and partition to be increased, you are ready to perform the actual increase. +Once you have determined the disk and partition to be increased, you are ready to perform the actual increase of the disk, partition, and filesystem. Power off VM and increase virtual disk size: @@ -89,8 +89,9 @@ Power off VM and increase virtual disk size: To increase the virtual disk size for a prebuilt image, perform the steps below: #. Shut down your VM if it is running. -#. Use the process defined by your hypervisor to - increase the virtual disk size of your |CL| VM. +#. Use the process defined by your hypervisor + or cloud provider to increase + the virtual disk size of your |CL| VM. #. Power up the VM. @@ -144,29 +145,32 @@ Resize the partition of the virtual disk: image. -Figure 1 depicts the described steps to resize the partition of the virtual disk from 8.5GB to 20GB. + Figure 1 depicts the described steps to resize the partition of the virtual disk from 8.5GB to 20GB. -.. figure:: figures/increase-virtual-disk-size-1.png - :scale: 100 % - :alt: Increase root partition size + .. figure:: figures/increase-virtual-disk-size-1.png + :scale: 100 % + :alt: Increase root partition size - Figure 1: Increase root partition size. + Figure 1: Increase root partition size. Resize the filesytem -------------------- -#. Enter :command:`sudo resize2fs -p /dev/[modified partition name]` where - *[modified partition name]* is the partition that was changed in `parted`. + #. Enter :command:`sudo resize2fs -p /dev/[modified partition name]` where + *[modified partition name]* is the partition that was changed in `parted`. -#. Run the :command:`df -h` to verify that the filesystem size has increased. + #. Run the :command:`df -h` to verify that the filesystem size has increased. -Figure 2 depicts the described steps to resize the partition of the virtual disk from 8.5GB to 20GB. + Figure 2 depicts the described steps to resize the partition of the virtual disk from 8.5GB to 20GB. -.. figure:: figures/increase-virtual-disk-size-2.png - :scale: 100 % - :alt: Increase root filesystem with resize2fs + .. figure:: figures/increase-virtual-disk-size-2.png + :scale: 100 % + :alt: Increase root filesystem with resize2fs - Figure 2: Increase root filesystem size after partition has been expanded. + Figure 2: Increase root filesystem size after partition has been expanded. -.. _releases: https://download.clearlinux.org/releases/ + .. _releases: https://download.clearlinux.org/releases/ + + +Congratulations! You have resized the disk, partition, and filesystem. At this point, the increase in disk capacity is usable. \ No newline at end of file From a19a19e48d5916ff307d794ab9ec411c8c018905 Mon Sep 17 00:00:00 2001 From: puneetse <22071208+puneetse@users.noreply.github.com> Date: Tue, 26 Jun 2018 15:43:23 -0700 Subject: [PATCH 5/6] Fix lsblk output --- .../guides/maintenance/increase-virtual-disk-size.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/source/clear-linux/guides/maintenance/increase-virtual-disk-size.rst b/source/clear-linux/guides/maintenance/increase-virtual-disk-size.rst index 76765100..a700a7d9 100644 --- a/source/clear-linux/guides/maintenance/increase-virtual-disk-size.rst +++ b/source/clear-linux/guides/maintenance/increase-virtual-disk-size.rst @@ -17,7 +17,7 @@ There are two methods to find the order and sizes of partitions virtual disk of image. In both examples, the prebuilt Hyper-V image -has a disk size of 8.5 GB with /dev/sdd3 being the partition +has a disk size of 8.5 GB with /dev/sda3 being the partition for the root filesystem (/) @@ -37,9 +37,9 @@ An example output of the :command:`lsblk` command: NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 8.5G 0 disk - ├─sdd1 8:1 0 512M 0 part - ├─sdd2 8:2 0 32M 0 part [SWAP] - └─sdd3 8:3 0 8G 0 part / + ├─sda1 8:1 0 512M 0 part + ├─sda2 8:2 0 32M 0 part [SWAP] + └─sda3 8:3 0 8G 0 part / An example of this can also be seen in Figure 1. From 5b6c781c69e88640f63aefb3bc50ad87ca2d32b0 Mon Sep 17 00:00:00 2001 From: Michael Vincerra Date: Tue, 26 Jun 2018 16:26:00 -0700 Subject: [PATCH 6/6] Fixes syntax on figures and code blocks for proper rendering. Signed-off-by: Michael Vincerra --- .../increase-virtual-disk-size.rst | 173 +++++++++--------- 1 file changed, 83 insertions(+), 90 deletions(-) diff --git a/source/clear-linux/guides/maintenance/increase-virtual-disk-size.rst b/source/clear-linux/guides/maintenance/increase-virtual-disk-size.rst index a700a7d9..0436d965 100644 --- a/source/clear-linux/guides/maintenance/increase-virtual-disk-size.rst +++ b/source/clear-linux/guides/maintenance/increase-virtual-disk-size.rst @@ -1,6 +1,6 @@ .. _increase-virtual-disk-size: -Increase virtual disk size of a Clear Linux image +Increase virtual disk size of a Clear Linux\* image ################################################# |CLOSIA| prebuilt images come in different sizes, ranging from 300 MB to 20 @@ -9,17 +9,14 @@ if you need more capacity. .. contents:: This guide will cover: - Determine the partition order and sizes of the prebuilt image *************************************************** -There are two methods to find the order and sizes of partitions virtual disk of your prebuilt |CL| -image. - -In both examples, the prebuilt Hyper-V image -has a disk size of 8.5 GB with /dev/sda3 being the partition -for the root filesystem (/) +There are two methods to find the order and sizes of partitions virtual disk +of your prebuilt |CL| image. +In both examples, the prebuilt Hyper-V image has a disk size of 8.5 GB with / +dev/sda3 being the partition for the root filesystem (/) Checking :command:`lsblk` on the VM ----------------------------------- @@ -27,66 +24,64 @@ Checking :command:`lsblk` on the VM The first method is to boot up your :abbr:`VM (Virtual Machine)` and execute the :command:`lsblk` command as shown below: - .. code-block:: bash +.. code-block:: bash - sudo lsblk + sudo lsblk An example output of the :command:`lsblk` command: - .. code-block:: console +.. code-block:: console - NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT - sda 8:0 0 8.5G 0 disk - ├─sda1 8:1 0 512M 0 part - ├─sda2 8:2 0 32M 0 part [SWAP] - └─sda3 8:3 0 8G 0 part / + NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT + sda 8:0 0 8.5G 0 disk + ├─sda1 8:1 0 512M 0 part + ├─sda2 8:2 0 32M 0 part [SWAP] + └─sda3 8:3 0 8G 0 part / An example of this can also be seen in Figure 1. - Checking :file:`config.json` used to build the image ---------------------------------------------------- The second method to determine partition to check the :file:`config.json` -file used to create prebuilt image, located in the -`releases`_ repository. For example, to find the size of the Hyper-V\* image -version number 20450, follow these steps: +file used to create prebuilt image, located in the `releases`_ repository. +For example, to find the size of the Hyper-V\* image version number 20450, +follow these steps: -#. Go to the `releases`_ repository. -#. Drill down into the `20450 > clear > config > image` directory. -#. Open the :file:`hyperv-config.json` file. -#. Locate the `PartitionLayout` key. +#. Go to the `releases`_ repository. +#. Drill down into the `20450 > clear > config > image` directory. +#. Open the :file:`hyperv-config.json` file. +#. Locate the `PartitionLayout` key. - The example shows 512 MB for the EFI partition, 32 MB for the swap - partition, and 8 GB for the root partition. + The example shows 512 MB for the EFI partition, 32 MB for the swap + partition, and 8 GB for the root partition. - .. code-block:: console - - "PartitionLayout" : [ { "disk" : "hyperv.img", - "partition" : 1, - "size" : "512M", - "type" : "EFI" }, - { "disk" : "hyperv.img", - "partition" : 2, - "size" : "32M", - "type" : "swap" }, - { "disk" : "hyperv.img", - "partition" : 3, - "size" : "8G", - "type" : "linux" } ], - + .. code-block:: console + "PartitionLayout" : [ { "disk" : "hyperv.img", + "partition" : 1, + "size" : "512M", + "type" : "EFI" }, + { "disk" : "hyperv.img", + "partition" : 2, + "size" : "32M", + "type" : "swap" }, + { "disk" : "hyperv.img", + "partition" : 3, + "size" : "8G", + "type" : "linux" } ], Increase virtual disk size ************************** -Once you have determined the disk and partition to be increased, you are ready to perform the actual increase of the disk, partition, and filesystem. - +Once you have determined the disk and partition to be increased, you are +ready to perform the actual increase of the disk, partition, and filesystem. Power off VM and increase virtual disk size: -------------------------------------------- -To increase the virtual disk size for a prebuilt image, perform the steps below: +To increase the virtual disk size for a prebuilt image, perform the steps +below: #. Shut down your VM if it is running. #. Use the process defined by your hypervisor @@ -100,77 +95,75 @@ Resize the partition of the virtual disk: #. Log in to an account with root privileges. #. Open a terminal emulator. -#. Add the |CL| `storage-utils` bundle to install the :command:`parted` and :command:`resize2fs` tools. +#. Add the |CL| `storage-utils` bundle to install the + :command:`parted` and :command:`resize2fs` tools. - .. code-block:: bash + .. code-block:: bash - sudo swupd bundle-add storage-utils + sudo swupd bundle-add storage-utils -#. Launch the `parted` tool. +#. Launch the `parted` tool. - .. code-block:: bash + .. code-block:: bash - sudo parted + sudo parted -#. In the `parted` tool, perform these steps: +#. In the `parted` tool, perform these steps: - #. Press :command:`p` to print the partitions table. - #. If the warning message below is displayed, enter :command:`Fix`. + #. Press :command:`p` to print the partitions table. + #. If the warning message below is displayed, enter :command:`Fix`. - .. code-block:: console + .. code-block:: console - Warning: Not all of the space available to /dev/sda appears to be - used, you can fix the GPT to use all of the space (an extra ... - blocks) or continue with the current setting? + Warning: Not all of the space available to /dev/sda appears to be + used, you can fix the GPT to use all of the space (an extra ... + blocks) or continue with the current setting? - Fix/Ignore? + Fix/Ignore? - #. Enter :command:`resizepart [partition number]` where - *[partition number]* is the partition number of the partition to modify. - #. Enter :command:`yes` when prompted. - #. Enter the new `End` size. + #. Enter :command:`resizepart [partition number]` where + *[partition number]* is the partition number of the partition to modify. + #. Enter :command:`yes` when prompted. + #. Enter the new `End` size. - .. note:: + .. note:: - If you want a partition to take up the remaining disk space, then - enter the total size of the disk. When you print the partitions - table with the :command:`p` command, the total disk size is shown - after the `Disk` label. + If you want a partition to take up the remaining disk space, then + enter the total size of the disk. When you print the partitions + table with the :command:`p` command, the total disk size is shown + after the `Disk` label. - An example of this can be seen in Figure 1. + An example of this can be seen in Figure 1. + #. Enter :command:`q` to exit `parted` when you are finished resizing the + image. + Figure 1 depicts the described steps to resize the partition of the virtual disk from 8.5GB to 20GB. - #. Enter :command:`q` to exit `parted` when you are finished resizing the - image. - - - Figure 1 depicts the described steps to resize the partition of the virtual disk from 8.5GB to 20GB. - - .. figure:: figures/increase-virtual-disk-size-1.png - :scale: 100 % - :alt: Increase root partition size - - Figure 1: Increase root partition size. + .. figure:: figures/increase-virtual-disk-size-1.png + :scale: 100 % + :alt: Increase root partition size + Figure 1: Increase root partition size. Resize the filesytem -------------------- - #. Enter :command:`sudo resize2fs -p /dev/[modified partition name]` where - *[modified partition name]* is the partition that was changed in `parted`. +#. Enter :command:`sudo resize2fs -p /dev/[modified partition name]` where + *[modified partition name]* is the partition that was changed in `parted`. - #. Run the :command:`df -h` to verify that the filesystem size has increased. +#. Run the :command:`df -h` to verify that the filesystem size has + increased. - Figure 2 depicts the described steps to resize the partition of the virtual disk from 8.5GB to 20GB. + Figure 2 depicts the described steps to resize the partition of the virtual disk from 8.5GB to 20GB. - .. figure:: figures/increase-virtual-disk-size-2.png - :scale: 100 % - :alt: Increase root filesystem with resize2fs + .. figure:: figures/increase-virtual-disk-size-2.png + :scale: 100 % + :alt: Increase root filesystem with resize2fs - Figure 2: Increase root filesystem size after partition has been expanded. + Figure 2: Increase root filesystem size after partition has been expanded. - .. _releases: https://download.clearlinux.org/releases/ +Congratulations! You have resized the disk, partition, and filesystem. At +this point, the increase in disk capacity is usable. - -Congratulations! You have resized the disk, partition, and filesystem. At this point, the increase in disk capacity is usable. \ No newline at end of file +.. _releases: https://download.clearlinux.org/releases/ \ No newline at end of file