2

Я намерен установить Windows и Linux на мою систему, которая загружается в UEFI-режиме.

Для Linux я намерен сделать следующие вещи:

  • установите ядро LTS и любую текущую версию, которую принесет mainline

  • использовать systemd-boot

Таким образом, размер раздела EFI по умолчанию (100 МБ), который создается во время установки Windows, становится довольно тесным (примерно 94 МБ используются). Поэтому я хотел бы увеличить указанный раздел. Поскольку стандартная рекомендация для разметки дисков ставит этот раздел MSR сразу после раздела EFI, я удалил раздел MSR. Затем Win 10 не запустилась, и программа восстановления загрузки с USB-накопителя Win 10 смогла устранить проблемы с загрузкой.

Но основная проблема заключается в том, что я не могу увеличить раздел EFI ни с помощью diskpart ни с помощью GParted (на USB-накопителе Xubuntu 16.04.1). Когда я запускаю extend size=100 в diskpart, он говорит:

Вы не можете сокращать разделы oem esp или recovery. Выбранный объем [и т.д.] ...

GParted выдает ошибку

gnu parted не может изменить размер этого раздела. мы работаем над этим

Кто-нибудь знает о необходимых шагах или, возможно, "простой" их последовательности для увеличения раздела EFI?

1 ответ1

1

Я могу придумать два пути решения проблемы, которые могут сработать; но ни один подход не идеален или все так просто.

Способ № 1

Этот метод довольно прост:

  1. Резервное копирование ESP. Резервной копии на основе файлов будет достаточно.
  2. Размонтировать ESP.
  3. Найдите GUID ESP, набрав sgdisk -i 1 /dev/sda от имени пользователя root . (В этом примере предполагается, что ESP является первым разделом на первом диске - /dev/sda1 . Если это другой раздел, вы должны соответствующим образом изменить -i 1 . Если он находится на диске, отличном от /dev/sda , вы также должны изменить эту часть.) Эта команда отображает различную информацию, включая одну строку, идентифицированную как Partition unique GUID . Сохраните это значение. (Обратите внимание, что запись и повторное создание значения GUID выполняется для встроенного в компьютер менеджера загрузки. Если вы хотите использовать efibootmgr для воссоздания записей вашего менеджера загрузки, вы можете отказаться от этого шага и шага № 6 ниже.)
  4. Удалить ESP.
  5. Создайте новый ESP нужного размера. Обратите внимание, что это означает как ESP, так и новую файловую систему в нем.
  6. Используйте gdisk или sgdisk для изменения GUID нового ESP. Например, sgdisk -u 1:2C17D5ED-850D-4F76-BA31-47A561740082 /dev/sda (от имени root) изменяет GUID /dev/sda1 на 2C17D5ED-850D-4F76-BA31-47A561740082.
  7. Смонтировать новый ESP
  8. Восстановите резервные копии файлов в ESP.
  9. При необходимости отредактируйте файл /etc/fstab чтобы записать новый "UUID" для ESP (на самом деле серийный номер диска, для файловых систем FAT). Вы можете использовать blkid чтобы найти новый серийный номер.

Обратите внимание, что некоторые инструменты разбиения, такие как gdisk и sgdisk , могут потребовать перезагрузки, прежде чем ОС распознает изменения в используемых дисках. Таким образом, вы должны либо использовать аварийную загрузку с диска, без смонтированных разделов на целевом диске; или используйте инструмент, подобный GParted, для операций удаления и создания раздела. (Изменение GUID раздела не вносит изменений, требующих перезагрузки.)

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

Способ № 2

Я не пробовал это с diskpart , поэтому я не знаю, что вызывает это предупреждение; но это может быть атрибут раздела (одна из двух вещей, которые libparted называет "флажками"). Нечто подобное "системному разделу" может привести к тому, что инструменты разделения не смогут касаться раздела. Вы можете использовать parted или GParted для поиска этих флагов; однако я не уверен, что они покажут все флаги. Если у раздела есть флаги, отличные от "boot" (и "esp", с более новыми версиями libparted), вы можете удалить лишние. В качестве альтернативы вы можете использовать gdisk , который покажет все атрибуты:

  1. Введите gdisk /dev/sda (или любой другой идентификатор диска) от имени пользователя root .
  2. Введите p чтобы просмотреть таблицу разделов.
  3. Введите i чтобы просмотреть подробную информацию о разделе. Вам будет предложено указать номер раздела. Появится несколько строк с подробной информацией о разделе.
  4. Посмотрите на строку Attribute flags . Если флажки отсутствуют, в этой строке будет показано значение 0000000000000000 . Если это так, вы можете выйти из gdisk , набрав q . Если он показывает атрибуты и вы хотите удалить их, продолжайте ....
  5. Введите x чтобы войти в меню экспертов.
  6. Введите a чтобы изменить атрибуты. Вам будет предложено ввести номер раздела. Введите это.
  7. Вам будет показан список из шести известных атрибутов и краткое изложение, какие из них установлены. Введите номер поля, которое вы хотите изменить.
  8. Предыдущий шаг будет повторяться автоматически до тех пор, пока вы не нажмете клавишу Enter без значения в качестве сигнала для остановки редактирования.
  9. Введите w чтобы выйти и сохранить изменения. (Если вы считаете, что запутались, введите q чтобы выйти без сохранения изменений; gdisk хранит изменения в памяти до тех пор, пока вы не скажете записать их на диск с помощью w , чтобы вы могли легко прервать большинство действий.)
  10. Для безопасности перезагрузите компьютер.
  11. Сделайте резервную копию вашего ESP.
  12. Используйте GParted, чтобы изменить размер ESP.

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

Дальнейшие комментарии

Конечно, если вы еще не установили Windows, есть гораздо более простой способ сделать то, что вы хотите: создать ESP вручную перед установкой Windows. Затем вы можете сделать ESP настолько большим, насколько захотите.

Другой подход заключается в использовании чего-то другого, кроме systemd-boot. Этот менеджер загрузки очень ограничен своей неспособностью запускать ядра или загрузчики из чего-либо, кроме раздела, на котором он хранится. (По крайней мере, это было ограничено таким образом, когда я в последний раз смотрел на него; и характер вашего вопроса подразумевает, что вы считаете, что он все еще настолько ограничен. Я не рассматривал это недавно, хотя.) Ни GRUB, ни rEFInd не страдают от этого ограничения, и поэтому их было бы проще установить - или, по крайней мере, ни один из них не потребовал бы такого рода манипуляций с разделами, которые потребует systemd-boot.

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