я могу придумать два способа решения этой проблемы, которые, вероятно, работать, но ни один из подходов не является идеальным или все так просто.
Способ #1
этот метод довольно простой:
- резервное копирование ESP. Будет достаточно резервной копии на основе файлов.
- отключить ЕСП.
- найдите GUID ESP, введя
sgdisk -i 1 /dev/sda
as root
. (В этом примере предполагается, что ESP является первым разделом на первом диске -- /dev/sda1
. Если оно другой раздел, вы должны изменить -i 1
надлежащим образом. Если он находится на диске, отличном от /dev/sda
, вы должны изменить эту часть.) Эта команда показывает различную информацию, включая одну строку, обозначенную как Partition unique GUID
. Сохраните это значение. (Обратите внимание, что запись и повторное создание значения GUID выполняется в интересах встроенного диспетчера загрузки компьютера. Если вы готовы использовать efibootmgr
чтобы повторно создать записи менеджера загрузки, вы можете отказаться от этого шага и шага #6, ниже.)
- удалить ЭКСТРАСЕНСОРНОЕ ВОСПРИЯТИЕ.
- создайте новый ESP нужного размера. Обратите внимание, что это означает и ESP и новую файловую систему на нем.
- использовать
gdisk
или sgdisk
для изменения GUID нового ESP. Например, sgdisk -u 1:2C17D5ED-850D-4F76-BA31-47A561740082 /dev/sda
(as root
) изменяет GUID /dev/sda1
к 2C17D5ED-850D-4F76-BA31-47A561740082.
- смонтировать новый ESP
- восстановить резервные копии файлов в ESP.
- при необходимости, редактировать
/etc/fstab
записать новый "UUID" для ESP (действительно серийный номер диска для файловой системы FAT). Вы можете использовать blkid
найти новый серийный номер.
обратите внимание, что некоторые инструменты секционирования, такие как gdisk
и sgdisk
, может потребоваться перезагрузка перед ОС распознает изменения на дисках, которые используются. Таким образом, вы должны либо использовать аварийную загрузку диска, без смонтированных разделов на целевом диске; или использовать такой инструмент, как GParted для операций удаления и создания разделов. (Изменение GUID раздела не делает изменение, которое требует перезагрузки.)
эта процедура может привести к катастрофическому сбою, особенно если вы небрежно обращаетесь с файлами резервных копий. Кроме того, если что-то пойдет не так, ваш компьютер будет временно не загружается. Имея копию моего rEFInd boot manager на USB флэш-диск может быть полезным в случае такой чрезвычайной ситуации.
Способ #2
я не пробовал это с diskpart
, поэтому я не знаю, что вызывает это предупреждение; но это может быть атрибутом секции (одна из двух вещей, которые libparted называет "флагами"). Что-то вроде "системного раздела" может привести к тому, что инструменты секционирования откажутся прикасаться к разделу. Вы можете использовать parted
или GParted искать эти флаги; однако, я не уверен, что они покажут все флаги. Если раздел имеет флаги, отличные от "boot" (и "esp", с более новыми версиями libparted), вы можете рассмотреть возможность удаления дополнений. В качестве альтернативы можно использовать gdisk
, который будет показывать все атрибуты:
- тип
gdisk /dev/sda
(или любой диск ИД) как root
.
- тип
p
для просмотра таблицы разделов.
- тип
i
для просмотра сведений о разделе. Вам будет предложено указать номер раздела. Появится несколько строк с подробной информацией о разделе.
- искать
Attribute flags
line. Если флагов нет, это строка покажет значение 0000000000000000
. Если да, то вы можете бросить gdisk
введя q
. Если он показывает атрибуты, и вы хотите удалить их, продолжайте....
- тип
x
для входа в меню экспертов.
- тип
a
изменить атрибуты. Вам будет предложено ввести номер раздела. Ввести его.
- вам будет показан список из шести известных атрибутов и краткое описание того, какие из них установлены. Введите номер поля, которое необходимо изменить.
- предыдущий шаг будет повторяться автоматически, пока вы не нажмете клавишу Enter без значения в качестве сигнала для остановки редактирования.
- тип
w
для выхода и сохранения изменений. (Если вы думаете, что напортачили, введите q
для выхода без сохранения изменений;gdisk
сохраняет изменения в памяти до тех пор, пока вы не скажете записать их на диск с помощью w
, поэтому вы можете легко прервать большинство действий.)
- для безопасности, перезагрузка.
- резервное копирование ESP.
- использовать GParted для размер ЕСП.
этот подход вряд ли будет работать, чем первый, Как потому, что проблема может быть не атрибутом раздела, так и потому, что, по моему опыту, GParted часто повреждает файловые системы FAT при их изменении. Этот последний момент не следует недооценивать; если GParted все испортит, вам придется восстановить все из резервной копии, и эта процедура в конечном итоге будет иметь худшие аспекты обоих методов. OTOH, если GParted успешно в размеры ЭСП, этот метод может быть немного проще и менее рискованным, чем предыдущий.
Дополнительные Комментарии
конечно, если вы еще не установили Windows, есть гораздо более простой способ сделать то, что вы хотите: создать ESP вручную до установка Windows. Затем вы можете сделать ESP таким большим, как вам нравится.
другой подход - использовать нечто отличное от systemd-boot. Этот менеджер загрузки очень ограничен своей неспособностью запускайте ядра или загрузчики с любого раздела, кроме раздела, на котором они хранятся. (По крайней мере, это было ограничено таким образом в последний раз, когда я смотрел на него; и характер вашего вопроса подразумевает, что вы считаете, что он все еще настолько ограничен. Я еще не ознакомился с ним недавно.) Ни GRUB, ни rEFInd не страдают от этого ограничения, и поэтому их будет проще настроить-или, по крайней мере, они не потребуют манипуляций с разделами, которые потребует systemd-boot.