Я написал скрипт 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 будут вводящими в заблуждение, что может усложнить будущие исправления.