The easiest way to do so is
Generate ethers in genesis block using alloc config param
Set block rewards to 0 in PoW chain.
Build geth to get your customized private-net with fixed supply and 0 block reward.
To set 0 block reward, in go-ethereum/consensus/ethash/consensus.go file change reward to 0.
FrontierBlockReward = big.NewInt(0) // Block reward ...