2

I went from a 120GB SSD to a 480GB SSD, but because I dual-boot between Windows and Linux, I can't seem to get the new, unallocated space beside either of the partitions for an extension to happen.

I deleted my Windows Recovery partition to free up room in the MBR for another partition and created one out of some of the unallocated space. I designated it as an NTFS partition and put it toward the end, leaving ~90GB of unallocated space beside the Linux partitions. But I can't move either and I can't create a new partition because I'm now at the max. Even when I had created an ext4 partition right beside the Linux partitions, I couldn't extend the / ext4 partition into the new partition.

I think it's because the new space is not aligned with either of the existing NTFS or ext4 partitions. I want to give ~240GB to Windows and ~90GB to Linux, but I can't seem to get them to move. I've tried searching and searching and most entries I've found don't describe this situation. I apologize if this has been clearly asked somewhere and I missed it.

Current situation in GParted:

GParted Status

7
  • Don't shure, but try at first extend extended partition (sda3). And then move and resize content of it. (rally sda6 and sda5 located inside sda3. Commented Jul 25, 2016 at 17:03
  • @mmv-ru I can't resize /dev/sda3 - the option is grayed out in GParted. My guess is its because it is really a container for the swap and root partitions. Commented Jul 25, 2016 at 17:05
  • Was the partition layout originally like this? It’s not legal. The Extended Partition (only one can exist) is the last partition on the disk, no partitions may follow it, either logically or physically. Both rules are violated, even the logical order of the logical volumes inside the Extended Partition is reversed. Is there any data on sda4?
    – Daniel B
    Commented Jul 25, 2016 at 17:28
  • I miss it! @AFH right. don't do it from system you tied to move! Use Gparted Live or any You like. Or run windows version of GParted. Commented Jul 25, 2016 at 17:30
  • No, sda4 was part of the unallocated space that I converted to a partition in an attempt to move it. Commented Jul 25, 2016 at 17:30

2 Answers 2

3

So from the discussion in the comments I gather these are your goals:

  • Add 240 GiB to sda2, the Windows partition
  • Add 90 GiB to sda6, the Linux partition

Currently, the disk is in an illegal (sort-of) state, though most operating systems will tolerate it: The extended partition is followed by another partition both physically (obvious from image) and logically (sda4 is stored after sda3 in the partition table).

Since sda4 doesn’t contain any data, we will simply remove it. Its space can never be added to sda2 this way, anyway.

So proceed as follows, from GParted Live:

  1. Remove sda4.
  2. Extend the Extended Partition (sda3) (heh), so it covers the unallocated space that remains behind it.
  3. Remove the swap partition (sda5).
  4. Move and resize the Linux partition (sda6), but leave some space for the swap partition. This will take some time. The goal is to get a “distance” of 240 GiB between the end of the Windows partition and the start of the Linux partition.
  5. Create a new swap partition inside the Extended Partition.
  6. Move the start of the Extended Partition back as far as you can.
  7. Reboot to Windows.
  8. Inside Windows, start Disk Management and extend the Windows partition.

Of course you could always extend the Windows partition using GParted, but I’d rather rely on the official NTFS implementation for that.

If you think you can pull it off, you may be able to fix the partition order. You’ll most likely have to repair the Linux installation afterwards, though. Unless it relies on UUIDs or labels.

To do this, use the command prompt on GParted:

fdisk /dev/sda
x
f
r
w

These commands mean:

  • Start fdisk
  • Enter expert mode
  • Fix partition order
  • Return to normal mode
  • Write changes to disk
5
  • Thanks @Daniel B - this looks promising. I'll spin up a LiveUSB and give this a shot. Commented Jul 25, 2016 at 17:54
  • One immediate issue I'm encountering is that the option to Resize/Move the extended partition (sda3) is greyed out. I can't actually figure out how to get the extended partition to the end. I toggled swapoff, but it won't allow a value greater than 0 in the "Free space preceding" field. Commented Jul 25, 2016 at 18:02
  • I, err, already knew that. Yes. I’ll investigate. :D
    – Daniel B
    Commented Jul 25, 2016 at 18:10
  • Well, I deleted the swap partition and extended the Extended partition to take up the remaining space. Then, I grew the / ext4 partition to 90GB and moved it all the way to the right. I rebooted, but now grub is running in recovery mode (presumably because the partition in which it was located has had its ID changed from something like sda6 to sda5?) I'm downloading Ubuntu 16.04 LTS and I'm going to blow away all Linux partitions and just reinstall -- hopefully the Windows partition has remained relatively unaffected. Commented Jul 25, 2016 at 18:32
  • 1
    Yes, that’s to be expected. Instructions on how to fix it are available here, basically: sudo grub-install –boot-directory=/mnt/boot /dev/sda inside chroot. // I’ve updated the instructions on how to move the Extended partition. It’s basically what you already did.
    – Daniel B
    Commented Jul 25, 2016 at 18:43
2

The basic problem is the extended partition /dev/sda3. There are several things you can do:-

  • You should be able to extend /dev/sda3 to fill the currently unallocated space: you will probably need to do this by booting a LiveCD.
  • You can then move the swap partition /dev/sda5 to the end of the extended partition (though it will be quicker to delete and recreate) and extend /dev/sda6 to fill the remaining space.
  • If you don't need to hibernate Linux, you can save a partition by using a swap file instead.
  • Having deleted /dev/sda5, you can then copy /dev/sda6 into the empty space, then delete /dev/sda3 (you will definitely need a LiveCD for this) and extend the copied partition downwards.
  • You will need to update-grub from the LiveCD in order to boot with the new partition structure.

I hope it goes without saying that you should take a full disc copy before embarking on such radical disc repartitioning.

3
  • Yeah, this sounds logical. I'll give it a try! All of my important docs are backed up to Github, Google Drive, et al. So, though I don't want to go through the pain of reinstalling apps/games then downloading the entire internet, I do want to access that extra storage space. I'll accept as correct if it works! Commented Jul 25, 2016 at 17:33
  • Wait - one thing that I'm not sure this addresses is getting that primary NTFS partition to be able to extend into the remaining unallocated space. Commented Jul 25, 2016 at 17:36
  • 1
    I thought you wanted to allocate all the spare space to Linux. If you delete the extended partition you can expand /dev/sda2, preferably from Windows Disk Management. (Been off-air, upgrading to Ubuntu 16.04.)
    – AFH
    Commented Jul 25, 2016 at 23:48

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .