- Вопрос или проблема
- Предыстория
- Предостережения
- Шаги
- Ссылки
- Ответ или решение
- Увеличение размера раздела загрузки с зашифрованным диском в Ubuntu 20.04
- Введение
- Предпосылки
- Актуализация пространства на диске
- Создание резервной копии данных
- Использование GParted для управления разделами
- Шаги по увеличению размера раздела /boot
- Открытие зашифрованного раздела
- Доступ к логическим томам LVM
- Изменение размеров разделов
- Использование GParted для изменения размеров
- Восстановление логических томов
- Завершение операции
- Заключение
- Ссылки и ресурсы
Вопрос или проблема
Мой диск зашифрован, но раздел загрузки по умолчанию составляет 512 МБ. Как увеличить раздел загрузки?
Также, как увеличить раздел загрузки во время новой установки?
ubuntu 20.04
Предыстория
Я изначально установил Ubuntu 20.04, который, к сожалению, имеет ошибку в том, что он создает раздел /boot, который слишком мал. Каждый раз, когда я устанавливал обновления, я сталкивался с ошибками, потому что в /boot не хватало места.
Предостережения
Я только что сделал это … но не рекомендую. Я довольно технический, но это заняло много времени, и в разные моменты я боялся, что полностью уничтожил свои данные. Я также не смог найти актуальную информацию о том, как это сделать.
Сказав это, хотя я никогда не работал с шифрованием, я думаю, что это было облегчено наличием некоторого предыдущего опыта с LVM и разделением. Это также стало проще благодаря тому, что GParted выполнил то, что, как мне кажется, является самой опасной частью: изменение размера раздела.
Я постараюсь добавить объяснения, насколько это возможно, но если вы не понимаете шаги, снова рекомендую сделать резервную копию ваших данных и выполнить чистую установку Ubuntu (22.04 или позже, чтобы ошибка была исправлена). Это было бы гораздо проще.
Большинство шагов ниже специфичны для системы, на которой я их выполнял, и потребуют обновления для вашей системы, и они могут содержать ошибки, так как я набирал их с другого компьютера и не мог скопировать и вставить.
Шаги
-
(Рекомендуется) Очистить место на диске
Это ускорит часть процесса, так как будет меньше данных для резервного копирования и перемещения.
Мне нравится использовать Анализатор использования диска:
sudo apt install baobab
-
Создайте резервную копию всего
⚠️ Это очень рискованно, и есть большая вероятность, что вы потеряете все ваши данные. Создайте резервную копию того, что хотите сохранить.
-
Откройте GParted (установите, если необходимо) и определите разделы
Например, вот что я вижу:
/dev/nvme0n1p1 fat32 /boot/efi /dev/nvme0n1p2 ext4 /boot /dev/nvme0n1p3 [Зашифровано] lvm2 pv vgubuntu Вы также можете использовать
lsblk
, например:nvme0n1 259:0 0 953.9G 0 disk ├─nvme0n1p1 259:1 0 512M 0 part /boot/efi ├─nvme0n1p2 259:2 0 732M 0 part /boot └─nvme0n1p3 259:3 0 952.7G 0 part └─nvme0n1p3_crypt 252:0 0 952.6G 0 crypt ├─vgubuntu-root │ 252:1 0 920.6G 0 lvm / └─vgubuntu-swap_1 252:2 0 32G 0 lvm [SWAP]
-
Создайте загрузочный USB с установкой Ubuntu и загрузитесь с него
-
(Необязательно) Список разделов с помощью
lsblk
nvme0n1 259:0 0 953.9G 0 disk ├─nvme0n1p1 259:1 0 512M 0 part ├─nvme0n1p2 259:2 0 732M 0 part └─nvme0n1p3 259:3 0 952.7G 0 part
-
Откройте зашифрованный раздел
sudo cryptsetup luksOpen /dev/nvme0n1p3 nvme0n1p3_crypt
ⓘ Это позволяет изменять LVM внутри зашифрованного раздела
-
Снова перечислите разделы с помощью
lsblk
Подтвердите, что вы можете видеть разделы внутри зашифрованного раздела (все под
nvme0n1p3
в этом случае):nvme0n1 259:0 0 953.9G 0 disk ├─nvme0n1p1 259:1 0 512M 0 part ├─nvme0n1p2 259:2 0 732M 0 part └─nvme0n1p3 259:3 0 952.7G 0 part └─nvme0n1p3_crypt 252:0 0 952.6G 0 crypt ├─vgubuntu-root │ 252:1 0 920.6G 0 lvm └─vgubuntu-swap_1 252:2 0 32G 0 lvm
-
Активируйте LVM-тома
sudo vgscan --mknodes sudo vgchange -ay
-
Убедитесь, что группа томов и логические тома видны
sudo pvdisplay sudo lvdisplay
-
Рассчитайте новый размер корневого тома
Раздел /boot должен быть 2.0 ГБ, а в настоящее время составляет 732 МБ (из моего примера), так что я хочу увеличить размер раздела /boot на 1.3 и уменьшить размер корневого раздела на такую же величину, так что окончательный размер корневого раздела составит 919.3 ГБ
-
Сожмите содержимое зашифрованного раздела
ⓘ Мы будем сжимать файловую систему, затем сжимать логический том, затем сжимать физический том, сжимая LUKS, чтобы в последующем шаге можно было в конечном итоге уменьшить физический раздел
-
Проверьте целостность файловой системы, например:
sudo e2fsck -f /dev/mapper/vgubuntu-root
-
Измените размер файловой системы
Например:
sudo resize2fs /dev/mapper/vgubuntu-root 827G
ⓘ Чтобы быть в безопасности, используйте размер, на 90% меньший, чем рассчитанный выше. Это позволяет оставить запас на случай ошибки, и затем мы расширим файловую систему, чтобы заполнить все доступное пространство.
-
Снова проверьте файловую систему, например:
sudo e2fsck -f /dev/mapper/vgubuntu-root
-
Измените размер логического тома
Снова, чтобы быть в безопасности, мы будем использовать размер, меньший, чем нам нужно на данный момент, и изменим его позже, чтобы заполнить весь физический том. На этот раз мы используем размер на 95% меньший:
sudo lvreduce -L 873G /dev/mapper/vgubuntu-root
-
Расширьте файловую систему, чтобы она соответствовала логическому тому, например:
sudo resize2fs /dev/mapper/vgubuntu-root
-
Сожмите физический том
-
Снова перечислите логические тома
sudo lvdisplay
-
Обратите внимание на размер раздела подкачки
В моем случае раздел подкачки составил 32.00 GiB
-
Удалите раздел подкачки
sudo lvremove /dev/vgubuntu/swap_1
ⓘ Это необходимо, потому что мы уменьшили корневой раздел, оставив пустое пространство в группе томов между корневым разделом и разделом подкачки
-
Сожмите физический том
Как выше, мы будем использовать меньший размер для безопасности. Выберите размер между размером логического тома, который мы только что изменили, и конечным желаемым размером, который в этом примере составит 951.34 GiB (919.34 GiB плюс 32.00 GiB для подкачки)
sudo pvresize --setphysicalvolumesize 900G /dev/mapper/nvme0n1p3_crypt
Обратите внимание на вывод, например: “Притворяясь, что размер составляет 1887436800, а не 1997826048 секторов.”
-
-
Закройте LVM
sudo vgchange -an
-
Закройте зашифрованный том
sudo cryptsetup luksClose nvme0n1p3_crypt
-
-
Измените размер карты LUKS
⚠️ Я не совсем уверен, нужно ли это делать (https://unix.stackexchange.com/a/416356)
Снова, мы собираемся действовать осторожно. Мы выберем число между числами последней команды, так что (1887436800+1997826048)/2 = 1942631424
sudo cryptsetup -b 1942631424 resize nvme0n1p3_crypt
-
Измените размер зашифрованного раздела
-
Откройте GParted
-
Определите, насколько нужно уменьшить раздел
- Мой раздел загрузки составляет 732.00 МиБ, и я хочу, чтобы он был 2 ГБ, так что 2048 – 732 = 1316 МиБ
-
Щелкните правой кнопкой мыши на зашифрованный раздел > Открыть шифрование
-
Щелкните правой кнопкой мыши на зашифрованный раздел > Изменить размер/Переместить
-
Установите новый размер > Изменить размер
-
Нажмите на зеленую кнопку Применить все операции
-
Снова щелкните правой кнопкой мыши на разделе > Деактивировать
-
Снова щелкните правой кнопкой мыши на разделе > Закрыть шифрование
-
-
Переместите зашифрованный раздел
-
В GParted щелкните правой кнопкой мыши на разделе снова > Изменить размер/Переместить
-
Настройте раздел так, чтобы все свободное пространство было в начале раздела > Изменить размер/Переместить
-
Нажмите на зеленую кнопку Применить все операции
ⓘ Это займет некоторое время
-
-
Измените размер раздела загрузки
-
В GParted щелкните правой кнопкой мыши на разделе загрузки > Изменить размер/Переместить
-
Расширьте его, чтобы заполнить все доступное свободное пространство > Изменить размер/Переместить
-
Нажмите на зеленую кнопку Применить все операции
-
Выйдите из GParted
-
-
Измените размер всего в зашифрованном разделе, чтобы заполнить доступное пространство
ⓘ Мы будем делать противоположное тому, что делали ранее: увеличим физический том, увеличим логический том, а затем увеличим файловую систему
-
Откройте зашифрованный раздел
sudo cryptsetup luksOpen /dev/nvme0n1p3 nvme0n1p3_crypt
-
(Необязательно) Проверьте состояние зашифрованного раздела
sudo cryptsetup status nvme0n1p3_crypt
Он должен был автоматически изменится на новый размер раздела
-
Измените размер физического тома, чтобы заполнить доступное пространство
sudo pvresize /dev/mapper/nvme0n1p3_crypt
-
Измените размер корневого логического тома
Возьмите размер физического тома (951.3 GiB в нашем примере) и вычтите размер раздела подкачки, который вы создадите (32.00 GiB в нашем примере, то есть 919.3 GiB), и используйте это для изменения размера логического тома, например:
sudo lvresize -L 919.3G /dev/vgubuntu/root
-
Создайте раздел подкачки снова
Мы укажем использовать все доступное свободное пространство в группе томов:
sudo lvcreate -l 100%FREE -n swap_1 vgubuntu
-
Отформатируйте раздел подкачки
sudo mkswap /dev/mapper/vgubuntu-swap_1
-
Снова проверьте файловую систему, например:
sudo e2fsck -f /dev/mapper/vgubuntu-root
-
Расширьте файловую систему, чтобы она соответствовала логическому тому
sudo resize2fs /dev/mapper/vgubuntu-root
-
Снова проверьте файловую систему, например:
sudo e2fsck -f /dev/mapper/vgubuntu-root
-
Закройте LVM
sudo vgchange -an
-
Закройте зашифрованный том
sudo cryptsetup luksClose nvme0n1p3_crypt
-
-
Перезагрузите и молитесь, чтобы ваша система все еще работала, и вам не нужно было восстанавливать данные из резервной копии 😄
Ссылки
Ответ или решение
Увеличение размера раздела загрузки с зашифрованным диском в Ubuntu 20.04
Введение
Увеличение размера раздела загрузки (обычно /boot
) на зашифрованном диске в Ubuntu может оказаться сложной задачей, особенно учитывая, что по умолчанию размер этого раздела составляет всего 512 МБ — что зачастую бывает недостаточно для установки обновлений и хранения необходимых файлов. В данной статье мы рассмотрим, как увеличить размер раздела /boot
, а также как выполнить это действие при новой установке операционной системы.
Предпосылки
Перед тем как начать, важно отметить, что все операции с разделами и зашифрованными дисками потенциально могут привести к потере данных. Поэтому рекомендуется создать резервную копию всех важных файлов перед выполнением действий, описанных ниже.
Если вы не уверены в своих силах, рекомендуется выполнить чистую установку Ubuntu 22.04 или более поздней версии, в которой данная проблема уже исправлена.
Актуализация пространства на диске
Перед началом работы стоит очистить диск от ненужных данных. Это сократит время резервного копирования и перемещения данных.
sudo apt install baobab
Создание резервной копии данных
Предупреждение: Данная процедура имеет высокий риск потери данных. Убедитесь, что вся важная информация была сохранена в надежном месте.
Использование GParted для управления разделами
-
Установка GParted (если он еще не установлен):
sudo apt install gparted
-
Запустите GParted и идентифицируйте ваши разделы. Важно понять структуру вашего диска:
/dev/nvme0n1p1
– EFI раздел (тип FAT32)/dev/nvme0n1p2
– Раздел загрузки (тип ext4)/dev/nvme0n1p3
– Зашифрованный LVM (потенциально содержащий корневую файловую систему и swap)
-
Создание загрузочного USB с установочным образом Ubuntu, чтобы затем перезагрузить систему с него.
Шаги по увеличению размера раздела /boot
Открытие зашифрованного раздела
После загрузки с Live USB выполните команду:
sudo cryptsetup luksOpen /dev/nvme0n1p3 nvme0n1p3_crypt
Доступ к логическим томам LVM
Активируйте ваши логические тома:
sudo vgscan --mknodes
sudo vgchange -ay
Изменение размеров разделов
-
Проверьте целостность файловой системы:
sudo e2fsck -f /dev/mapper/vgubuntu-root
-
Измените размер файловой системы на логическом томе:
sudo resize2fs /dev/mapper/vgubuntu-root 827G
-
Сократите логический том:
sudo lvreduce -L 873G /dev/mapper/vgubuntu-root
-
Теперь вы можете изменить размер
LUKS
и самого зашифрованного раздела. Размер сектора, который вы указываете, должен быть осторожно установлен с учетом заранее рассчитанного значения.
Использование GParted для изменения размеров
- После изменения размера логического тома закройте его и вернитесь в GParted.
- Уменьшите зашифрованный раздел и оставьте необходимый объем для новых данных.
- Затем увеличьте размер раздела
/boot
, чтобы он стал 2.0 ГБ.
Восстановление логических томов
-
Откройте зашифрованный раздел снова:
sudo cryptsetup luksOpen /dev/nvme0n1p3 nvme0n1p3_crypt
-
Увеличьте физический объем:
sudo pvresize /dev/mapper/nvme0n1p3_crypt
-
Увеличьте корневой логический том и создайте новый swap том:
sudo lvresize -L 919.3G /dev/vgubuntu/root sudo lvcreate -l 100%FREE -n swap_1 vgubuntu
-
Отформатируйте новый swap раздел:
sudo mkswap /dev/mapper/vgubuntu-swap_1
-
Наконец, проверьте целостность файловой системы:
sudo e2fsck -f /dev/mapper/vgubuntu/root
-
Расширьте файловую систему на корневом логическом томе:
sudo resize2fs /dev/mapper/vgubuntu/root
Завершение операции
Закройте LVM и зашифрованный раздел:
sudo vgchange -an
sudo cryptsetup luksClose nvme0n1p3_crypt
Заключение
Перезагрузите систему и убедитесь, что все работает корректно. При возникновении сбоев вы всегда можете восстановить данные из резервной копии.
Процесс изменения размеров зашифрованных разделов может показаться сложным, но он выполним при соответствующем подходе и с использованием инструментов управления разделами. Обратите внимание на создание резервных копий и избегайте ненужных рисков.