Here is a
link. BIOS is detecting the disk, but neither the Linux nor the Windows does
When you run the "lsblk -f" command you are looking for block devices, which is what the actual hard drives are. Prior to this PCI must also see the device, and this is likely what the BIOS is seeing. If PCI fails, then lsblk cannot see the drive. If PCI succeeds, then lsblk sees the drive if and only if the actual SATA wiring is working with sufficient quality (which is different than if the PCIe wiring is working with sufficient quality...it is a chain of dependencies).
Since this is confusing, I'll restate that PCI can succeed or fail (including for simple signal quality issues rather than outright failure), and whether or not SATA can possibly succeed depends on this when going through PCIe slots. Once the PCIe succeeds, then there are similar signal quality issues for the SATA wiring (and SATA signal quality can succeed or fail even if the device is technically functional...it is the topic of RF signal quality and this changes depending on lane routing, lane shape, external noise sources, so on).
So under Linux I will suggest looking at the output of "lspci". Many devices will be shown, but if you can find lspci hard drive entries which you trust are for hard drives, then you've proven that the PCIe side is functioning (for those specific devices which go through PCI...not all SATA must go through PCI, some might be wired directly to memory controllers for example, and a single SATA controller might deal with multiple hard drives and thus show only one entry despite two drives being attached); from that you can look at a more verbose version of lspci and see if the PCI says there is any error. If no PCI error, then the issue is between SATA and PCI. Here is a command to somewhat shorten the list of what lspci will show, and is more likely your device will be somewhere in that list (since we know it is in a PCIe slot via adapter):
lspci | egrep -v -i '(ethernet|vga|usb)' | egrep -i '(controller|sata|nvme|orico|psm2|ssd)'
Do you see your specific device in that lspci list? If so, then the PCI is seen, and lsblk fails because the drive-to-adapter card is failed (possibly for no other reason than signal quality). In this case I would expect the BIOS to see the device, but the operating systems would not show any block device via lsblk.