Help making ZFS hd smaller

Hi all,

I’m new to Linux and very new to ZFS.

I’m trying to make a ZFS pool smaller. I’ve been trying to blunder may way through this for a couple of weeks and getting nowhere: time to ask for help from people who know what they’re doing.

Here’s the story: I am running Daniel Hansson’s excellent 40gb VM on VirtualBox on Windows 10. I keep almost no user files on the VM drives - they’re all on external storages.

But through some misdventures with preview generation, I filled up the the 40gb VM drives.

Following the nice little tutorial here (, I added a new fixed 200gb VM drive to my ncdata zfs pool and all was good.

But now that I’ve got my previews figured out, I have WAY more space than I need.

For the sake of making quick clones of the VM, I’d like to replace the 200gb drive with a 10gb drive.

I won’t bore you with the things I’ve tried, but none have worked. I suspect I need to destroy the ncdata pool and recreate it with a smaller drive, but am not sure how to do that (or even if that’s right).

Hoping somebody with some ZFS skills can walk me through the best approach.


There is no way to shrink a ZFS pool/partition/filesystem - sorry
There seemed to be some rumors around about implementing ability to shrink, but most people use some hacks (edit definitions and redefine sizes) or a second disk (mirror and then copy/move back to a smaller volume), but - to my knowledge - there is no command to simply say “resize please”.


So I guess my question is what’s the best alternative? From what I can gather, it’s making a copy of ncdata, sending it to a tz, destroying the pool and then creating a new pool called ncdata with the smaller drive and receiving the ncdata copy back into it.

About to try it, but curious if anybody knows a better approach I’m missing.