У меня довольно сложная конфигурация. Я пытаюсь быть синтетическим:
У меня 4 диска (1 ssd, 2 nvme и 1 HDD) и 4 ОС (3 Win10 и 1 ubuntu):
компьютер - UEFI.
Сначала у меня не было проблем. Grub показал мои 4 варианта загрузки.
Но мне пришлось переустановить Win10-1, и тогда я полностью потерял свой личный состав. Таким образом, я смог загрузиться только на Win10-1 или Win10-2 через диспетчер загрузки Windows.
Я попытался восстановить загрузку Grub на живом Ubuntu, но с небольшим успехом ... Вот фактическое поведение:
Boot
|_______Grub
|______*Ubuntu > boots Ubuntu
|______*Windows Boot manager on /dev/nvme1n1
|_______Windows Boot Manager GUI
|______*Win10-1 > boots Win10-1
|______*Win10-2
|_______Grub
|______*Ubuntu > Grub rescue
|______*Windows Boot manager on /dev/nvme1n1 > boots Win10-2
Итак это полный беспорядок для меня, и, кстати, я потерял возможность загружаться на Win10-3 ...
Я не знаю, как стереть эту беспорядочную конфигурацию загрузки в MBR и вернуться к этому:
Boot
|_______Grub
|______*Ubuntu > boots Ubuntu
|______*Windows Boot manager on /dev/nvme0n1 > boots Win10-1
|______*Windows Boot manager on /dev/nvme1n1 > boots Win10-2
|______*Windows Boot manager on /dev/sdb > boots Win10-3
Is есть ли волшебный инструмент для настройки этого?
Любая помощь / совет будут оценены.
--- Редактировать 1 --- Спасибо за ваш ответ, WaterOfDark.
Я уже прошел через этот процесс, но безуспешно.
Кроме того, Win3 не имеет большого значения, поскольку я могу загрузить его, используя выбор EFI. У меня также есть 3 раздела EFI на Nvme1, Nvme2 и SSD1
Может быть, проблема в этих разделах? Может быть, я смогу каким-то образом сбросить содержимое части EFI, а затем снова запустить update-grub?
Должен признать, что я не очень хорошо разбираюсь в материалах EFI.
--- Edit2 ---
Я подтверждаю, что быстрый запуск Windows отключен
--- Edit3 ---
Вот результат выполнения команд: Вот результаты
willy@Ubuntu:~$ sudo efibootmgr
BootCurrent: 0002
Timeout: 1 seconds
BootOrder: 0002,000A,0000,0008,0006,000B,0007
Boot0000* Windows Boot Manager
Boot0002* ubuntu
Boot0006* UEFI: SAMSUNG SSD 830 Series, Partition 2
Boot0007* UEFI: Sabrent Rocket 4.0 1TB, Partition 1
Boot0008* Windows Boot Manager
Boot000A* ubuntu
Boot000B* UEFI OS
willy@Ubuntu:~$ sudo dmidecode -t0 | grep -Ei "BIOS boot|UEFI"
BIOS boot specification is supported
UEFI is supported
Прежде всего, спасибо всем за то, что указали мне правильный путь, что дает мне хорошие подсказки. После большого чтения по этой теме я стал лучше разбираться в предмете.
Вот подробности того, как я поступаю:
Из Ubuntu, используя Gparted, я полностью удаляю раздел EFI на Nvme2. Я форматирую раздел на Nvme1. . (с флагом загрузки)
Затем в терминале:
sudo gedit / etc / fstab
для замены UID раздела EFI. Изменяет форматирование арфтера. Линия должна выглядеть так
UUID = 1A2B-3C4D / boot / efi vfat по умолчанию 0 1
,сохраните fstab, затем смонтируйте раздел EFI sudo mount / boot / efi
и переустановите grub
sudo grub-install
Теперь, после перезагрузки, записи UEFI больше не беспорядочные, но у вас есть только одна запись: Ubnutu. Здесь больше нет Windows, поэтому мне нужно воссоздать записи EFI для Windows
Во многих найденных мною руководствах говорится об использовании средства восстановления при загрузке Windows, но:
Я сделал это вручную:
Загрузитесь с установочного носителя Windows10> выберите язык> Восстановите компьютер> Дополнительные параметры> Устранение неполадок > Командная строка
С помощью diskpart я монтирую и добавляю букву в раздел EFI
diskpart
diskpart>list vol (to display assigned letter to partitions and volume numbers)
diskpart>sel vol 4 (volume number of the EFI partition)
diskpart>assign letter=Z: (or other available letter)
diskpart>exit
Затем я использую bcdboot для создания записей Windows в разделе EFI
bcdboot D:\Windows /l fr-fr /s Z: /f UEFI (D is the letter of the partition with the first Windows system to boot, here Win10-1)
bcdboot E:\Windows /l fr-fr /s Z: /f UEFI /d /addlast (E is the letter of the partition with the first Win10-2 system)
bcdboot F:\Windows /l fr-fr /s Z: /f UEFI /d /addlast (F is the letter of the partition with the first Win10-3 system)
При перезагрузке теперь есть 2 варианта выбора в выборе UEFI: Grub или загрузка Windows manager, но grub по-прежнему не знает Windows.
В конце загрузитесь в последний раз на Ubuntu и выполните sudo update-grub
.
Вот фактическое поведение при загрузке:
Boot
|_______Grub
|______*Ubuntu > boots Ubuntu
|______*Windows Boot manager on /dev/nvme0n1
|_______Windows Boot Manager GUI
|______*Win10-1 > boots Win10-1
|______*Win10-2 > boots Win10-2
|______*Win10-3 > boots Win10-3
Для большей ясности мы можем использовать bcdedit для переименования записей в WBM
Из любой командной строки Windows:
bcdedit (to list entries and not identifiers)
bcdedit /set {identifier} description "My Custom Windows"
Теперь предварительная очистка. Но я должен пройти через Grub, затем через графический интерфейс Windows Boot Manager, чтобы загрузиться в любой Windows. Так что я продолжаю играть!
Я снова отформатировал раздел EFI на Nvme1, создал новый на Nvme2, а другой на SSD1 (раздел FAT32 100Mo с флагом 'boot' от Gparted)
Установите Grub на Nvme1 / boot / EFI .
С установочного носителя Windows10 таким же образом, как описано выше, смонтируйте все 3 раздела EFI и добавьте в каждый из них соответствующие записи EFI:
bcdboot D:\Windows /l fr-fr /s Z: /f UEFI /d /addlast (D is system Win10-1 and Z EFI on Nvme1)
bcdboot E:\Windows /l fr-fr /s Y: /f UEFI /d /addlast (E is system Win10-2 and Y EFI on Nvme2)
bcdboot F:\Windows /l fr-fr /s X: /f UEFI /d /addlast (F is system Win10-3 and X EFI on SSD1)
Окончательно выполните update-grub
из Ubuntu после перезагрузки.
А теперь вот поведение:
Boot
|_______Grub
|______*Ubuntu > boots Ubuntu
|______*Windows Boot manager on /dev/nvme0n1 > boots Win10-1
|______*Windows Boot manager on /dev/nvme1n1 > boots Win10-2
|______*Windows Boot manager on /dev/sdb > boots Win10-3
Кроме того, теперь я могу загружать любую систему из выбора UEFI, и если я потеряю диск Nvme1, я все еще могу загрузиться с другого диска
Надеюсь, этот роман может быть полезен другим людям
У меня была похожая проблема, я решил ее, обновив загрузчик grub через версию linux-live. Но сначала я бы рекомендовал снова запустить ОС Win-3. Я полагаю, что для вашей Win-3 вы каким-то образом удалили флаг загрузки. Самый простой способ восстановить это - отключить все остальные "работающие" ОС, чтобы был подключен только жесткий диск с Win-3 (SSD1), который использует инструмент восстановления Windows (используйте живую систему Windows, если обычная загрузка не работает. запустите средство восстановления, если подключен только диск win-3), чтобы исправить флаг загрузки. После этого подключите все снова и обновите grub.
После того, как Win-3 заработает, обновите grub из системы linux-live. Хорошее подробное объяснение того, как это работает, вы можете найти здесь . Просто убедитесь, что выбрали правильный раздел, так как у вас две ОС на одном жестком диске.
Редактировать:
Хорошо, я думаю, это что-то особенное для EFI. Я нашел здесь полезную информацию , но она на немецком языке. Использование действующей или установленной системы для более подробной проверки ситуации Для считывания NVRAM
sudo apt-get install efibootmgr
...
sudo efibootmgr -v
Boot0002* Ubuntu HD(1,800,32000,34911255-cfd8-43ce-a600-fb43636a9c2c)File(\EFI\trusty\shimx64.efi)
Boot000X - это просто увеличивающиеся числа, и * отметьте его как активный, поэтому вы должны получить минимум 2 записи со звездочкой или, возможно, 4, если тестируется и нормальный диск.
Вы можете запустить sudo dmidecode -t0 | grep -Ei "BIOS boot | UEFI"
, чтобы узнать, поддерживает ли ваш UEFI CSM (если да, он будет поддерживать BIOS и UEFI).
Любая проблема может заключаться в том, что окна проверяют, выполняется ли первый вход в загрузчик EFI - это Windwos, в противном случае он удалит его и заменит собственный загрузочный флаг. Предложение предотвратить это - оставить его на первом месте, но отключить. Но я предполагаю, что это будет работать только с 1 windosOS.