tl;dr I cloned a dual-boot 128GB SSD onto a 120GB SSD. Linux works fine, Windows doesn't. What do?

I have an old Thinkpad going on for 9 years with an 128GB Toshiba SSD that I've wanted to replace for some time. I mistakenly assumed it was 120GB, so I went ahead and ordered a Crucial 120GB SSD and when I tried to clone my old SSD onto it, I realised I had got the wrong size. Never mind, I used cat to clone the old one onto the new one and I thought I could just resize it after. It's a dual boot with Lubuntu occupying the first half and Windows 10 the rest. I popped in the new SSD, laptop started up fine, I got the grub menu and I picked Lubuntu. I was able to smoothly login without any issues. However, running gparted came up with lots of "Can't have a partition outside the disk" errors and I then realised it wouldn't be so easy to resize the partition. I tried booting Windows hoping it would run a disc check utility for the NTFS partition but no luck, Windows fails with "inaccessible boot device".

What are my options short of ordering a larger SSD (for some reason 128 GB are super rare and the only ones I could find are from unknown brands)?

  • 1
    128 GB is pretty small for Windows 10, applications, data and all that stuff. It may be your drive was sufficiently full that it would not all fit in 120 GB . You need to have spare space (up to 30 GB for Windows.old when you do a big update and whatever else spare you need). Consider a 256 GB SSD. – John Jun 1 '20 at 19:25
  • @John That's a sensible suggestion but I'm also genuinely curious how to fix a problem like this. – Nobilis Jun 2 '20 at 15:31

Well, you are trying to move 50 people into a bus where only 40 fit in. The front ones are happy and you are wondering about not getting answers from the remaining 10...

Apart from using a commercial tool like Disk Director from Acronis you first need to ensure that you have at least a free space of 8GB.

First thing is to make a backup of the drive in question what you will certainly miss.

Using free tools you'd do the following: Resize the partition layout of your source SSD so that the content will simply fit on the other SSD using maybe Gparted (I use it rarely, don't know if that does the job). Before resizing a particular partition you would defrag it. Normally you never defrag SSDs. In this particular case you do it to move as many used clusters to the beginning of each partition. If you do this on operating system level it is less risky than to let Gparted do it. Then you resize the partition. Your new partition layout is not allowed to address more space than the one available on your target SSD. When ready, simply use dd or better use ddrescue to duplicate the drive.

  • Right, I thought I might have to resize the original drive which I was hoping to avoid and just fix it on the cloned drive. So if I got you correctly, I need to: 1. Defrag the source drive 2. Resize it 3. Clone onto target drive. Is that correct? – Nobilis Jun 2 '20 at 18:13
  • Yes. I used the bus example to explain that you are basically doomed to fail except for the case where the partition layout on your source does not contain the last 8 GByte. – r2d3 Jun 2 '20 at 18:29
  • Right, that's the catch, thank you. – Nobilis Jun 2 '20 at 18:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.