Отключить доступ Windows к UEFI NVRAM

Отключить доступ Windows к UEFI NVRAM

Я написал скрипт bash, который добавляет запись Grub в UEFI NVRAM. Скрипты вызываются загрузочным USB linux. Эта команда добавляет запись:

efibootmgr -c -d /dev/sda -p 2 -L "Grub2" -l "\EFI\Boot\shimx64.efi" 

Скрипт работает нормально. Но позже я установил Windows из образа Partclone.

Windows перезаписывает порядок загрузки и добавляет новую запись. Это происходит во время загрузки Windows. После перезагрузки Grub2 исчезает.

Я не хочу вносить изменения в Windows (bcdedit bootmgr), так как у меня есть готовый образ (сделанный partclone)

Можно ли отключить доступ Windows к UEFI NVRAM? Можно ли запустить Windows из Grub EFI (безопасная загрузка) без менеджера загрузки Windows (имею ввиду непосредственно winload.efi)?

Есть ли у вас какие-либо идеи?

решение1

Я не знаю способа запретить 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.Ремонт багажникаtool может сделать это автоматически; опция находится в меню Advanced и называется что-то вроде "резервное копирование и замена загрузочных файлов Windows" (точное название я не помню). Главный недостаток этого подхода в том, что если и когда Windows обновит свой загрузчик, вам придется повторно применить это исправление. Это также сбивает с толку; имена файлов на диске и записи загрузки NVRAM будут вводящими в заблуждение, что может усложнить будущие исправления.

Связанный контент