Вопрос или проблема
Я использую двойную загрузку Windows и Pop_OS!, и недавно Windows обновился, из-за чего все испортилось 🙁
У меня две EFI-раздела на одном диске: один маленький (старый), который я ранее использовал для Ubuntu/Windows, и новый больший, который содержит systemd. Мне нужно, чтобы загрузка по умолчанию происходила из systemd. Я могу получить доступ к systemd, вручную выбрав его через UEFI, но даже после установки флага загрузки на больший раздел моя машина по-прежнему загружается из старого (неправильного) раздела.
Я не знаю, как это исправить, поскольку интернет, похоже, утверждает, что установка флага загрузки должна была решить эту проблему. Я полагаю, что удаление старого раздела – это вариант, но это звучит страшно, и я не хочу еще больше все испортить. Следует отметить, что текущее место загрузки в моем BIOS предлагает не так много, похоже, это просто текущий неправильный раздел. Кроме того, я хотел бы исправить это так, чтобы Windows снова не вызвал эту проблему.
Есть идеи?
Редактировать: вывод sudo blkid
Раздел с systemd – это /dev/nvme0n1p6
Также вывод gparted может быть полезен:
Редактировать 2:
Я не знаю, поможет ли это, но я обнаружил, что Windows может загрузиться только с первого раздела, а Pop_OS! только с шестого, хотя экран выбора операционной системы systemd имеет вариант как для Pop_OS!, так и для Windows.
Насколько я понял, это описывает текущее состояние:
/dev/nvmen0n1p1
смонтирован на/tmp/mnt
– загружает Windows, не Pop_OS/dev/nvmen0n1p6
смонтирован на/boot/efi
– загружает Pop_OS, не Windows
Я придумал план действий:
du -sh /boot/efi
узнать размер “Linux ESP”du -sh /tmp/mnt
узнать размер “Windows ESP”- проверить, достаточно ли Windows ESP для Linux ESP
umount /boot/efi
размонтировать “Linux ESP”dd if=/dev/nvmen0n1p6 of=p6.backup.vfat
создать резервную копию на всякий случайmount /boot/efi
снова смонтировать “Linux ESP”rm -r /tmp/mnt/EFI/ubuntu
похоже, у вас когда-то была установка Ubuntu. Этот устаревший загрузчик можно удалить.cp -r /tmp/mnt/* /boot/efi
объединить “Windows ESP” с “Linux ESP” (это “исцелит” загрузку Windows – но в неправильном ESP)cp -r /boot/efi* /tmp/mnt/
скопировать объединенный ESP в “Windows ESP”umount /boot/efi
снова размонтировать “Linux ESP”dd if=/dev/zero of=/dev/nvmen0n1p6
удалить “Linux ESP” (это можно вернуть, используя резервную копию в/dev/nvmen0n1p6
). Теперь UEFI не имеет другого выбора, кроме как выбрать единственный оставшийся ESP- отредактировать
/etc/fstab
, чтобы/dev/nvmen0n1p1
монтировался на/boot/efi
- Опционально:
mount /boot/efi
смонтировать “объединенный ESP” - ???
- перезагрузить и держать пальцы скрещенными
Опционально: вы должны быть в состоянии выполнить grub-install /dev/nvmen0n1
и update-grub
после монтирования объединенного ESP.
Я не знаком со стилем загрузки Pop_OS!. Я никогда не слышал о systemd-bootx64.efi
. Я рекомендую подготовить USB-накопитель с Super GRUB2 Disk – он обычно может загрузить что угодно.
Ответ или решение
Чтобы установить по умолчанию нужный загрузочный раздел в ситуации с двумя EFI-разделами, следуйте приведённым ниже шагам. Обратите внимание, что вы берёте на себя ответственность за изменения, которые вносите в свою систему. Всегда рекомендуется делать резервные копии важных данных перед проведением каких-либо операций с дисками.
1. Понимание текущей конфигурации
На основании представленных данных, у вас есть два EFI-раздела:
/dev/nvme0n1p1
— это старый раздел, используемый для загрузки Windows./dev/nvme0n1p6
— это новый раздел, содержащий загрузчик для Pop_OS!.
Убедитесь, что именно этот новый раздел вы хотите использовать по умолчанию.
2. Проверка содержимого разделов
Запустите следующую команду, чтобы просмотреть содержимое обоих разделов и убедиться, что все важные файлы находятся на месте:
ls /boot/efi
и
ls /tmp/mnt
Убедитесь, что на разделах есть файлы systemd-bootx64.efi
и другие, необходимые для загрузки системы.
3. Настройка загрузчика
Сначала смонтируйте нужные разделы, если они ещё не смонтированы:
sudo mount /dev/nvme0n1p1 /mnt/windows
sudo mount /dev/nvme0n1p6 /mnt/popos
Далее создайте резервные копии текущих EFI-разделов:
sudo cp -r /mnt/popos/EFI /mnt/popos/EFI.bak
sudo cp -r /mnt/windows/EFI /mnt/windows/EFI.bak
4. Слияние и настройка загрузчиков
Рассмотрите возможность переноса загрузчика из одного EFI-раздела в другой. Это может потребоваться, если Windows перезаписывает загрузчик. Выполните следующее:
sudo cp -r /mnt/popos/EFI/* /mnt/windows/EFI/
После этого убедитесь, что все файлы корректно скопированы, и перейдите к обновлению конфигурации загрузчика Windows. Можно использовать bcdedit
для настройки приоритетов загрузки, если у вас есть доступ к Windows.
5. Установка нового приоритета загрузки
Чтобы задать новый порядок загрузки, вам нужно использовать efibootmgr
. Установите его, если он не установлен:
sudo apt install efibootmgr
Запустите:
sudo efibootmgr
Проверьте текущий порядок загрузки. Вы можете изменить порядок загрузки, используя следующую команду (замените 0001
на правильный идентификатор для Pop_OS!):
sudo efibootmgr -o 0001,0000
6. Удаление ненужных EFI-разделов (по желанию)
Если всё работает корректно, и вы уверены, что старый EFI-раздел больше не нужен, его можно удалить с помощью gparted
или командной строки. Будьте осторожны! Это может вызвать проблемы с загрузкой системы.
sudo parted /dev/nvme0n1 rm 1
7. Тестирование конфигурации
Перезагрузите систему и проверьте, загружается ли Pop_OS! по умолчанию. Если система не загружается должным образом, вы можете использовать Super GRUB2 Disk или Live USB для доступа к системе и восстановления конфигурации загрузчика.
Заключение
Перед выполнением вышеуказанных шагов убедитесь, что вы полностью понимаете все действия. Настройка загрузочных разделов может быть рискованной, и неверные действия могут привести к потере данных или невозможности загрузки системы. Всегда поддерживайте резервные копии ваших данных и настроек перед любыми изменениями.