How can I know path to the disk (device) I want to partition (using PXE) without turning on the machine in advance?
I can't speak for other linux, but for RHEL 7 there is
/dev/disk/by-id/ /dev/disk/by-label/ /dev/disk/by-partlabel/ /dev/disk/by-partuuid/ /dev/disk/by-path/ /dev/disk/by-uuid/
Without turning the machine on, if you use by-label then you should be able to do it. For example my server has an Dell PERC raid controller, raid-5 of 6 disks, and in the raid controller I made that volume label data.
Therefore /dev/disk/by-label/data is a link to /dev/sdb1 in my case. But for doing anything I can reliably I can reference /dev/disk/by-label/data to access that disk (or volume) which is behind a hardware raid controller, where I have labeled it that using the raid controller. If you have labeled multiple disks with the same label syntax, don't do that that's bad and will obviously be problematic if you wish to reference by-label.
If you explore the other options, you may be able to understand and forecast the syntax of the disk
Under by-id I see on my system entries such as wwn-0x62cea7f048bd6b0028133956b9cd56d5-part3 -> ../../sda3 where sda3 is my 1 operating system disk as JBOD and is my / partition mount of linux.
Recognizing wwn = world wide number, which is usually printed on the label on the disk, you could reference that before turning on your computer and then know the syntax of how to reference the disk.
Is path to disk (/dev/mydisk) different from SATA, SSD, NVME or RAID?
yes, a listing of my /dev/disk/by-path on my rhel7 server shows
pci-0000:db:00.0-scsi-0:2:0:0@ pci-0000:db:00.0-scsi-0:2:0:0-part3@ pci-0000:db:00.0-scsi-0:2:0:0-part1@ pci-0000:db:00.0-scsi-0:2:1:0@ pci-0000:db:00.0-scsi-0:2:0:0-part2@ pci-0000:db:00.0-scsi-0:2:1:0-part1@
The path to every disk will be different, it has to be even if they are all sata or all nvme or whatever.
When you said I "know" SATA-disks uses the path /dev/sdaX while the nvme uses /dev/nvmeX
that location of /dev/sd? is the actual block device that you reference. To find out what a given sd?? refers to, reference all the links under /dev/disks/ to understand. And there is no reason you must use /dev/sda1 for example, you can reference any of the links under /dev/disk/by-whatever that fits your needs.