I guess it creates a huge read burden on my hard disk in a long term.
No it does not unless you're reading and writing tons of data from/to the disk. Linux uses caching for all read/write operations, so once (having been) run, your binary will be cached and subsequently the kernel will use its image in the cache memory and won't read the file from the disk.
More rules can take the place. The first harddisk detection is made by BIOS (UEFI). It checks each (s)ATA line and if gets a valid response it can report it to the OS. Some BIOSes keep the order, so if some ATA line didnot respond its letter is left free (sda, sdb, sde, sdf). You can meet also multithreded BIOSes which ask all the lines at the same moment, ...
i'm running ubuntu 18.04 and had this same issue. thanks to @allo's answer, i found out the smartd is indeed the cause.
by default the /etc/smartd.conf is configured like this:
DEVICESCAN -d removable -n standby -m root -M exec /usr/share/smartmontools/martd-runner
which will auto scan all drives and poll them (this operation spins up the disk) periodically ...
As far I can see Windows 10 has created an invalid GPT structure which neither the Linux kernel, not gdisk can recognize. Here's how you can try solving the issue.
Boot into Windows, run under the administrator cmd:
wmic partition get BlockSize, Name, Index, StartingOffset, Size
Write down/save all the partitions and offsets of the disk you're interested in....