Preheat your oven to 400 degrees and then spray a casserole dish with non-stick spray.
Clean your butternut squash well and slice it in half, length wise. Cook for about 30 to 40 minutes or until tender (it will cook more in the casserole, don't worry if it is not all the way cooked yet).
While your butternut squash is cooling, saute your white onion (finely chopped) in olive oil in a skillet over medium heat.
Cook for about ten minutes or until the onions are softened. Once the butternut squash is cooled and you can handle it, remove the seeds and skin with a carving knife. Carefully slice the butternut squash into thin strips.
Spray your casserole dish with non-stick spray and arrange your squash evenly into two layers.
Add the onions, garlic, salt and pepper to your dish evenly over the butternut squash. In a separate bowl add the two eggs and beat them well, then fold in the sour cream.
Pour over the butternut squash strips and then add the Parmesan and mozzarella cheese.
Bake at 400 degrees covered in foil for 20 minutes.
Cook uncovered for an additional 10 minutes or until the cheese is thoroughly cooked.