Melt butter over medium heat in a small saucepan.
Whisk in the flour making sure there are no lumps.
Slowly whisk in milk, making sure there are no lumps.
Bring mixture to boil, stirring frequently.
Add the cheese and stir until it is melted.
Remove from heat and keep warm (I use a small crock pot made for dips to do this)
Cook spaghetti per package directions. Drain and set aside, covering so it stays warm.
Heat a large skillet over medium heat.
Add oil and heat through.
Add the onions and the mushrooms and cook until they start to get brown.
Add the roast beef and cook until there is no pink and heated through.
Add the garlic powder and salt and pepper to taste.
Portion out pasta on plates.
Divide meat mixture over pasta
Ladle sauce on top of each plate.