Вы могли бы написать простую службу Windows, которая записывает информацию о состоянии где-нибудь, чтобы другая ОС могла ее найти. Это может быть, например, один из неиспользуемых секторов после MBR, выделенный раздел или карта памяти USB.
Когда служба запускается, вы пишете сообщение о том, что Windows запущена и работает, возможно, с отметкой времени. Вы можете обновлять это время от времени, вы даже можете включить информацию о состоянии, такую как загрузка процессора или события загрузки / выгрузки драйвера, если это будет полезно. Когда служба обнаруживает, что система выключается, она пишет сообщение об этом. Когда ваша другая ОС просматривает эту информацию, если в последнем сообщении не говорилось о намеренном завершении работы системы, вы можете заключить, что Windows потерпела крах. Windows делает что-то подобное, так что загрузчик может предложить загрузить систему в безопасном режиме.
Очевидно, что это не позволяет вам различать BSOD и другие типы сбоев, и вы получите ложное срабатывание, если система потеряет питание. Вы также не сможете обнаружить BSOD, если он произошел во время завершения работы системы. Важность этих предостережений зависит от деталей, о которых вы нам не говорите.