Odd. I’ve left my Canon printer with empty tanks on some colours and it still prints (well, tries to - blank space where specified colour should be) which is fine for printing B&W, and I’ve never had it refuse to scan simply because of an ink tank being empty. I’m using OS X so is this maybe a Linux issue rather than a Canon issue? Or are the Linux drivers Canon-provided? (Never used Linux, no idea.)
I love the negative/slide scanner too - one of the main reasons I keep this Canon around.