Bring a large pot of salted water to a boil. Cook spaghetti according to the package directions.
In a small bowl, beat the eggs with several grindings of pepper (the more, the better) and 1/2 cup of the cheese. Set aside.
In a large skillet, heat oil over medium heat, add the bacon, stir until bacon is cooked through but not crisp, then add the garlic and onion to the pan. Turn heat way down to low and cook until tender and golden. Turn off heat under the pan.
Cook spaghetti according to the package directions. When pasta is done, ladle out about 1/4 cup of the cooking water and stir quickly into the eggs to temper them.
Drain pasta. Toss pasta in the pan with the bacon and pour in the egg mixture. Toss quickly and vigorously with tongs to coat the spaghetti, cook over medium heat for 1 minute, season to taste with more black pepper.
Sprinkle remaining cheese over each portion. Serve immediately.