Изменение раздела системы EFI для увеличения его размера, но Ubuntu по-прежнему загружается с другого раздела?

Вопрос или проблема

Я нахожусь в схожей ситуации с автором этого вопроса (за исключением того, что у меня не хватает около 60 МБ в моем ESP, просто перемещение шрифтов кажется недостаточным) и я попробовал следовать инструкциям принятого ответа.

Изначально у меня был один диск /dev/nvme0n1 с шестью разделами, и загрузочный раздел был /dev/nvme0n1p1.

Итак, я изменил размер большого “основного раздела данных” (родной метки ‘OS’), чтобы освободить место для седьмого раздела, /dev/nvme0n1p7.

Затем я скопировал все данные с исходного загрузочного раздела (/dev/nvme0n1p1) в этот новый раздел /dev/nvme0n1p7.

Я добавил отдельные загрузочные записи Windows и Ubuntu в efibootmgr, используя две команды (в этом порядке)

sudo efibootmgr -c -d /dev/nvme0n1 -p 7 -l /EFI/Microsoft/Boot/bootmgfw.efi -L "Windows boot loader"
sudo efibootmgr -c -d /dev/nvme0n1 -p 7 -l /EFI/ubuntu/shimx64.efi -L "ubuntu 2"

Затем я отметил результаты efibootmgr:

BootOrder: 0008,0007,0005,0006,0003,0000,0001,0002,0004
Boot0000* UEFI RST BC711 NVMe SK hynix 512GB NA9N616312709Q0J   HD(1,GPT,bcc78a1f-b4cc-4e11-bc5a-3e59305a8d80,0x800,0x4b000)/File(\EFI\Boot\BootX64.efi){auto_created_boot_option}
Boot0001* ONBOARD NIC (IPV4)    PciRoot(0x0)/Pci(0x1f,0x6)/MAC(b44506334875,0)/IPv4(0.0.0.00.0.0.0,0,0){auto_created_boot_option}
Boot0002* ONBOARD NIC (IPV6)    PciRoot(0x0)/Pci(0x1f,0x6)/MAC(b44506334875,0)/IPv6([::]:<->[::]:,0,0){auto_created_boot_option}
Boot0003* UEFI HTTPs Boot   PciRoot(0x0)/Pci(0x1f,0x6)/MAC(b44506334875,0)/IPv4(0.0.0.00.0.0.0,0,0)/Uri(){auto_created_boot_option}
Boot0004* Linux Firmware Updater    HD(1,GPT,bcc78a1f-b4cc-4e11-bc5a-3e59305a8d80,0x800,0x4b000)/File(\EFI\ubuntu\shimx64.efi) File(.\fwupdx64.efi)
Boot0005* Ubuntu    HD(1,GPT,bcc78a1f-b4cc-4e11-bc5a-3e59305a8d80,0x800,0x4b000)/File(\EFI\ubuntu\shimx64.efi)
Boot0006* Windows Boot Manager  HD(1,GPT,bcc78a1f-b4cc-4e11-bc5a-3e59305a8d80,0x800,0x4b000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)57494e444f5753000100000088000000780000004200430044004f0042004a004500430054003d007b00390064006500610038003600320063002d0035006300640064002d0034006500370030002d0061006300630031002d006600330032006200330034003400640034003700390035007d00000048000100000010000000040000007fff0400
Boot0007* Windows boot loader   HD(7,GPT,7d2e14c7-1c88-48ab-9f6b-b739859e9717,0x233fc000,0x121000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)
Boot0008* ubuntu 2  HD(7,GPT,7d2e14c7-1c88-48ab-9f6b-b739859e9717,0x233fc000,0x121000)/File(\EFI\ubuntu\shimx64.efi)

Затем я восстановил UUIDы /dev/nvme0n1p1 и /dev/nvme0n1p7, и поставил последний вместо первого в /etc/fstab.

Итак, в общем и целом, я достиг судьбоносного шага 11, где

[если я] сделал всё точно правильно, компьютер должен загрузиться с нового ESP и смонтировать новый ESP в /boot/efi.

Ответ предлагает проверить две вещи:

  • Введите df /boot/efi, чтобы проверить, что новый ESP смонтирован там.
  • Введите efibootmgr и проверьте переменную BootCurrent. Она должна соответствовать новой записи ubuntu 2, которую вы создали.

Результат df /boot/efi:

Sys. de fichiers blocs de 1K Utilisé Disponible Uti% Monté sur
/dev/nvme0n1p7        590696  135964     454732  24% /boot/efi

Так что это должно работать.

Однако вывод efibootmgr начинается с
BootCurrent: 0005
Timeout: 0 seconds

Так что я загружаюсь на оригинальную версию Ubuntu (используя то, что находится в /dev/nvme0n1p1), а затем монтирую раздел /dev/nvme0n1p7 в /boot/efi?

В любом случае, это не тот результат, который я хотел, и я боюсь следовать инструкциям дальше (и начинать обновление Grub, который я даже поверхностно не могу понять). Так как мне выправить курс отсюда?

Для справки, вывод lsblk -e 7 -o name,fstype,size,fsused,label,partlabel,mountpoint:

NAME    FSTYPE   SIZE FSUSED LABEL       PARTLABEL                    MOUNTPOINT
nvme0n1        476,9G                                                 
├─nvme0n1p1
│       vfat     150M        ESP         EFI system partition         
├─nvme0n1p2
│                128M                    Microsoft reserved partition 
├─nvme0n1p3
│       ntfs   281,7G        OS          Basic data partition         
├─nvme0n1p4
│       ntfs     990M        WINRETOOLS                               
├─nvme0n1p5
│       ntfs     1,4G        DELLSUPPORT                              
├─nvme0n1p6
│       ext4     192G  70,2G                                          /
└─nvme0n1p7
     vfat     578M 132,8M ESP         EFI system partition new     /boot/efi

и вывод sudo fdisk -lu (помимо множества /dev/loopX с X, варьирующимся от 0 до 34, размером обычно от 50 до 500МБ, которых я не касался) — извините за французский:

Disque /dev/nvme0n1 : 476,94 GiB, 512110190592 octets, 1000215216 secteurs
Disk model: BC711 NVMe SK hynix 512GB               
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : gpt
Identifiant de disque : 758D50FC-6A8D-421F-9AAE-A6167B2F4CED

Périphérique       Début        Fin  Secteurs Taille Type
/dev/nvme0n1p1      2048     309247    307200   150M Système EFI
/dev/nvme0n1p2    309248     571391    262144   128M Réservé Microsoft
/dev/nvme0n1p3    571392  591380479 590809088 281,7G Données de base Microsoft
/dev/nvme0n1p4 995217408  997244927   2027520   990M Environnement de récupération Windows
/dev/nvme0n1p5 997246976 1000187903   2940928   1,4G Environnement de récupération Windows
/dev/nvme0n1p6 592564224  995217407 402653184   192G Système de fichiers Linux
/dev/nvme0n1p7 591380480  592564223   1183744   578M Données de base Microsoft

Les entrées de la table de partitions ne sont pas dans l'ordre du disque.

Ещё одно удивительное явление заключается в том, что по каким-то причинам, как отметил автор в комментарии, папка efi, содержащая все данные из раздела /dev/nvme0n1p7, казалось, появилась, дав путь /boot/efi/efi/EFI/Microsoft/Boot/bootmgfw.efi.

Это как-то связано с остальной проблемой (возможно, этот изменённый путь — причина, по которой мой компьютер не может загружаться на ubuntu 2 или Windows Boot Loader и по умолчанию использует позиции ниже по порядку загрузки)? Как я могу это исправить?

Обновление: изменив файлы efibootmgr (чтобы включить в их пути вновь появившуюся efi/), я могу заставить компьютер загружаться на “ubuntu 2”, как показано в efibootmgr (текущая загрузка правильная). Однако флаги boot,esp, как показано в gparted, всё ещё находятся на p1. Тем не менее, я предполагаю, что в инструкциях на которые я ссылаюсь, это тот момент, когда я должен запустить update-grub и продолжить их выполнение?

Есть ли способ избавиться от вторичной папки `/efi/`, которая, по сути, появилась из ниоткуда?

В любом случае, вот вывод lsblk -e 7 -o name,fstype,size,fsused,label,partlabel,mountpoint,uuid,partuuid, как просили в комментарии:

NAME FSTYPE   SIZE FSUSED LABEL       PARTLABEL                    MOUNTPOINT UUID                                 PARTUUID
nvme0n1
│           476,9G                                                                                                 
├─nvme0n1p1
│    vfat     150M        ESP         EFI system partition                    C81C-2A4E                            bcc78a1f-b4cc-4e11-bc5a-3e59305a8d80
├─nvme0n1p2
│             128M                    Microsoft reserved partition                                                 30055dad-41ea-44cc-888c-113ce80d88cd
├─nvme0n1p3
│    ntfs   281,7G        OS          Basic data partition                    98761E2C761E0C1E                     14691571-e933-4851-b4ec-913e849d7f18
├─nvme0n1p4
│    ntfs     990M        WINRETOOLS                                          40D4AE8AD4AE81B0                     056dea87-8861-4c91-a7ef-c843b346e6e5
├─nvme0n1p5
│    ntfs     1,4G        DELLSUPPORT                                         E6C6A958C6A92A2F                     7aeaadcf-d160-4145-bbb4-ecdf4b13f8b8
├─nvme0n1p6
│    ext4     192G  70,2G                                          /          1f3bdc9f-ec2e-4570-ab28-c483d957b09b 5c3b5dbf-ed72-4aca-91ae-674c12363b33
└─nvme0n1p7
     vfat     578M 132,8M ESP         EFI system partition new     /boot/efi  FA8A-9254                            7d2e14c7-1c88-48ab-9f6b-b739859e9717

Ответ или решение

Проблема, с которой вы столкнулись, связана с изменением размера EFI System Partition (ESP) и попыткой загрузить Ubuntu с новой разделенной области. Это достаточно сложная задача, и для ее решения требуется тщательное соблюдение последовательности действий и понимание работы загрузочного процесса системы. Давайте разберемся в вашей ситуации и пройдемся по шагам, которые помогут устранить возникшие трудности.

Четкое понимание текущей ситуации

Вы создали новый раздел /dev/nvme0n1p7 для вашего ESP, скопировали туда данные из оригинального ESP /dev/nvme0n1p1, установили новые записи загрузки через efibootmgr и обновили файл /etc/fstab с указанием нового UUID. Несмотря на это, система по-прежнему загружается с оригинального раздела.

Анализ текущего положения

  1. Команда df /boot/efi указала, что ваш новый раздел действительно смонтирован на /boot/efi, что подтверждает правильное изменение монтируемого раздела.

  2. Команда efibootmgr показывает, что текущая загрузка осуществляется с известной старой версии Ubuntu, что указывает на то, что измененные записи в efibootmgr пока не вступили в силу.

  3. Проблемы с лишней папкой /efi/ возможно связаны с путанием в путях при настройке новых загрузочных записей.

Шаги по исправлению ситуации

  1. Проверка и обновление efibootmgr:

    Убедитесь, что записи в efibootmgr указывают на правильный путь в вашем новом ESP. Поскольку вы упомянули, что изменение пути помогло вам загрузиться с "ubuntu 2", убедитесь, что корректировки были внесены правильно во все записи. Повторите команды efibootmgr, обновив пути:

    sudo efibootmgr -c -d /dev/nvme0n1 -p 7 -l /EFI/efi/ubuntu/shimx64.efi -L "ubuntu 2"
  2. Обновление GRUB:

    После устранения проблемы с записью, выполните обновление загрузчика GRUB. Используйте команду:

    sudo update-grub

    Это позволит загрузчику систем понять, где находятся ядра операционной системы.

  3. Проверка флагов разделов:

    Убедитесь, что новый раздел (/dev/nvme0n1p7) имеет соответствующие флаги, такие как boot и esp, с помощью инструментов, как gparted.

  4. Рассмотрение скрытых проблем:

    Причиной оставшихся проблем могут быть недоразумения или ошибки в записи дисковых UUID в fstab или биос композиторе. Перепроверьте UUID для /dev/nvme0n1p7.

  5. Очистка лишних папок:

    Переместите или удалите лишнюю структуру папок (/efi), чтобы избежать дублирования и путаницы.

Дополнительные рекомендации

Убедитесь, что ваш BIOS/UEFI правильно настроен и распознает ваш новый ESP как загрузочный. Иногда может потребоваться сброс настроек BIOS или обновление прошивки BIOS/UEFI.

Заключение

Процесс переноса ESP и последующего изменения загрузочной конфигурации требует внимательного подхода и точности. Если все вышеописанные шаги выполнены корректно, ваша система должна начать загрузку с нового ESP. Поскольку это сложный процесс, всегда рекомендуется делать резервное копирование важных данных перед внесением значительных изменений в конфигурацию системы.

Оцените материал
Добавить комментарий

Капча загружается...