Я не знаю способа предотвратить запись Windows в NVRAM и изменение переменных EFI; Однако есть и другие вещи, которые вы могли бы сделать ....
Смотрите мой ответ на этот вопрос для некоторых инструментов, которые могут помочь. bcdedit
, скорее всего, будет полезен в этом отношении. Вы также можете попробовать EasyUEFI , который я не использовал, когда писал предыдущий ответ.
Другой вариант - создать сценарии запуска и / или завершения работы системы, которые автоматически восстанавливают желаемую конфигурацию загрузки. Вы бы использовали bcdedit
для этого в Windows, но я не достаточно пользователя Windows, чтобы предоставить подробности. Делать это в Linux вряд ли будет необходимо, поскольку Linux не является виновником; но если бы это было так, вы могли бы использовать efibootmgr
- или для более легкого прикосновения вы могли бы использовать refind-mkdefault
, который я добавлю к следующей версии rEFInd. По умолчанию этот сценарий устанавливает rEFInd в качестве загрузочной программы по умолчанию, но если вы передадите ему имя (имя файла или описание) другого инструмента через опцию -L
, сценарий установит его вместо этого по умолчанию.
В худшем случае вы можете переименовать или переместить файл загрузчика Windows (EFI\Microsoft\Boot\bootmgfw.efi
на ESP) во что-то другое и поставить Shim на его место с копией GRUB. Это приведет к запуску GRUB вместо загрузчика Windows. Вам нужно будет перенастроить настройки GRUB, чтобы правильно запустить загрузчик Windows. Инструмент Boot Repair может сделать это автоматически; эта опция находится в меню "Дополнительно" и называется что-то вроде "создать резервную копию и заменить загрузочные файлы Windows" (точное имя не помню). Основным недостатком этого подхода является то, что, если и когда Windows обновит свой загрузчик, вам придется повторно применить это исправление. Это также сбивает с толку; имена файлов на диске и загрузочные записи NVRAM будут вводить в заблуждение, что может осложнить будущий ремонт.