Should I use Windows built-in shrink feature to move partition space to another partition?

dysprosium@lemmy.dbzer0.com to Linux@lemmy.ml – 32 points –

I have dual boot Win10 and Linux (manjaro), and I want to shrink my NTFS C:\ partition to free up space in my ext4 root partition on the same physical drive.

I keep reading online that NTFS partitioning is best handled by Windows itself. However, Windows cannot partition ext4, so I thought I'd use a live GParted session for the ext4 extending part only.

So why not shrink my C:\ partition IN WINDOWS, obtain my unallocated space, then boot into live GParted, and use the unallocated space to extend my ext4 root.

This, or do everything from GParted in one go? What has the best chance of success?

I could also install GParted on my running Linux distro, and do the extending from there. But I feel like GParted live would somehow be... better?

30

Whatever you decide, make sure you've got a backup of any important data before you start making any partition changes. Things go wrong occasionally even when they shouldn't.

Depends on how the partitions are arranged. I'm assuming your Windows is first (going left to right), then probably your boot partition, then your main ext4, and then maybe a swap?

Definitely shrink the windows partition using disk management, but then in Linux you can clone your boot partition to the beginning of the free space, delete the old boot, and then expand the ext4. You don't HAVE to do it from a live environment, but it is the safest.

I didn't google much, but this seems about right: https://www.baeldung.com/linux/resize-partitions

IMO your first plan is best given your setup. Personally I keep Windows in a VM, that way it's entirely controlled and I don't need to reboot.

I see, thanks. I'd love to use Win in a VM but I doubt it's as flawless as on metal. For example, would WebSerial API work as well? Idk, maybe.

Unless you have a dedicated GPU just for the VM(s) it isn't awesome for anything graphical, other than that it works for most things.

I don't think you can shrink an active partition, especially if you're booted from it. Just use gparted live, it's fine. I prefer doing all my resizes offline. The only thing I do online is extending.

I thought so too, but apparently you can. I saw people on youtube do it on their active C partition

Can confirm that this (should) work, done it multiple times.

Huh, they must have changed that at some point. Last time I checked (which was probably many years ago at this point) they didn't support it. I've just always used tools like gparted because I got used to them.

It's kind of hit or miss. Depending on how full the partition is and how exactly the data is arranged, windows may not be able to shrink even a non-boot partition.

The built-in partition manager doesn't seem to be capable of rearranging anything, so you kind of just have to rely on luck for the shrink operation to be possible.

Hence why third party tools like easus are still in business on the windows side.

Defragging works for that.

I seem to remember disabling hibernation and swapfile, then defragging, seemed to significantly increase the chances of success shrinking an active partition.

(Re-enable hibernation/swap after the shrink operation is finished.)

But is that still recommended on an ssd? Defragging for higher success of shrinking an active partition?

Definitely don't defrag regularly because, yes, it will wear out the SSD. However, defragging once will move the files into a contiguous chunk of the partition and allow you greater success at shrinking it.

Had to do this on Win11, it worked.

I shrunk my Win10 partition from within Windows to make space to dual boot into linux so you definitely can shrink an active partition.

@dysprosium @catloaf GParted takes a lot of time doing tasks. Is this normal?

depends heavily on amount of data and cpu speed. I wouldn't wanna interrupt though

And hdd/ssd speed. Honestly it's more about the drive speed than the cpu.

Yup. If data has to be moved, that's one read and one write, in different parts of the disk. That's going to be slow. (At least they'd be sequential, I think.)

Depends on the task and the hardware. Disk operations can be anywhere between instant and hours.

In some cases, days. When I last retired some drives in my NAS, the task of moving the partitions onto new drives was a 48 hour process.

Like already said, unless you're sure something has gone wrong, don't interrupt. As long as it's still doing its thing, it'll get there.

You will be fine doing your first plan. Defragment your windows drive first (you’re not wearing down your ssd with that operation. Modern ssds have wear leveling tech and are good for like 100k writes so it’s not a big deal to defragment it. Also if it’s getting slower doing a level uhh 2 spinrite scan will fix that by rewriting everything. Ask if you want to know why).

Oh, Gibson finally stopped mucking around with his certainly DOA SQRL project long enough to get Spinrite working on modern systems?

No it’s still only x86 lol.

I’m almost 100% you can get the equivalent of a lvl2 spinrite scan out of badblocks but haven’t tried it yet.

Drat. 6.1 was supposed to add UEFI support. It's kind of useless without that.

I’ve only been able to boot it through “csm” or equivalent methods on uefi systems. Got a stack of slow as molasses soldered storage laptops here that could use it.

Maybe soon I’ll try to replicate it with badblocks. Better buy a bunch of old m1 mbas if it works.

some of file system not support extend from the beginning of the partition. make sure you checked ext4 support it

I'm not sure whether this is equivalent, but the free space was on the left of the root partition, so I first moved the root partition to the left of the free space, then extended it to the right. It probably took twice as long. And maybe the risk is the same, I've no idea

So I finally did it. Results?

First was unable to shrink in windows due to a bunch of reasons, but I overcame them: hibernation file, page(r)file, and other bullcrap.

Finally, I could shrink. Then, a fatal error in the shrinking process. I ignored it. Waited few minutes and the disk seemed to have shrunk after all. Weird.

Then proceeded as planned. GParted the rest. All is working fine now!

Moral of the story? None.