mirror of
https://github.com/QubesOS/qubes-doc.git
synced 2024-12-26 07:49:34 -05:00
Merge branch 'patch-3' of https://github.com/awokd/qubes-doc into awokd-patch-3
This commit is contained in:
commit
f3c118234b
@ -1,113 +1,99 @@
|
||||
---
|
||||
layout: doc
|
||||
title: Resize Private Disk Image
|
||||
title: Resize Disk Image
|
||||
permalink: /doc/resize-disk-image/
|
||||
redirect_from:
|
||||
- /en/doc/resize-disk-image/
|
||||
- /en/doc/resize-root-disk-image/
|
||||
- /doc/ResizeDiskImage/
|
||||
- /doc/ResizeRootDiskImage/
|
||||
- /wiki/ResizeDiskImage/
|
||||
- /wiki/ResizeRootDiskImage/
|
||||
---
|
||||
|
||||
Resize Private Disk Image
|
||||
Resize Disk Image
|
||||
-----------------
|
||||
|
||||
There are several disk images which can be easily extended, but pay attention to the overall consumed space of your sparse disk images.
|
||||
See also additional information and caveats about [resizing the root disk image](/doc/resize-root-disk-image/).
|
||||
There are several disk images which can be easily extended, but pay attention to the overall consumed space of your sparse/thin disk images.
|
||||
See also [OS Specific Follow-up Instructions](/doc/resize-disk-image/#os-specific-follow-up-instructions) at the end of this page.
|
||||
|
||||
|
||||
### Private disk image (R4.0)
|
||||
### Template disk image (R4.0)
|
||||
|
||||
1048576 MiB is the maximum size which can be assigned to private storage through Qube Manager.
|
||||
If you want install a lot of software in your TemplateVM, you may need to increase the amount of disk space your TemplateVM can use.
|
||||
*Make sure changes in the TemplateVM between reboots don't exceed 10G.*
|
||||
|
||||
To grow the private disk image of an AppVM beyond this limit, `qvm-volume` can be used:
|
||||
1. Resize the *root image* using Qubes version specific procedure below.
|
||||
2. Start the template.
|
||||
3. Resize the filesystem using OS appropriate tools (Qubes will handle this automatically under Linux).
|
||||
4. Verify available space in the template using `df -h` or OS specific tools.
|
||||
5. Shutdown the template.
|
||||
|
||||
### Template disk image (R3.2)
|
||||
|
||||
If you want install a lot of software in your TemplateVM, you may need to increase the amount of disk space your TemplateVM can use.
|
||||
*Make sure changes in the TemplateVM between reboots don't exceed 10G.*
|
||||
|
||||
1. Make sure that all the VMs based on this template are shut down (including netvms etc).
|
||||
2. Resize the *root image* using Qubes version specific procedure below.
|
||||
3. If any netvm/proxyvm used by this template is based on it, set template's netvm to none.
|
||||
4. Start the template.
|
||||
5. Resize the filesystem using OS appropriate tools (Linux is `sudo resize2fs /dev/mapper/dmroot`).
|
||||
6. Verify available space in the template using `df -h` or OS specific tools.
|
||||
7. Shutdown the template.
|
||||
8. Restore original netvm setting (if changed), and check firewall settings (setting netvm to none causes the firewall to reset to "block all")
|
||||
|
||||
### Expand disk image (R4.0)
|
||||
|
||||
1048576 MiB is the maximum size which can be assigned to storage through Qube Manager.
|
||||
|
||||
To grow the root or private disk image of an AppVM beyond this limit, `qvm-volume` can be used:
|
||||
|
||||
~~~
|
||||
qvm-volume extend <vm_name>:root <size>
|
||||
~~~
|
||||
OR
|
||||
~~~
|
||||
qvm-volume extend <vm_name>:private <size>
|
||||
~~~
|
||||
|
||||
Note: Size is the target size (i.e. 4096MB or 16GB, ...), not the size to add to the existing disk.
|
||||
|
||||
### Private disk image (R3.2)
|
||||
### Expand disk image (R3.2)
|
||||
|
||||
1048576 MB is the maximum size which can be assigned to private storage through Qubes Manager.
|
||||
1048576 MB is the maximum size which can be assigned to storage through Qubes Manager.
|
||||
|
||||
To grow the private disk image of an AppVM beyond this limit, [qvm-grow-private](/doc/dom0-tools/qvm-grow-private/) can be used:
|
||||
To grow the private disk image of an AppVM beyond this limit, `qvm-grow-root` or [qvm-grow-private](/doc/dom0-tools/qvm-grow-private/) can be used:
|
||||
|
||||
~~~
|
||||
qvm-grow-root <vm-name> <size>
|
||||
~~~
|
||||
OR
|
||||
~~~
|
||||
qvm-grow-private <vm-name> <size>
|
||||
~~~
|
||||
|
||||
Note: Size is the target size (i.e. 4096MB or 16GB, ...), not the size to add to the existing disk.
|
||||
|
||||
### Shrinking private disk image (Linux VM, R4.0)
|
||||
### Resize a StandaloneVM Root Image
|
||||
|
||||
For more flexibility, you may also turn your TemplateVM into a StandaloneVM.
|
||||
Doing this means it will have its own root filesystem *(StandaloneVMs use a copy of the template, instead of smart sharing)*.
|
||||
To do this run `qvm-create --standalone` from `dom0` console, then perform the [OS Specific Follow-up Instructions](/doc/resize-disk-image/#os-specific-follow-up-instructions) below.
|
||||
|
||||
### Shrinking a disk image
|
||||
|
||||
Ext4 and most other filesystems do not support online shrinking, so it can't be done as conveniently as growing the image.
|
||||
Note that we don't want to touch the VM filesystem directly in dom0 for security reasons.
|
||||
|
||||
1. Create a new qube with smaller disk using Qube Manager or `qvm-create`
|
||||
2. Move data to the new qube using `qvm-copy` or OS utilities
|
||||
2. Move data to the new qube using `qvm-copy`, backup & restore, or OS utilities
|
||||
3. Delete old qube using Qube Manager or `qvm-remove`
|
||||
|
||||
### Shrinking private disk image (Linux VM, R3.2)
|
||||
|
||||
**This operation is dangerous and this is why it isn't available in standard Qubes tools.
|
||||
If you have enough disk space, it is safer to create a new VM with a smaller disk and move the data.**
|
||||
|
||||
The basic idea is to:
|
||||
|
||||
1. Shrink filesystem on the private disk image.
|
||||
2. Then shrink the image.
|
||||
|
||||
Ext4 does not support online shrinking, so it can't be done as conveniently as growing the image.
|
||||
Note that we don't want to touch the VM filesystem directly in dom0 for security reasons.
|
||||
First you need to start VM without `/rw` mounted.
|
||||
One possibility is to interrupt its normal startup by adding the `rd.break` kernel option:
|
||||
|
||||
~~~
|
||||
qvm-prefs -s <vm-name> kernelopts rd.break
|
||||
qvm-start --no-guid <vm-name>
|
||||
~~~
|
||||
|
||||
And wait for qrexec connect timeout (or simply press Ctrl-C).
|
||||
Then you can connect to VM console and shrink the filesystem:
|
||||
|
||||
~~~
|
||||
sudo xl console <vm-name>
|
||||
# you should get dracut emergency shell here
|
||||
mount --bind /dev /sysroot/dev
|
||||
chroot /sysroot
|
||||
mount /proc
|
||||
e2fsck -f /dev/xvdb
|
||||
resize2fs /dev/xvdb <new-desired-size>
|
||||
umount /proc
|
||||
exit
|
||||
umount /sysroot/dev
|
||||
poweroff
|
||||
~~~
|
||||
|
||||
Now you can resize the image:
|
||||
|
||||
~~~
|
||||
truncate -s <new-desired-size> /var/lib/qubes/appvms/<vm-name>/private.img
|
||||
~~~
|
||||
|
||||
**It is critical to use the same (or bigger for some safety margin) size in truncate call compared to resize2fs call.
|
||||
Otherwise you will lose your data!**
|
||||
Then reset kernel options back to default:
|
||||
|
||||
~~~
|
||||
qvm-prefs -s <vm-name> kernelopts default
|
||||
~~~
|
||||
|
||||
Done.
|
||||
|
||||
>In order to avoid error, you might want to first reduce the filesystem to a smaller size than desired (say 3G), then truncate the image to the target size (for example 4G), and lastly grow the filesystem to the target size.
|
||||
>In order to do this, after the `truncate` step, start the vm again in maintenance mode and use the following command to extend the filesystem to the correct size : `resize2fs /dev/xvdb`.
|
||||
>
|
||||
>With no argument, resize2fs grows the filesystem to match the underlying block device (the .img file you just shrunk).
|
||||
|
||||
|
||||
OS Specific Follow-up Instructions
|
||||
-----------------
|
||||
|
||||
After resizing volumes, the partition table and file-system may need to be adjusted.
|
||||
After expanding volumes, the partition table and file-system may need to be adjusted.
|
||||
Use tools appropriate to the OS in your qube.
|
||||
Brief instructions for Windows 7, FreeBSD, and Linux are provided below.
|
||||
|
||||
@ -131,6 +117,6 @@ zpool online -e poolname ada0
|
||||
|
||||
#### Linux
|
||||
|
||||
Qubes will automatically grow the filesystem for you on AppVMs but not HVMs.
|
||||
Qubes will automatically grow the filesystem for you on AppVMs but not HVMs (or Template root images on R3.2).
|
||||
You will see that there is unallocated free space at the end of your primary disk.
|
||||
You can use standard linux tools like fdisk and mkfs to make this space available.
|
||||
You can use standard linux tools like `fdisk` and `resize2fs` to make this space available.
|
||||
|
@ -1,72 +0,0 @@
|
||||
---
|
||||
layout: doc
|
||||
title: Resize Root Disk Image
|
||||
permalink: /doc/resize-root-disk-image/
|
||||
redirect_from:
|
||||
- /en/doc/resize-root-disk-image/
|
||||
- /doc/ResizeRootDiskImage/
|
||||
- /wiki/ResizeRootDiskImage/
|
||||
---
|
||||
|
||||
Resize Root Disk Image
|
||||
----------------------
|
||||
|
||||
See additional information and caveats about [resizing private disk images](/doc/resize-disk-image/), paying particular attention to "OS Specific Follow-up Instructions" at the end.
|
||||
|
||||
### Template disk image
|
||||
|
||||
If you want install a lot of software in your TemplateVM, you may need to increase the amount of disk space your TemplateVM can use.
|
||||
*Make sure changes in the TemplateVM between reboots don't exceed 10G.*
|
||||
|
||||
1. Make sure that all the VMs based on this template are shut down (including netvms etc).
|
||||
2. Resize root image using Qubes version specific procedure below.
|
||||
3. If any netvm/proxyvm used by this template is based on it, set template's netvm to none.
|
||||
4. Start the template.
|
||||
5. Resize the filesystem using OS appropriate tools (Qubes will handle this automatically with Linux templates).
|
||||
6. Verify available space in the template using `df -h` or OS specific tools.
|
||||
7. Shutdown the template.
|
||||
8. Restore original netvm setting (if changed), check firewall settings (setting netvm to none causes the firewall to reset to "block all")
|
||||
|
||||
### Root disk image (R4.0)
|
||||
|
||||
1048576 MiB is the maximum size which can be assigned to root storage through Qube Manager.
|
||||
|
||||
To grow the root disk image of an AppVM beyond this limit, `qvm-volume` can be used:
|
||||
|
||||
~~~
|
||||
qvm-volume extend <vm_name>:root <size>
|
||||
~~~
|
||||
|
||||
Note: Size is the target size (i.e. 4096MB or 16GB, ...), not the size to add to the existing disk.
|
||||
|
||||
### Root disk image (R3.2)
|
||||
|
||||
1048576 MB is the maximum size which can be assigned to root storage through Qubes Manager.
|
||||
|
||||
To grow the root disk image of an AppVM beyond this limit, `qvm-grow-root` can be used:
|
||||
|
||||
~~~
|
||||
qvm-grow-root <vm-name> <size>
|
||||
~~~
|
||||
|
||||
Note: Size is the target size (i.e. 4096MB or 16GB, ...), not the size to add to the existing disk.
|
||||
|
||||
### Resize a StandaloneVM Root Image (R3.2)
|
||||
|
||||
Another way to increase the size of `root.img` is to turn your TemplateVM into a StandaloneVM.
|
||||
Doing this means it will have it's own root filesystem *(StandaloneVMs use a copy of template, instead of smart sharing)*.
|
||||
To do this run `qvm-create --standalone` from `dom0` console.
|
||||
|
||||
In `dom0` console run the following command (replace the size and path):
|
||||
|
||||
~~~
|
||||
truncate -s 20G /var/lib/qubes/appvms/standalonevm/root.img
|
||||
~~~
|
||||
|
||||
Then start Terminal for this StandaloneVM and run:
|
||||
|
||||
~~~
|
||||
sudo resize2fs /dev/mapper/dmroot
|
||||
~~~
|
||||
|
||||
Shutdown the StandaloneVM and you will have extended the size of its `root.img`.
|
3
doc.md
3
doc.md
@ -124,8 +124,7 @@ Configuration Guides
|
||||
* [How to set up a ProxyVM as a VPN Gateway](/doc/vpn/)
|
||||
* [Storing AppVMs on Secondary Drives](/doc/secondary-storage/)
|
||||
* [Multibooting](/doc/multiboot/)
|
||||
* [Resize Private Disk Image](/doc/resize-disk-image/)
|
||||
* [Resize Root Disk Image](/doc/resize-root-disk-image/)
|
||||
* [Resize Disk Image](/doc/resize-disk-image/)
|
||||
* [RPC Policies](/doc/rpc-policy/)
|
||||
* [Installing ZFS in Qubes](/doc/zfs/)
|
||||
* [Mutt Guide](/doc/mutt/)
|
||||
|
Loading…
Reference in New Issue
Block a user