Add macOS disk resize support#678
Conversation
f5ac0a5 to
2cfd5fe
Compare
2cfd5fe to
5e9a160
Compare
insidegui
left a comment
There was a problem hiding this comment.
Added some comments about the code, mostly just nitpicks.
I couldn't test it yet though, as I couldn't figure out how to access the disk resizing feature. At first I thought the resizing arrow icon was a button, but it's just an indicator, and the ellipsis button that gives access to the disk settings remains disabled for the boot disk, even when it indicates that it's resizable.
|
Strange, it works for me: Cap.2026-05-25.at.22.11.41.mp4 |
|
Thanks for the feedback @insidegui ! |
|
I think I found a bug. It's trying to resize every VM I boot up, even if I haven't changed the boot disk size. In one case, I saw an I think the My suggestion would be to add a flag to the VM metadata indicating that there are disk resizes pending, then bail early in Other than that, I tested resizing a virtual machine using an ASIF disk image from 64GB to 128GB and it worked flawlessly 👌🏻 |
|
Interesting... let me check that |
0c2bdc6 to
6b78500
Compare
|
I was able to fix it and improved the disk resize UX a little bit as well |
|
@insidegui sorry to ping you like this, but we are so close |
|
Sorry, I'm very busy right now and next week is WWDC, so it will take a while. I haven't forgotten though, so don't worry 😉 |
|
Right, WWDC is tomorrow! Can't wait! |
e0aab36 to
461f528
Compare
|
@insidegui , maybe now? 🥺 |
|
After further reviewing the code, I'm once again uncertain about merging this 😔
I'm ultimately responsible for maintaining every single line of code that gets merged into this project, even if the original contributor promises to do it themselves, so adding this amount of complexity for a feature that I'm not interested in is hard to justify. Having to keep supporting it going forward would mean delaying more important/requested features, and I always hate it when that happens 😅 Since most of the work for disk resizing is done by running command-line tools under the hood, I wonder if we could offer a bunch of shell scripts that power users can run themselves instead of shipping this as a user-facing feature. These could be shipped in the app with instructions for how to run them, or placed in the repository with documentation. |
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
461f528 to
5954bf4
Compare
|
Thanks for the honest feedback @insidegui, totally fair 🙇 I took one more pass at it and cut it down hard — the diff is now ~650 lines across 9 files (was ~2,200 across 18). The big change: VirtualBuddy now only grows the disk image itself, and the guest claims the space with one command ( That let me delete the part I suspect you'd hate maintaining the most:
What's left is basically: If this is still more than you want to own, no hard feelings — I'll happily convert it to the shell-script approach you suggested, most of what's left would translate pretty directly. But I figured it was worth one try at a version you can review in one sitting 😅 |
|
That sounds a lot more manageable 😄 I'm a bit busy this week, but I'll check it out again soon. |


What the resize feature does is that when a guest VM starts the next time, before the guest OS boots, VirtualBuddy inspects the guest disk image by temporarily attaching it on the host with
hdiutiland reading the partition layout. If it finds an APFS-on-GPT layout, it treats it as a macOS guest disk and checks for locked APFS volumes / FileVault first:diskutilexpands the GPT layout and the APFS container to match. If APFS does not pick up the new ceiling on the first pass, which sometimes happens, the resizer applies a small shrink-and-grow nudge to force APFS to recompute the available space.