Say that if I only start from a half of the root,
You'd better don't say this. Don't even think about it (see below).
then there will be some objects not reachable during the mark phase,
They're reachable, but they won't be reached by the algorithm. Too bad.
then they are not being marked live,
Too bad.
when it comes to the sweep phase, will those un-marked objects being GCed
If there were any GC ignoring half of the root, then yes.
or the GC doesn't know how to deal with them, which means we cannot start GC from half of the root?
Exactly. All the objects marked as live will be saved in a survival area. What could you do about those not marked when the only reason for GC is to reclaim memory?
What memory can you reclaim when you have objects which are surely alive and objects which are in an unknown state?
NONE
That's the problem. You'd like to save work by not traversing some objects, but in this case the half-done job is worth zero.
It's OK to let live some objects longer than necessary, but not the other way round.