Help/Recommendations for setting up new SSD with Linux
Hello guys,
I bought a new SSD (WD black sn770 2 TB) for my laptop and I also got a USB-C hub which includes a slot for an SSD. My old SSD is 512 GB
So here is what I want to do: I want to change to Linux from Windows 11. I want to keep my old SSD in the USB-C hub with Windows still installed in case I need it for some software/games but Linux will now be my main OS.
Are there any tips or recommendations on things I should look out for when doing this?
I also don't know if I can just install Linux in what is ATM the external SSD and then swap it out afterwards with the SSD inside the laptop without having to do anything extra and if it will just work like that.
I plan on following this tutorial: https://www.youtube.com/watch?v=bfWdnCIrcxk.
Also any recommendations on how I can safely transfer some files? Do I need a special software?
In case interested this is the distro that I plan on using: https://garudalinux.org
As a side note, I did check that the SSD is compatible with my computer and has everything right.
I would only be swapping once and then having the windows SSD in the USB C hub. Would you still recommend that I install the SSD straight away in the laptop and set it up from there?
Well, if Garuda's installer does what it's supposed to do and assigns your boot drive by UUID, it really shouldn't matter. I still think swapping before install and having the system in the planned final configuration minimizes the risk of failure.
Some background: There was a time in history where boot devices were defined by their physical port location, so if you reordered or moved drives, it was up to the user to update the boot config to align it to the new location. If the user didn't know to do that step, the computer would fail to boot. Modern linux distros should use the drive's unique hardware identifier to find the device, wherever it's plugged in.
Linux bootloaders discover the correct linux volume by UUID (which is in the filesystem), or PARTUUID (which is in the GPT table). It'll look at every drive, and when it sees the matching one it'll look in that partition, find the kernel & initrd, suck them into ram, and launch the kernel.
The main problem with moving drives around is - where is the EFI firmware looking for the bootloader in the first place? If you read efibootmgr, the efi data is pretty simple and very much tied to a hardware port. The EFI takes the most preferred bootloader entry, goes to that drive, and runs a file like "\EFI\grub\grubx64.efi". If that file isn't right there, the EFI isn't going to look elsewhere for it.
There is one bootloader name that EFI will pluck out of the blue and (smash the Fx key) offer to you as a boot option - "\EFI\BOOT\BOOTX64.EFI". Self booting usb installers use that, but you could use it too. Put all the other files that go along with the bootloader in with that boot folder, and rename the appropriate .efi to bootx64.efi.
One thing that I've done on odd setups is to put rEFInd on the efi partition as the boot\bootx64.efi loader. It'll do a pretty fancy job of detecting what's bootable (may need an additional filesystem_driver.efi), or even chain into grub to finish the startup.