---
title: Shrink Block Storage
url: https://docs.vultr.com/products/storage/block-storage/management/shrink-block-storage
description: A guide explaining how to reduce the size of a Vultr Block Storage volume
publish_date: 2025-06-17T20:49:08.501307Z
last_updated: 2026-05-26T19:42:21.867941Z
---

# How to Shrink Vultr Block Storage Volume

Vultr doesn't support direct shrinking of Block Storage volumes. To reduce volume size, create a smaller volume, copy the necessary data from the original, and delete the larger one. 

Follow this guide to migrate your data to a smaller Vultr Block Storage volume.

=== "Manual Migration"

    1. Inventory your files to determine the space needed.

        * On Windows, you can use the File explorer, or use the `fsutil` tool.

            ```pwsh
            > fsutil volume diskfree E:\
            ```

        * On Linux and FreeBSD based instance, use the `df` command.

            ```console
            $ sudo df -h /mnt/blockstorage
            ```

    1. [Create a new Vultr Block Storage volume](https://docs.vultr.com/products/cloud-storage/block-storage/provisioning) of the required size in the same region as your instance.
    1. [Attach the new volume](https://docs.vultr.com/products/cloud-storage/block-storage/management/attach-instances) on your instance, then [mount](https://docs.vultr.com/products/cloud-storage/block-storage/mount) it.
    1. Copy your files from the larger block storage volume to the new, smaller volume. Use the tools appropriate for your platform.

        * On Windows, use the `robocopy` tool.

            ```pwsh
            > robocopy E:\ F:\ /E /XD "temp"
            ```

            This command copies all the files from `E:\` to `F:\`, excluding the `temp` folder. The `/E` option recursively copies the subfolders.

        * On Linux, use the `rsync` tool.

            ```console
            $ sudo rsync -avc /mnt/blockstorage/ /mnt/smallblockstorage/ --exclude "lost+found"
            ```

        * On FreeBSD, use the `rsync` tool. You may need to install it first.

            ```console
            # pkg install -y rsync
            # rsync -avc /mnt/blockstorage/ /mnt/smallblockstorage/ --exclude "lost+found"
            ```

    1. Verify the migrated data in your new Vultr Block Storage volume.

        * On Windows, compare the source and destination Vultr Block Storage volume and list any files that are different, without actually performing any copy operation.
        
            ```pwsh
            > robocopy E:\ F:\ /L /E
            ```
            
            The `/L` option simulates the copy and reports what would be done. In case of a successful data migration, the `Mismatch` field shows `0`.
            
        * On Linux and FreeBSD, use rsync with `--dry-run` option.
        
            ```console
            $ sudo rsync -avc --dry-run /mnt/blockstorage/ /mnt/smallblockstorage/ --exclude "lost+found"
            ```
            
            If the data migration was successful, the command does not list any individual file names between the header `sending incremental file list` and the final summary.

    1. [Detach](https://docs.vultr.com/products/cloud-storage/block-storage/management/attach-instances) your old Vultr Block Storage volume.

    1. When satisfied with the new volume, [destroy your old Vultr Block Storage volume](https://docs.vultr.com/products/cloud-storage/block-storage/management/delete-block-storage).

=== "Terraform"

    1. Shrinking an existing Block Storage volume is not supported. Use Terraform to create a new, smaller volume, attach it, and later remove the original.

        ```terraform
        terraform {
          required_providers {
            vultr = {
              source  = "vultr/vultr"
              version = "~> 2.23"
            }
          }
        }

        provider "vultr" {}

        # Existing instance
        resource "vultr_instance" "server" {
            region = "ewr"
            plan   = "vc2-1c-1gb"
            os_id  = 215
            label  = "app-server"
        }

        # New smaller volume
        resource "vultr_block" "small_block" {
            region               = "ewr"
            size_gb              = 40
            label                = "Remote-Block-Storage-Small"
            block_type           = "high_perf"
            attached_to_instance = vultr_instance.server.id
        }
        ```

    1. After you migrate and verify data, detach and delete the original larger volume by removing its resource from configuration (or targeting destroy), then apply.
