Я хочу увеличить размер системного раздела EFI до 750 МБ, чтобы я мог установить Arch Linux вместе с Windows 10, поскольку системный раздел EFI Windows дал мне всего лишь 100 МБ, что слишком мало. Arch Linux рекомендует монтировать ESP в /boot
вместо /boot/efi
а 100 МБ слишком мал для /boot
. Я не хочу трогать раздел восстановления.
3 ответа
Сообщество Arch приняло спецификацию загрузчика Freedesktop.org к сердцу. AFAIK, Arch и его производные - единственные дистрибутивы, которые делают это, и даже в Arch это не требуется. Спецификация загрузчика рекомендует использовать общий раздел FAT, такой как ESP, в качестве места для хранения ядер Linux, а также систему для изоляции ядер одного дистрибутива от другого в этом разделе и для управления конфигурацией загрузчика для ядер.
Спецификация загрузчика является попыткой решить некоторые реальные проблемы с сосуществованием дистрибутива Linux на мультизагрузочных компьютерах; однако, поскольку он был принят только одним крупным дистрибутивом, даже после нескольких лет существования, он не дает никаких практических преимуществ. Более того, спецификация загрузчика тесно связана с менеджером загрузки systemd-boot, который довольно непопулярен, за исключением сообщества Arch. Хотя у systemd-boot есть некоторые преимущества, если вы не достаточно знакомы с полем, чтобы понять эти преимущества и знать, что они вам нужны, вы, возможно, не захотите начинать настраивать их странным образом (например, монтировать ESP в /boot
) включить использование systemd-boot. Более того, у systemd-boot есть один огромный недостаток: он может запускать последующие программы загрузки (включая ядра Linux) только с того раздела, с которого он был запущен. Это, в свою очередь, означает, что, если вы используете systemd-boot, вы в значительной степени привержены тому, чтобы хранить systemd-boot, свои ядра Linux и загрузчики для других ОС (например, Windows) в одном разделе - ESP. Это соответствует видению спецификации загрузчика, но создает свои собственные проблемы.
Тем не менее, если вы хотите увеличить ESP, вы можете сделать это с помощью различных инструментов; однако это означает, что вам нужно уменьшить следующий раздел от начальной точки. Это более рискованно и требует больше времени, чем сокращение раздела с его конца, поэтому я настоятельно рекомендую создать резервную копию следующего раздела. Кроме того, на компьютере Windows раздел, следующий за ESP, скорее всего, будет разделом Microsoft Reserved, который в основном является пустым разделом, который Windows использует для чистого пространства. Обычно в нем нет файловой системы, поэтому большинство инструментов разметки не позволяют вам сжимать ее - и Windows нравится, чтобы она была определенного размера (100 МБ или 128 МБ, IIRC). Вместо этого вам может потребоваться уменьшить размер раздела после зарезервированного раздела Microsoft, удалить зарезервированный раздел Microsoft и создать новый. Это все одна большая проблема и значительно увеличивает риски, связанные с установкой новой ОС.
Вместо этого вы можете захотеть создать новый ESP в другом месте на диске. После того, как вы освободите место для Arch Linux, вы можете создать новый ESP и другие разделы для Arch Linux. В зависимости от используемого вами менеджера загрузки, вы можете просто иметь отдельные Arch и Windows ESP; или вы можете переместить файлы загрузчика Windows на новый ESP и удалить или повторно назначить исходный ESP. Обратите внимание, что поскольку systemd-boot не может запускать загрузчики, которые находятся на разделах, отличных от его собственного, если причина для установки ESP как /boot
заключается в том, что вы хотите использовать systemd-boot, вам придется перенести загрузку Windows загрузчик нового ESP, если вы ожидаете запустить его из systemd-boot. Кроме того, в последний раз, когда я проверял (что было с Windows 7, так что это может больше не быть правдой), установщик Windows сильно запутался и стал работать со сбоями, если увидел два ESP на диске, что сделало невозможной установку Windows на таком диске , Таким образом, если вы настроите два ESP, у вас могут возникнуть проблемы в будущем. Такие проблемы могут быть легко преодолены путем временного изменения кода типа раздела не-Windows ESP, но вы должны знать об этом обходном пути.
В целом, хотя я признаю, что сообщество Arch любит монтировать ESP в /boot
и использовать его для хранения ядер Linux, которые (часто) запускаются через systemd-boot, этот подход создает сложности и мало или вообще не дает существенных преимуществ. В целом, вам, вероятно, лучше использовать GRUB 2 или мой собственный rEFInd, оба из которых будут соответствовать вашему маленькому ESP и запускать ядра, хранящиеся в другом месте. На моей странице загрузчиков EFI для Linux более подробно описаны параметры загрузчика и диспетчера загрузки Linux.
Этот вопрос является одним из лучших результатов в Google по вопросу "Как изменить размер системного раздела EFI" (неудивительно, учитывая, что это заголовок вопроса), однако текущие ответы здесь, хотя и содержат полезные советы для ситуации ОП и в целом полезную информацию, не дают на самом деле попытаться ответить на этот вопрос, как указано. Моя предыдущая довольно краткая (теперь удаленная) попытка ответить на этот вопрос была отклонена, поэтому вот более тщательная.
Есть большая вероятность, что вы читаете это, потому что вы попробовали очевидную вещь (используйте gparted) и получили ошибку "GNU Parted не может изменить размер этого раздела до такого размера. Мы работаем над этим!». Возможно, вы также попытались сделать это из Windows (используя Управление дисками), только чтобы обнаружить, что Windows вообще не выполняет никаких операций с ESP.
Что ж, следующая лучшая вещь для фактического изменения размера раздела - это воссоздать его. Вот подробные шаги для этого:
Если вы изменяете размер ESP диска, на котором загружаетесь, убедитесь, что у вас есть загрузочный носитель, который вы можете использовать для восстановления системы в случае сбоя. В общем, хорошая резервная копия ваших данных перед выполнением любых операций по разбиению диска.
Если вы расширяете ESP, освободите место, переместив или изменив размеры любых разделов, следующих непосредственно за ним, используя ваш любимый инструмент разбиения (например, gparted).
Установите ESP, если он еще не установлен:
# mount /dev/sdx1 /mnt # replace sdx1 with ESP
Сделайте резервную копию его содержимого:
# mkdir ~/esp # rsync -av /mnt/ ~/esp/
Размонтировать ESP:
# umount /mnt
Удалить и воссоздать ESP:
# gdisk /dev/sdx # replace sdx with disk containing ESP p (list partitions) (ensure the ESP is the first partition) d (delete partition) 1 (select first partition) n (create partition) Enter (use default partition number, should be 1) Enter (use default first sector, should be 2048) Enter (use default last sector, should be all available space) EF00 (hex code for EFI system partition) w (write changes to disk and exit)
Отформатируйте ESP:
# partprobe /dev/sdx # mkfs.fat -F32 /dev/sdx1
Восстановите содержимое ESP:
# mount /dev/sdx1 /mnt # rsync -av ~/esp/ /mnt
Это должно быть все. Я успешно использовал описанную выше процедуру для изменения размера ESP для установки Windows, чей ESP был слишком мал (50 МБ), чтобы позволить Windows обновиться до обновления Fall Creators (до изменения размера ESP произошел сбой Центра обновления Windows с ошибкой 0x8E5E03FB и Помощник по обновлению с ошибкой 0xc1900200).
Там немного участвует в двойной загрузке ОС.
Первое, что я могу предложить, это не использовать существующий системный раздел EFI. Это там, чтобы загрузить Windows. Не связывайтесь с этим.
Вместо этого откройте управление дисками и сократите раздел Windows (ваш основной) на величину (сколько бы вы не хотели использовать с Arch Linux). Обычно всегда есть установленный предел того, насколько вы можете сжаться, даже если кажется, что на диске достаточно места. Эта "проблема" решается в другом месте, поэтому я не буду ее здесь объяснять. Просто запомни, какая из них какая. Например. большие окна, небольшое пространство пусто и т. д.
Не забудьте отключить быстрый запуск в Windows - это, по сути, переводит компьютер в спящий режим, а не выключает его, чтобы добиться «быстрого запуска». Если вы вместо этого загрузитесь в Linux, вы рискуете потерять данные в системе Windows.
Загрузитесь в среду установки Linux (с USB или еще чего-нибудь), а затем установите свободное место, которое вы создали в Windows, и поместите его в системный раздел Linux. Просто вспоминая, какой раздел какой. Например. не переформатируйте раздел Windows случайно - используйте размеры разделов, которые вы записали выше, чтобы дважды проверить.