PostgreSQL failsafe start after disk crash
Among the options you give, the first is the only feasible one.  But neither one of them is very good.

The only good solutions is to prevent it from happening.  If your disks randomly eat your data, maybe next time it will be the postgres binaries that get eaten, or the kernel itself, or the init script you wrote to re-init the database when it gets corrupted, or the dump files which contains the schema you want to use to reload.

If your disks are honest and true but your database got corrupted anyway because you were running with fsync=off, then don't do that.  Run with synchronous_commit=off instead, if you must.  That risks losing some transactions, but doesn't corrupt your database.