система:

Manjaro работает на диске m.2 nvme, Windows 10 работает на отдельном жестком диске

Проблема:

По праздникам я, кажется, очень плохо испортил свою систему. У меня была стабильная система в течение нескольких месяцев, но я хотел функции безопасности SecureBoot, поэтому я включил ее в BIOS. С тех пор, как моя система не смогла загрузиться в Manjaro и будет загружать только Win10. Я сбросил настройки безопасной загрузки, но проблема остается.

В настоящее время я могу загрузиться с живого диска Manjaro, созданного с помощью Rufus в режиме dd. Я использовал mhwd-chroot для доступа к моей существующей установке на nvme0n1p2 и поэтому могу создавать резервные копии моих файлов. Я попытался запустить grub-install /dev/nvme0n1 и получил:

grub-install: error: cannot fine EFI directory.

посмотрев вокруг, я обнаружил, что мой каталог EFI для Manjaro находится в nvme0n1p1 . Поэтому я попытался установить его:

# mount /dev/nvme0n1p1 /boot/efi
mount: /boot/efi: unknown filesystem type 'BitLocker'

Глядя на lsblk -f , я вижу, что этот раздел действительно указан как BitLocker (как /dev/sda3 , раздел файловой системы Windows). Правильно ли я полагаю, что это похоже на то, что Win10 зашифровал мой раздел EFI? Какими будут мои следующие шаги по восстановлению? Могу ли я использовать GParted, чтобы переформатировать этот раздел, затем смонтировать его в /boot/efi и запустить grub-install?

для дополнительной информации я попытался использовать инструмент восстановления загрузки, но, очевидно, он хорошо работает только с дистрибутивами Ubuntu. независимо от того, вот пастбина его анализа, который может или не может быть полезным: http://paste.ubuntu.com/p/PkmfdtxHjq/

1 ответ1

0

Поэтому после долгих болей и страданий я решил свои проблемы. Я думаю, что мои инстинкты раньше были правильными - каким-то образом действие включения безопасной загрузки и последующей загрузки в windows зашифровало мой Linux-раздел EFI nvme0n1p1 . Скорее всего , я справился бы со своими инстинктами и очистил этот раздел, но, поскольку он занимал всего 300 МБ, это не стоило места, так что на всякий случай я создал новый раздел. Вот шаги, которые я предпринял, чтобы решить эту проблему:

  1. Загрузите в Манджаро живой USB
  2. Запустить GParted
  3. Создайте новый раздел размером 300 МБ между BitLocker'd nvme0n1p1 и моей файловой системой, работающей на nvme0n1p2 , nvme0n1p2 слева. Новый раздел должен быть fat32
  4. Применить изменения в GParted
  5. Примените флаги boot и esp к новому разделу (nvme0n1p4) через GParted
  6. Мы используем mhwd-chroot-shell для того, чтобы выполнить chroot в вашей системе (nvme0n1p2)
  7. Измените /etc/fstab чтобы использовать новый раздел вместо старого.
  8. Обновить GRUB

Обновление grub:

$ sudo su
# grub-install /dev/nvme0n1
# update-grub

изменения fstab:

- UUID=319a7d84-9d20-4f5f87f3-10948da50d73  /boot/efi   /dev/nvme0n1p4: PARTUUID=   defaults    0   1
+ UUID=C410-9DC8    /boot/efi   vfat    defaults    0   2

Я не уверен, почему в оригинальной строке был другой формат. Первоначально моя новая строка следовала тому же формату, но это не загрузилось бы также. После некоторого прочтения мне показалось, что в конце должно быть 2 , а не 1 , а дополнительные детали не принадлежат.

На этом этапе процесса я перезапустил свой компьютер без подключенного к нему живого USB, думая, что понял это, но та же проблема все еще присутствовала. Поэтому потребовалось еще несколько шагов:

  1. Перезагрузитесь с подключенным live usb, пока не попадете в меню загрузчика Live Usb. Внизу есть опция «Определить загрузчик EFI».
  2. Выберите загрузчик для вашего устройства. В моем случае (hd1,4)
  3. В этот момент мой оригинальный GRUB загрузился, и я смог войти в систему. После этого я снова обновил grub (те же команды, что и раньше). Теперь я могу загружаться в мою систему как обычно! Не требуется Live USB!

Это все для меня в новинку, так как раньше у меня никогда не было подобных проблем. Надеюсь, кто-то еще может использовать эту информацию.

Последнее замечание о mhwd-chroot-shell: у меня возникли некоторые проблемы с ним, так как он не обнаружил каталог /etc/ в моем разделе nvme0n1p2 , поэтому он не распознавал никакие системы Linux. Чтобы обойти это, я настроил скрипт оболочки. Непосредственно перед тем, как выдается ошибка «Системы Linux не найдены!"Я добавил проверку, чтобы вручную вставить свой раздел в него, если он не обнаружил:

if [ $nbpart -eq 0 ]; then
    list[$nbpart]=/dev/nvme0n1p2
    ((nbpart++))
fi

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .