I tried setting up Geth servers in full node different times, and all of them are always behind half of total max block. So, they cannot be synced easily even after weeks. I would like to know can I initiate a Geth server from a certain specific block instead of genesis block? If so, how can I do that? I did not find any option for this purpose.
You can't do that, because you need the entire state (i.e. the balances of accounts, the code of contracts, etc.) in order to validate future blocks. What you might be looking for is
fast sync, this downloads the state first and then starts to execute the code. You might already be using this though.
I think the problem here might be your hardware. Make sure you are using a SSD connected via USB 3.0.