01 - Bring 8 cups of water and 1 tablespoon salt to a rolling boil in a large pot. Add pasta and cook until al dente according to package directions. Drain, reserving ½ cup of the cooking water, and set pasta aside.
02 - Melt butter in a medium saucepan over medium heat. Stir in flour and cook for 1 minute while stirring continuously to form a smooth roux.
03 - Gradually whisk in whole milk, avoiding lumps. Cook, whisking constantly, until the sauce thickens enough to coat the back of a spoon, about 3 to 5 minutes.
04 - Lower heat to low and stir in cheddar and Parmesan cheese until melted and smooth. Season with garlic powder, black pepper, and salt.
05 - Toss drained pasta into the cheese sauce, coating evenly. Adjust consistency with reserved pasta water if needed.
06 - Plate immediately and garnish with chopped parsley and additional Parmesan if desired.