For the last few years I've run a dual boot system of windows and ubuntu. Ubuntu has been my daily driver with windows kept around solely for photoshop and a few games.
When first setup ubuntu runs fine when I first start it and windows runs fine when I switch to it. However when I switch back to ubuntu after having loaded windows I get an error that my superblock is corrupt and I cannot load ubuntu until I fix the corruption using the command line which takes a significant amount of time.
My hacky way around this has been for the last year to have each operating system installed on a different drive, and when I want to switch OS power down the machine and physically unplug one or the other. This is less than ideal for multiple reasons.
For the longest time I could not find a solution until I ran across this thread describing the same problem.
As I understand it(or think I do), the issue stems from ubuntu using a ext4 drive partition with the metadata checksum feature enabled. Somehow windows mucks this up when its loaded, despite being on a different physical drive.
Fortunately it appears that all we need to do is disable this feature. Boot up the computer using a live cd, make sure the drive/partition with the feature flag is unmounted and run this command replacing XX with the relevant values for your system.
sudo tune2fs -O ^metadata_csum /dev/sdXX