Перемещение разделов `/ boot` и` / `(root) на томе GPT / UEFI

664
Cbhihe

Я работать под Linux с устройством 500 Гб встроенной памяти GPT, секционированное, так что /boot, /(корень), /varи /homeнахожусь в отдельных ext4объемах. По историческим причинам (раньше это была двойная система монтирования Linux-Linux), в устройстве теперь много места между подключенными томами, которые используются в настоящее время. Это пространство выделено (ранее) и все еще содержит /bootраздел, принадлежащий второй, теперь заброшенной ОС Lx. Меню двойной загрузки по-прежнему показывает выбор между двумя системами, но одна из них в значительной степени отделена от своего /bootраздела. Я считаю, что пространство потрачено впустую и хочу вернуть его.

При использовании disksв Linux текущее разбиение выглядит следующим образом: here(То, что смонтировано, показано черным треугольником.) В дополнение к томам, уже упомянутым выше, слева от disksизображения вы можете видеть раздел FAT EFI (крайний левый, как вы Я ожидаю), пространство подкачки и много выделенного, но никогда не смонтированного пространства.

Все загружается и работает нормально, и у меня есть резервная копия как моих данных, так и полной разметки разделов, последняя получена с помощью # sfdisk -d /dev/nveme0n1 > partition-layout.dump.

Я хотел бы переместить как смонтированный, так /bootи /(root) влево от пространства подкачки и перераспределить никогда не смонтированное пространство для varи /home... Я не планирую касаться ни заголовков GPT устройства, ни EFI FAT объем в этом отношении.

Ранее я использовал GParted на томах MBR с устаревшей загрузкой BIOS, но никогда в средах EFI / GPT. Может ли перемещение /bootнарушить порядок загрузки и сделать мой том не загружаемым? Если так, что я должен быть готов сделать, перестроить загрузчик, переиндексировать разделы, ... еще, ничего из вышеперечисленного?

В частности, если я использую GParted, будет ли он отслеживать новое местоположение и обновлять индекс раздела, чтобы загрузчик не задыхался после перераспределения?

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

Приветствия.

0
Перемещать разделы всегда немного рискованно, так что будьте осторожны, и хорошо иметь резервные копии всего. Теперь, с этим предупреждением: хорошая вещь в UEFI и GPT состоит в том, что никакие данные диска (такие как загрузчики и прочее) не спрятаны за пределами разделов в магических фиксированных секторах диска. Прошивка умеет понимать FAT, все явно в файлах. Вы можете перемещаться по разделам до тех пор, пока таблица разделов синхронизирована с фактическим расположением разделов диска. Johan Myréen 6 лет назад 0
Вы неправильно совмещаете * "неустановленное пространство" * и * "неиспользуемое пространство" *. Ваша карта разделов показывает, что все дисковое пространство было выделено; не существует "неиспользуемого пространства" *. Даже если ОС не может использовать раздел, эта область диска все еще считается выделенной, а не * «неиспользуемым пространством» *. Вам придется удалить неиспользуемые разделы, чтобы создать * «неиспользуемое пространство» *. sawdust 6 лет назад 1
@ JohanMyréen: да. Означает ли это, что перемещение их с помощью GParted будет поддерживать таблицу разделов в актуальном состоянии, без необходимости повторной индексации разделов? Это было направление моего запроса ... Cbhihe 6 лет назад 0
GParted не может * "перемещать" * один раздел на другую сторону другого раздела, как вы хотите. Чтобы переместить четыре раздела (5, 8, 9, 10), сначала необходимо удалить разделы 2,3,4,6,7. Затем вы можете воссоздать раздел подкачки, что может вызвать проблемы, так как новый раздел подкачки может иметь другой раздел и номера UUID. sawdust 6 лет назад 0
@sawdust: Эффективно GParted не известен своей способностью перепрыгивать ... Я собирался инактивировать своп, стереть его, перераспределить пространство на соседние тома ext4, переместить `/ boot 'и` / `так далеко влево, как том EFI FAT разрешит, заново создаст своп после них (с новым UUID), продолжит перезагрузку `/ home` и` / var` без свопа и, наконец, исправит запись `/ etc / fstab` для нового UUID свопа. Я что-то пропустил ? Cbhihe 6 лет назад 0
Ваш комментарий о ** / etc / fstab ** внушает уверенность, что вы действительно знаете, что делаете. Вместо * "инактивации подкачки" * и * "перезагрузки без подкачки" * я бы просто загрузил LiveCD. Я склонен согласиться с @ JohanMyréen, но я использовал только разделы MBR. Просто будьте готовы к длительным операциям на диске. sawdust 6 лет назад 0

1 ответ на вопрос

0
Cbhihe

[TLDR] (короткая версия)
Конкретная конфигурация разделов, показанная в OP, делает невозможным отсутствие необходимости перестраивать / восстанавливать загрузчик после перемещения головного конца /bootразделов.

[Полная история]
Что я сделал:

  • загрузиться на live-Linux с загрузочного USB-накопителя в режиме UEFI. (Я решил использовать Ubuntu 18.04).
    Не забывайте, что Ubuntu и современная дискретная графика NVIDIA вообще не уживаются. Если у вас установлена ​​новейшая видеокарта NVIDIA (последняя версия, скажем, примерно с 2017 года), вы сэкономите время, если фактически загрузите UEFI с работающей ОС без графического интерфейса. Это означает выполнение перераспределения на cli и, возможно, последующее восстановление загрузчика тоже.

  • с GPartEd вернуть раздел 2 и MOVE раздел 3 (swap) слева, поэтому он становится смежным с разделом 1. Простое «перемещение» не меняет UUID раздела. Если вы удалите его и заново создадите его в другом месте (ваш вызов целиком), вам придется позже перейти к vi, /etc/fstabчтобы изменить новый UUID соответствующей записи свопа.

  • переместите /boot(раздел 5) как можно дальше влево. Перемещение головной части (то есть левого предела графического представления OP) этого раздела требует, чтобы вы позже восстановили загрузчик (GRUB2 в моем случае). В противном случае вы не сможете загрузиться. Если в отличие от данного случая /bootи /(root) находились в одном разделе, перемещение головного конца /(root) также потребовало бы восстановления загрузчика GRUB (поскольку это означало бы переиндексирование начала информации / boot / efi, расположенной в корневой раздел).
  • двигаться /(корень) /varи /homeпо прихоти.

Вышеизложенное составляет полный ответ на мой оригинальный вопрос.


Восстановление загрузчика здесь выходит за рамки, но хорошо документировано, теперь даже для UEFI. Посмотрите это и это для подробной помощи. Ваш пробег может варьироваться в зависимости от вашего дистрибутива, но мой совет: используйте как можно больше общих инструкций cli. Они лучше всего документированы, как, chrootнапример, в нашем случае, тогда как обертки (опять же, как в chrootобертках в России) могут не быть. Опять ваш звонок.

HTH любой с сомнениями, похожими на те, которые у меня были.

Похожие вопросы