I recently got a framework DIY edition, with the plan to use the SSD from my previous laptop, which I thought should be compatible – it’s an NVMe, not SATA, one notch… but when I boot the machine the BIOS doesn’t see it, and booting off of a Fedora live USB stick works, but then the OS can’t see the drive either (so it doesn’t look like it’s just a firmware thing). The only related existing thread I was able to find was here:
…but it doesn’t seem like the author came up with a solution other than buying a new drive. Folks in that thread asked about the contents of the drive, and I double checked it is already formatted with a GPT partition table (but I don’t think it would matter for the live USB being able to see it anyway…)
Usually if a drive pulled from a different computer doesn’t show for an installation, it’s because the drive has been formatted with MBR support (the BIOS on the computer you removed it from might show the boot mode as UEFI/Legacy or CSM Support enabled). I think it still should show in the BIOS, though, (it should appear under the Attached Device List under the Boot section in the BIOS).
If it shows under the Device List but doesn’t appear for your installation media, you’d need to remove all the partition information with a lower-level tool like diskpart (Windows) or fdisk/gparted (linux). Once cleaned you should be able to create a GPT partition table and install to it. If it doesn’t show up under the Attached Devices List in the BIOS, then it might not be in the socket properly on your Framework laptop.
It’s a different thing for if the computer think the drive does not exist, or that it does detect the drive but cannot find a operating system (or identify the file systems, noot sector, etc).
The drive does not appear in the BIOS either. I’d checked before, but double checked (from the other machine) that the disk is already using GPT, rather than MBR:
# fdisk -l /dev/nvme0n1
Disk /dev/nvme0n1: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: WDS100T3X0C-00SJG0
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: C0454DD9-B6CD-424C-8D4A-0798A43066D5
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 1538047 1536000 750M EFI System
/dev/nvme0n1p2 1538048 1953525134 1951987087 930.8G Linux filesystem