Howdy All! I recently got a bitchin’ new SSD, a Samsung 990 EVO Plus 4TB and I am struggle bussing trying to make it my new boot drive on my computer while keeping all of my programs and settings and things just the way I like them. Specs are I7 13700K cpu and an RTX 4070 gpu plugged into an MSI MAG Z790 Tomahawk Wifi mobo all working harmoniously to run Opensuse Tumbleweed.
Things I have done so far:
-
Googled that shit, didn’t find much that helped me unfortunately. Found some forum where a guy was trying to move over to an SSD from a HDD and then remove the HDD, whereas I just want to change the boot drive to SSD and continue using both drives in the same rig. Someone else in that thread recommended clonezilla but then further down I read something about UUIDs(?) being copied as well and being unable to use both drives in the same computer or it can cause issues and corrupt data. That scared me off that.
-
Tried using the Yast Partitioner tool but the scary warning box it makes you click through and the general lack of any clue what I’m doing scared me off that.
-
Decided to just fresh install Opensuse Tumbleweed onto SSD with usb and then mount the HDD so that I can just copy everything over that way. Or so I thought. First I ran into the issue of the /home located in HDD not being viewable by my user on the SSD, I guess. Fixed that by unmounting the drive and remounting it with the following appended to the end of the mount command ‘-o subvol=/’ , I got that from google as well. Now I’m able to view things in /home on HDD from the user on SSD and I’ve even copied some things over. However I’m unable to access the .snapshots folder in the root directory of HDD which I intended to copy over the latest snapshot and use it on the SSD install to bring all of my non /home stuff over.
So I’m kinda stuck in the middle of transferring over now. I have an inclination toward being lazy so I don’t really want to spend time installing all of the flatpaks and configuring the OS again if I don’t have to. Mostly because I’ve already had one false start with Linux and went ahead and started fresh so this would be the third time having to set everything up again from scratch. Any help or suggestions are greatly appreciated!
I highly recommend the man pages versus what is on Google. Type ‘man’ or ‘man -k’ to search them. Also available on the web for your particular distro.
Also you might wanna increase the block size in dd. And, it might be faster to use dump and restore, since that isn’t copying empty space.
If you want to clone the existing system onto the new ssd, here’s the broad strokes of what you can do.
- Get a usb stick and write your linux distro of choice to it. Doesn’t really matter which one, we’re just using this to clone the system drive to the new drive. You want the system drive to be totally inactive during the clone which is why you’ll do it from a live usb rather than with the system itself booted.
- shut down the system
- Install the new ssd. DO NOT REMOVE THE CURRENT SYSTEM/BOOT SSD. You should now have two ssds installed.
- If you can’t install the second ssd, plug it in to usb via an enclosure
- Boot from the live usb
- open the terminal
- run
lsblk
and note the/dev/sdX
path of the system drive. Write it down. - From the same output, note the
/dev/sdX
path of the new ssd. Write it down. - Use the
dd
command to clone the system drive to the new ssd. The command will look like this:
`dd if=/dev/existingBootDrive of=/dev/newSSDDrive bs=8M status=progress oflag=direct’
This command will clone the exact data of the system drive to the new ssd. the
if
portion of the command stands forin file
, as in the source of the data you want to clone. Make sure that is your existing boot drive.of
is theout file
, the destination of the clone. Make sure that is your new ssd.When you do this, the new drive will appear to be the same size as the old drive. This is due to the cloning, but is easily resolved by resizing the partition(s). How you do this depends on the filesystem, so refer to this guide for resizing
- Once you’ve resized the partition/disk, double check the partition
UUID
s on the new ssd against what’s in/etc/fstab
on the new disk. To do this, runblkid
to get a list of all the partitions and theirUUID
s. Note theUUID
s of the partitions on the new ssd. - To check
/etc/fstab
, you’ll have to mount the root (/
) partition of the new drive somewhere in the live system. In the terminal you should already be in the home folder of the live system user. Make a new directory withmkdir
. Call it whatever you want. So something like:mkdir newboot
- run
lsblk
and make note of the root partition on the new ssd, then mount that tonewboot
(or whatever you called it) withsudo mount /dev/sdX newboot
(whereX
is the actual device label for the root parition of the new drive` - open
/etc/fstab
with your terminal text editor of choice. Compare theUUID
s to the ones you noted. If they are the same, you’re golden (they should be the same, but I’ve also had them change on me. ymmv). If they are different, delete the oldUUID
and replace it with the newUUID
for each respective partiiton - Shut down the system
- Remove the old boot drive, and install the new boot drive in it’s place
- Boot the system. If all goes well, you’ll boot right into tumbleweed as if nothing has changed except you’re running from your shiny new ssd
- If it doesn’t boot, boot again from the live usb, and again check the
UUID
s to make sure there were no mistakes - Keep the old SSD unmodified in case you need to revert back to it.
I have hit a bit of a snag. Quick rundown of what I have done. I attempted to use clonezilla but then I learned that it can’t clone a larger partition to a smaller partition, even if it is mostly “empty” space. So I learned how to use gparted from a live USB version of Linux mint to size the partition on my hdd with all of my stuff on it to be the same size as my new SSD (8tb to 4tb) so that it could clone to it. Well clonezilla ran for a couple hours overnight and then when I went to check things in the morning I got an error attempting to mount the drive as described in step 12. I don’t remember the error specifically,something about a super block, but my googling told me it was most likely an issue with the cloning process. So I decided to just follow your directions exactly and use disc destroyer for the first time. It took five-ever as in almost 5 hours to copy everything over lol but I am able to mount it as described in step 12, great joy! But then at step 13 when I type
sudo nano /newboot/etc/fstab
I am told that it doesn’t exist. I mosey on over in the file browser and sure enough there is no file at that location. For shits and gigs I runsudo nano /etc/fstab
to look at the one on the live USB version of Linux mint and it doesn’t seem to be what I should be looking for either:overlay / overlay rw 0 0 tmpfs /tmp tmpfs nosuid,nodev 0 0
I thought about saying YOLO but then I remembered this was the exact UUID stuff I was worried about when I read the thread from Google so I thought I’d ask before just trying to boot the SSD and seeing what happens.
Also I have some clarifying questions about the last few instructions. Step 15 says to remove the source HDD before booting, which I can do to test that the SSD cloned successfully but after the test I do want to be able to put the HDD back in to the computer and reformat it as extra storage space. Does that change anything about what I should do? If I want to use both drives together do the UUIDs still need to be identical? Or should they be different in that case?
Thanks again so much for your help, I feel like I’m making progress and Im accidentally learning quite a bit in the process.
From your post it sounds like you’re using btrfs subvolumes, did you use the same ‘-o subvol=/’ when mounting newboot in step 12? I’m pretty sure you should be able to see /etc/fstab if you do that
I tried that and for some reason it only had one directory in /etc and that was snapper. I unmounted and remounted without the -o subvol=/ and I checked in /etc for fstab again and this time I found it so I’m sure I just overlooked it the first time.
I was able to verify that the UUIDs were all the same but then when I attempted to boot from the SSD it went straight to what I think is the grub recovery screen? I just typed shutdown and booted back into the HDD. I guess I’m going to try and clone the drive again. If it doesn’t work again I’ll probably just bite the bullet and perform a fresh install on the SSD again and set everything up manually.
Do you have a screenshot of the error or recovery screen?
Also what do you get if you run sudo btrfs subvolume list /newboot ?
Screenshot of screen ssd boots to currently
spoiler
results of sudo btrfs subvolume list newboot:
spoiler
mint@mint:~$ sudo btrfs subvolume list newboot
ID 256 gen 16336 top level 5 path @
ID 257 gen 16344 top level 256 path @/var
ID 258 gen 16342 top level 256 path @/usr/local
ID 259 gen 16336 top level 256 path @/srv
ID 260 gen 16341 top level 256 path @/root
ID 261 gen 16336 top level 256 path @/opt
ID 262 gen 16344 top level 256 path @/home
ID 263 gen 16163 top level 256 path @/boot/grub2/x86_64-efi
ID 264 gen 16163 top level 256 path @/boot/grub2/i386-pc
ID 265 gen 16327 top level 256 path @/.snapshots
ID 266 gen 16345 top level 265 path @/.snapshots/1/snapshot
ID 267 gen 65 top level 265 path @/.snapshots/2/snapshot
ID 300 gen 13737 top level 265 path @/.snapshots/33/snapshot
ID 301 gen 13737 top level 265 path @/.snapshots/34/snapshot
ID 303 gen 13737 top level 265 path @/.snapshots/36/snapshot
ID 323 gen 13737 top level 265 path @/.snapshots/56/snapshot
ID 324 gen 13737 top level 265 path @/.snapshots/57/snapshot
ID 337 gen 15853 top level 265 path @/.snapshots/70/snapshot
ID 338 gen 15855 top level 265 path @/.snapshots/71/snapshot
ID 339 gen 15884 top level 265 path @/.snapshots/72/snapshot
ID 340 gen 15886 top level 265 path @/.snapshots/73/snapshot
ID 341 gen 15889 top level 265 path @/.snapshots/74/snapshot
ID 342 gen 15891 top level 265 path @/.snapshots/75/snapshot
ID 343 gen 15929 top level 265 path @/.snapshots/76/snapshot
ID 344 gen 15931 top level 265 path @/.snapshots/77/snapshot
ID 345 gen 16281 top level 265 path @/.snapshots/78/snapshot
ID 346 gen 16287 top level 265 path @/.snapshots/79/snapshot
ID 347 gen 16291 top level 265 path @/.snapshots/80/snapshot
ID 348 gen 16326 top level 265 path @/.snapshots/81/snapshot
I appreciate your help! I probably won’t have time to work on it again really until tomorrow, but I feel like I’m close.
Sorry I’m a little unfamiliar with how Opensuse does things so that wasnt as useful as i was hoping lol. Did you have the HDD and SSD connected at the same time when you booted? If you did then you’ll want to disconnect the HDD first.
Also when you get to the grub boot menu if you press e it will show you the config for the selected boot option, can you post a screenshot of that? You may also be able to tell if the root UUID listed there matches the one you expect from fstab. You can also remove splash=silent and quiet from the line beginning with linux and that may give you an actual error message, although it’s possible the boot process is failing before it even gets to that point. If you post the outputs here I can take a look
Edit: looking at your screenshot again I may have misunderstood what was happening, is it failing to even load the boot menu? Also do you know if it’s booting from BIOS or UEFI?
Why not use Clonezilla?
You could. I didn’t even think about it. I’m used to using
dd
, but clonezilla is a totally viable option here.
Thank you so much! I’ve only got the one SSD and one HDD, sorry that I wasn’t very clear in my original post. But I think I can follow your detailed instructions and resolve this. I’ll report back when I’ve had time to do as you’ve described. Again, much appreciated!
No worries! Happy to help, and the instructions will work with the HDD, just use the HDD/boot as the in. I shouldn’t have assumed the existing boot was an ssd. Good luck!!!
You don’t even mention attempting to change the boot order in your CMOS/BIOS. Have you done that, or manually this drive as a boot target?
Sorry I can boot into either one and can change boot order via bios, yes. I’m trying to merge two installs now basically. I want my SSD to be my one and only boot drive but have all of the settings and programs from the HDD brought over to the fresh install. And then use both drives at the same time. If that makes sense. Sorry for any confusion.
Okay, so that clarifies it a bit. Unfortunately, you can’t just merge the two different installs, but what you CAN do is just clone the existing SSD over to the new one, them make that your boot drive. That seems to be the simplest option for you.
So let me get that straight. You have an external drive that you want to boot from. What’s with the HDD where does that came from and what’s that about?
In any case I wouldn’t recommend to regular boot from an external device but from an internal HDD/,SDD.
No, sorry. My computer had a single HDD. Now I have a new SSD that I would like to add to the machine and use in conjunction with that HDD.
Well that’s easy then. Install the SSD, boot from your usb stick with your preferred Linux distribution. Install Linux to your nvme0 device (that’s your SSD) and let the installer format it in the recommended way.
Then after the installation reboot into your new Linux. If the old bootloader triggers instead, you need to change the boot order so that your SSD boots first.
What boot loader do you use? Grub and REFind are the most common, but there are others: Clover, LILO, Lemine, systemd-boot, syslinux… how you tell your computer which thing you want you boot from depends on your boot loader.
However, I suspect the issue is more simple: did you go into your BIOS and switch where the firmware which device to try to boot from? If you’ve added a new HD and you want to boot from it, this is _always_¹ required.
- Ok, not always. I suppose there exists some BIOS that always shows you a menu and asks which device you want to use, but that’s uncommon.
I’m 99% sure I’m using Grub. I did go into my Bios to change the boot order and I also have it set up currently where it will give me a few seconds at startup to choose which drive I want to boot from while I figure my mess out.