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 wouldn't recommend swapping afterwards, moving devices around is a good way to confuse a bootloader and run into problems.
I think you should create your installation medium, remove the Windows SSD from laptop, install your new one, then install Linux.
You won't need anything special to transfer files, but keep in mind windows 11 uses bitlocker by default, you'll probably want to disable that while windows SSD is still in the laptop, otherwise that drive will remain encrypted and inaccessible by Linux.
As a side note: the grub and root filesystem issues are mostly an issue of the past. If you're on a modern distro (and haven't mucked with things) they no longer use device names, but rather rely on UUIDs, which is good: those don't change even if you move the drives around.
As long as grub is in the boot sector and you're using UUIDs in your grub.conf and fstab, you should almost never have any issues moving drives around the same system.
Yeah I debated mentioning it because fully agree - UUID should cover it. But idk what bootloader Garuda uses or how it configures it, and I have no experience going from an external USB-C enclosure to internal drive, is it really seamless?
I just trying to advise on the side of cautiousness.
I've recently moved drives between m2 slots and usb-c enclosures and everything worked, but that's also why I used the word 'should' a lot.
I've had zero issues in the past few years moving drives around (even between different systems!) and my experience has been nothing but 'shit just works', but yeah, I know that there's probably edge cases where that's not true.
For what they're doing, though, it should be fine, since there's a relatively low amount of complexity and grub really doesn't care where the drive is as long as it has the UUID at this point.
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.