- Вопрос или проблема
- Как клонировать ваш жесткий диск (SSD или HDD) и расширить ваш зашифрованный раздел LUKS, чтобы заполнить новое полное дисковое пространство:
- Краткое резюме:
- Подробности и полные шаги:
- 1. склонировать ваш диск
- 2. Используйте gparted, чтобы увеличить ваш раздел
- 3. Замените диски, чтобы избежать дублирования UUID дисков
- 4. Увеличьте расшифрованную файловую систему так, чтобы она соответствовала вновь измененному размеру раздела
- Вариант 1. [Новый, добавленный с 16 марта 2023 года–что я теперь рекомендую] Используйте GUI, чтобы увеличить объем LVM внутри раздела LUKS
- Вариант 2. [Оригинальный ответ] Используйте командную строку, чтобы увеличить объем LVM внутри раздела LUKS
- 5. Смонтируйте расшифрованный (разблокированный) раздел и выполните df -h, чтобы доказать, что его файловая система расширена
- 6. Перезагрузите и используйте ваш новый диск как обычно
- Дополнительные заметки
- Ответ или решение
- Основные шаги для расширения LUKS-зашифрованного раздела:
- Завершение:
Вопрос или проблема
Недавно я обновил свой диск с 128 ГБ SSD на 512 ГБ SSD. Раздел / зашифрован с помощью LUKS. Я ищу помощь в расширении раздела, чтобы использовать все свободное пространство на новом диске. Я уже скопировал старый диск на новый:
[root@localhost ~]# fdisk -l /dev/sda
Диск /dev/sda: 477 GiB, 512110190592 байт, 1000215216 секторов
Единицы: сектора по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер ввода-вывода (минимальный/оптимальный): 4096 байт / 4096 байт
Тип метки диска: dos
Идентификатор диска: 0x00009f33
Устройство Загрузка Начало Конец Секторы Размер Id Тип
/dev/sda1 * 2048 1026047 1024000 500M 83 Linux
/dev/sda2 1026048 250064895 249038848 118.8G 83 Linux
После sda2 остается около 380 ГБ неиспользуемого пространства.
Более актуальная информация:
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
fedora_chocbar 1 3 0 wz--n- 118.75g 4.00m
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
home fedora_chocbar -wi-a----- 85.55g
root fedora_chocbar -wi-a----- 29.30g
swap fedora_chocbar -wi-a----- 3.89g
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/mapper/encrypted fedora_chocbar lvm2 a-- 118.75g 4.00m
Похоже, есть много информации о том, как это сделать, но очень мало объяснений. Буду признателен за любую помощь в этом вопросе.
Хорошо! Наконец-то окончательный ответ. Мои шаги для расширения зашифрованного объема LUKS…
cryptsetup luksOpen /dev/sda2 crypt-volume
, чтобы открыть зашифрованный объем.parted /dev/sda
, чтобы расширить раздел.resizepart НОМЕР КОНЕЦ
.vgchange -a n fedora_chocbar
. Прекратите использовать VG, чтобы выполнить следующий шаг.cryptsetup luksClose crypt-volume
. Закройте зашифрованный объем для следующих шагов.cryptsetup luksOpen /dev/sda2 crypt-volume
. Откройте его снова.cryptsetup resize crypt-volume
. Автоматически изменит размер объема LUKS до доступного пространства.vgchange -a y fedora_chocbar
. Активируйте VG.pvresize /dev/mapper/crypt-volume
. Измените размер PV.lvresize -l+100%FREE /dev/fedora_chocbar/home
. Измените размер LV для /home до 100% свободного пространства.e2fsck -f /dev/mapper/fedora_chocbar-home
. Выполните магию fsck на измененной файловой системе.resize2fs /dev/mapper/fedora_chocbar-home
. Измените размер файловой системы в /home (автоматически использует 100% свободного пространства)
Надеюсь, что это будет полезно кому-то другому. Теперь у меня есть 300+ ГБ для тестовых виртуальных машин на моем ноутбуке!
Для тех, кто ищет ответ на вопрос, как просто изменить размер раздела LUKS до размера измененного контейнера, команды следующие:
-
с открытым зашифрованным объемом LUKS, который отображается как
opened-volume
, выполнитеsudo cryptsetup resize /dev/mapper/opened-volume
чтобы изменить размер зашифрованного объема LUKS онлайн…
-
затем измените размер содержимого.
-
Например, если это файловая система Ext4, вы можете изменить ее размер даже если она смонтирована с помощью
sudo resize2fs /dev/mapper/opened-volume
-
Или, если у вас был LVM физический объем внутри зашифрованного объема LUKS, просто используйте
pvresize
:sudo pvresize /dev/mapper/opened-volume
-
Я делал это с смонтированной файловой системой/активированным PV без перерыва; было возможно изменить размер контейнера без предварительного размонтирования, потому что зашифрованный объем находился на логическом объеме LVM (используя lvresize
)/используя parted
для изменения размера GPT-раздела, чтобы включить свободное пространство, которое шло сразу за ним!
Я нашел гораздо более простое решение. Запустите Xubuntu в режиме live, установите и запустите partitionmanager. Он прекрасно справляется с зашифрованными разделами.
Подробные инструкции можно найти здесь: http://e1z.ca/devlog/encrypted_partition_resize.html
У меня была такая же проблема с Ubuntu 20.04 LTS, и это решило ее для меня: https://help.ubuntu.com/community/ResizeEncryptedPartitions
Основные шаги:
-
Загрузитесь с USB-накопителя в режим live
-
Расшифруйте вашу файловую систему.
sudo cryptsetup luksOpen /dev/sda5 crypt1
-
Заставьте живой CD распознать (активировать) ваш LVM.
sudo vgscan --mknodes sudo vgchange -ay
-
Измените размер Crypt.
sudo cryptsetup resize crypt1
-
Измените размер (LVM) физического объема.
sudo pvresize /dev/mapper/crypt1
-
Измените размер вашего корневого (LVM) логического объема.
-
Разблокируйте (LVM) физический объем.
sudo pvchange -x y /dev/mapper/crypt1
-
Измените размер (LVM) физического объема.
sudo lvresize -l +4G /dev/ubuntu-vg/
Примечание: Измените
+4G
на количество пространства, которое вы добавляете, или+100%FREE
, чтобы использовать все доступное пространство.- Снова заблокируйте физический объем.
sudo pvchange -x n /dev/mapper/crypt1
-
-
Измените размер файловой системы.
sudo e2fsck -f /dev/mapper/ubuntu--vg-root sudo resize2fs -p /dev/mapper/ubuntu--vg-root
-
Перезагрузите
Так как это, похоже, не конкретно вопрос LVM, хочу упомянуть, что мне удалось успешно перенести и расширить один из моих разделов LUKS на 100 ГиБ вперед (!) с GParted на Fedora 28. Однако это было невозможно сделать в Ubuntu 18.04, и каждое другое решение выглядело как морока с dd или резервным копированием и восстановлением (я все равно сделал резервное копирование). Контейнер LUKS автоматически расширяется – если мне не изменяет память, GParted сообщает об этом – единственное, что оставалось, это расширить файловую систему, так что мне пришлось выполнить fsck.ext4 -f
и resize2fs
в моем случае.
Большое спасибо разработчикам GParted.
Измените размер с помощью командной строки с parted без LVM (на таблице разделов ms-dos для дополнительного удовольствия).
Я расширил свой VPS с 50 ГБ до 150 ГБ.
Crypttab выглядит следующим образом:
# cat /etc/crypttab
vda5_crypt UUID=c5e67d21-6af4-4d55-a4bc-2978e50c00c3 none luks
vda6_crypt /dev/vda6 /dev/urandom cipher=aes-xts-plain64,size=256,swap
Размеры:
# df -h
Файловая система Размер Использовано Доступно Использование% Смонтировано на
/dev/mapper/vda5_crypt 47G 12G 35G 26% /
/dev/vda1 641M 63M 532M 11% /boot
Разметка разделов выглядит следующим образом:
# parted /dev/vda print
Модель: Virtio Block Device (virtblk)
Диск /dev/vda: 161GB
Размер сектора (логический/физический): 512B/512B
Таблица разделов: msdos
Флаги диска:
Номер Начало Конец Размер Тип Файловая система Флаги
1 1049kB 700MB 699MB primary ext4 boot
2 701MB 53.7GB 53.0GB extended
5 701MB 51.7GB 51.0GB logical
6 51.7GB 53.7GB 1985MB logical
Как видите, мой раздел подкачки (раздел 6) мешает; мне нужно удалить его, чтобы расширить раздел. Сначала отключите своп:
swapoff -a && free -lm
Строка ‘Swap:’ должна содержать все нули.
Теперь головоломка состоит в том, чтобы изменить размеры разделов и восстановить их до перезагрузки, и (parted) будет жаловаться, что не может проинформировать ядро, я (я) игнорировал это несколько раз).
Сначала удалите раздел подкачки:
parted /dev/vda
(parted) rm 6
Ошибка: Раздел(ы) 6 на /dev/vda были записаны, но мы не смогли проинформировать ядро об изменении, вероятно, потому что оно/они используются. В результате старые разделы останутся в использовании. Вам следует перезагрузить сейчас перед внесением дальнейших изменений.
Игнорировать/Отменить? i
Расширьте логический раздел (2), чтобы удерживать расширенные разделы, до конца диска (-1):
(parted) resizepart 2 -1
Измените размер логического раздела 5, оставив место для раздела подкачки (parted снова будет жаловаться, просто продолжайте и (i)игнорируйте:
(parted) resizepart 5 -4G
Воссоздайте раздел подкачки – как вы можете видеть из crypttab, он каждой загрузки рандомизируется, поэтому не будем беспокоиться о UUID – это не хорошо для сна – но для серверов и без сна это предпочтительный способ. Создайте его с конца предыдущего раздела (157G) до конца диска (-1):
(parted) mkpart
Тип раздела? primary/logical? l
Тип файловой системы? [ext2]? linux-swap
Начало? 157GB
Конец? -1
Проверьте результаты:
(parted) print
Модель: Virtio Block Device (virtblk)
Диск /dev/vda: 161GB
Размер сектора (логический/физический): 512B/512B
Таблица разделов: msdos
Флаги диска:
Номер Начало Конец Размер Тип Файловая система Флаги
1 1049kB 700MB 699MB primary ext4 boot
2 701MB 161GB 160GB extended
5 701MB 157GB 156GB logical
6 157GB 161GB 3998MB logical linux-swap(v1) lba
(parted) quit
Теперь перезагрузите и вы сможете нормально загрузить систему, разблокировав раздел.
После перезагрузки проверьте ваше пространство подкачки:
# swapon
ИМЯ ТИП РАЗМЕР ИСПОЛЬЗОВАНО ПРИОРИТЕТ
/dev/dm-1 раздел 3.7G 0B -1
Время расширить! Используйте ‘cryptsetup resize /dev/mapper/opened-volume’ и ‘resize2fs /dev/mapper/opened-volume’
cryptsetup resize /dev/mapper/vda5_crypt
resize2fs /dev/mapper/vda5_crypt
В результате, мой зашифрованный объем изменился на 132 ГБ:
# df -h
Файловая система Размер Использовано Доступно Использование% Смонтировано на
/dev/mapper/vda5_crypt 144G 12G 132G 9% /
/dev/vda1 641M 63M 532M 11% /boot
Предыстория:
Сначала я установил Linux Mint (как Ubuntu) с полным шифрованием, и он стер мою установку Windows для выполнения этих условий. Это привело к тому, что я получил раздел LUKS большого размера с LVM2 VG внутри, который занимал почти весь диск. Чтобы переустановить Windows на своем ноутбуке, мне понадобилось около 160 ГБ, и это означало, что нужно уменьшить раздел LUKS. Вот как я уменьшил LUKS, чтобы освободить нераспределенное дисковое пространство для Windows.
Уменьшение LUKS с LVM
- Сначала вам нужно загрузиться с живого диска. (У меня это была флешка.)
- Теперь установите Partition Manager. (Для меня это было
sudo apt-get install partitionmanager
. - Запустите Partition Manager с помощью
sudo partitionmanager
. - Щелкните правой кнопкой мыши на зашифрованном разделе LUKS и нажмите “расшифровать”. (Это лишь расшифровывает его в памяти и НИКАК не удаляет шифрование LUKS. Мы хотим сохранить LUKS в целом.)
- Щелкните на вновь расшифрованном разделе в меню слева. Теперь вы увидите разделы, вложенные в контейнер LVM. Щелкните правой кнопкой мыши на разделе внутри и измените его размер на желаемый размер.
- Теперь нажмите “Применить” в верхнем правом углу окна. Это гарантирует, что содержимое раздела LUKS имеет правильный размер.
- Теперь нам нужно изменить размер самого раздела LUKS. Для этого нажмите на устройство, указанное в левом меню, которое содержит раздел LUKS.
- Щелкните правой кнопкой мыши на разделе LUKS, который вам нужно изменить, затем снова нажмите “Изменить размер/Переместить” и измените его размер, перетаскивая правую сторону панели раздела выше внутрь, пока оно не будет двигаться дальше. Partition Manager знает, насколько далеко оно может сжаться, так что вам не нужно манипулировать числами, чтобы заставить это работать.
- Теперь снова нажмите “Применить” в верхнем левом углу, и вы все готовы!
Кредит за первоначальную идею: Как изменить размер зашифрованного раздела Linux
Чтобы уменьшить зашифрованный раздел LUKS, смотрите мой другой ответ здесь вместо этого: Разблокируйте зашифрованный внешний раздел LUKS, уменьшите и измените тома LVM внутри него, а затем уменьшите внешний раздел LUKS с помощью комбинации 3 GUI: Gnome “Disks”, “blivet-gui” и “GParted”.
Как клонировать ваш жесткий диск (SSD или HDD) и расширить ваш зашифрованный раздел LUKS, чтобы заполнить новое полное дисковое пространство:
Все, что мне не хватало, это 2 команды:
sudo e2fsck -f /dev/mapper/system-root
sudo resize2fs -p /dev/mapper/system-root
Я нашел эту проблему довольно сложной, но вот шаги, которые я предпринял сегодня вечером (25 октября 2021 года), чтобы ее решить.
Шаги ниже были определены благодаря информации здесь: https://help.ubuntu.com/community/ResizeEncryptedPartitions#Detailed_resizing_.2BAH4_Enlarging_an_encrypted_partition, а также благодаря большинству других ответов здесь, а также многим пробам и ошибкам, и простому пониманию.
Тестировалось с использованием образа live USB Ubuntu 20.04.3 LTS, созданного с помощью mkusb
, как описано здесь: https://www.howtogeek.com/howto/14912/create-a-persistent-bootable-ubuntu-usb-flash-drive/.
Оборудование, которое я использовал:
- PNY CS2130 2TB M.2 PCIe NVMe Gen3 x4 Внутренний твердотельный накопитель (SSD), Чтение до 3,500 – M280CS2130-2TB-RB, $200
- Sabrent USB 3.2 Type-C Enclosure без инструмента для M.2 PCIe NVMe и SATA SSD (EC-SNVE), $27
Краткое резюме:
Во время работы с Linux с внешнего живого USB выполните следующее:
- Внимательно склонируйте ваш диск с помощью
ddrescue
(см. ниже для полных подробностей). - Используйте gparted, чтобы разблокировать ваш зашифрованный раздел LUKS и увеличить (изменить размер) его. Оставьте ~10% пространства в конце SSD неразмеченным для избыточного резервирования.
- Сейчас, когда разблокированная/расшифрованная файловая система НЕ смонтирована, выполните
e2fsck
, чтобы проверить и исправить диск. В следующей командеsystem-root
– это то, что я вижу как наиболее логичный вариант, когда я ввожуsudo e2fsck -f /dev/mapper/
и затем нажимаю Tab Tab, чтобы оно перечислило все действительные варианты автозаполнения:sudo e2fsck -f /dev/mapper/system-root
- Теперь запустите команду
resize2fs
, чтобы расширить расшифрованную файловую систему, чтобы заполнить полный размер вашего вновь расширенного зашифрованного раздела LUKS:sudo resize2fs -p /dev/mapper/system-root
- Смонтируйте вашу разблокированную и вновь измененную файловую систему LUKS, чтобы убедиться, что она действительно увеличилась
cd ~ mkdir mnt sudo mount /dev/mapper/system-root mnt df -h # смотрите новый размер файловой системы `/dev/mapper/system-root` # при желании размонтируйте sudo umount ~/mnt
- Перезагрузите и используйте ваш новый диск как обычно.
df -h
теперь покажет ваш увеличенный размер! Все будет работать так же, как и раньше, до клонирования диска!
Подробности и полные шаги:
Как клонировать ваш жесткий диск (SSD или HDD) и расширить ваш зашифрованный раздел LUKS, чтобы заполнить новое полное дисковое пространство:
1. склонировать ваш диск
Я предполагаю, что вы только что склонировали свой диск на более крупный диск, используя dd
или ddrescue
, как я объясняю в своих шагах на статье на своем личном сайте здесь: https://www.electricrcaircraftguy.com/2018/01/how-to-clone-your-hard-drive.html.
Короче говоря, во время загрузки с USB-накопителя Ubuntu (создайте один с помощью mkusb
), выполните:
# Установить GNU ddrescue (gddrescue)
sudo add-apt-repository universe
sudo apt update
sudo apt install gddrescue
# Выполните клон.
# ВНИМАНИЕ ВНИМАНИЕ ВНИМАНИЕ: не перепутайте эти диски, или вы
# СТЕРЕте ВСЕ ДАННЫЕ на вашем оригинальном диске!!
# Клонирование 500 ГБ займет:
# 1. ~3~6 часов, используя внешний вращающийся USB 2.0 HDD
# 2. ~2,5~3 часа, используя внешний вращающийся USB 3.0 HDD
# 3. ~20 минут с использованием совершенно нового m.2 SSD в USB C внешнем корпусе
time sudo ddrescue -f -n /dev/FROM_DRIVE /dev/TO_DRIVE dd_rescue.log
# Попробуйте скопировать поврежденные сектора еще 3 раза; обычно это занимает несколько секунд
time sudo ddrescue -d -f -r3 /dev/FROM_DRIVE /dev/TO_DRIVE dd_rescue.log
Пример вывода первой команды клонирования выше:
ubuntu@ubuntu:~$ time sudo ddrescue -f -n /dev/sda /dev/sdb dd_rescue.log GNU ddrescue 1.23 Нажмите Ctrl-C, чтобы прервать ipos: 512110 MB, не обрезано: 0 B, текущая скорость: 558 MB/s opos: 512110 MB, не очищенно: 0 B, средняя скорость: 410 MB/s непробуемое: 0 B, плохая секция: 0 B, скорость ошибок: 0 B/s спасено: 512110 MB, плохих областей: 0, время выполнения: 20m 46s процент спасенных: 100.00%, ошибки чтения: 0, оставшееся время: н/д время с последнего успешного чтения: н/д Закончено real 21m2.331s user 0m6.264s sys 8m24.021s
2. Используйте gparted, чтобы увеличить ваш раздел
В то время как вы все еще загружаетесь с установочного носителя Ubuntu (вероятно, живого USB), откройте gparted, который является графическим интерфейсом GNU Partition Editor. Выберите ваш внешний /dev/TO_DRIVE
в выпадающем меню в правом верхнем углу. Например, мой это /dev/sdb
. Вы увидите нечто подобное на целевом диске после выполнения клонирования:
Обратите внимание, что ddrescue
автоматически клонировал и разделы, так как он выполняет прямую байтовую копию, что является копией более низкого уровня, чем файловая система даже.
Как видно выше, /dev/sdb3
показывает, что он [Зашифрован]
. Это то, как выглядит зашифрованный раздел LUKS в gparted.
Щелкните правой кнопкой мыши на зашифрованном разделе и выберите Открыть шифрование:
Введите свой пароль LUKS для разблокировки:
Имя этого раздела теперь изменится с [Зашифрован]
на [Зашифрован] lvm2 pv
, что указывает на то, что он разблокирован. Точка монтирования теперь будет показана как system
, как показано здесь:
Вы можете щелкнуть правой кнопкой мыши на разделе и перейти в “Информация” для получения дополнительной информации.
Далее Щелкните правой кнопкой мыши на разделе и выберите Изменить размер/Переместить.
Как показано ниже, перетащите правую сторону графического прямоугольника раздела вправо, чтобы увеличить раздел. Если это SSD, оставьте около 10% от общего пространства диска НЕИСПОЛЬЗУЕМЫМ на дальнем правом конце для динамического резервирования. См. здесь, что это значит:
- https://en.wikipedia.org/wiki/Write_amplification#Over-provisioning
- https://www.seagate.com/tech-insights/ssd-over-provisioning-benefits-master-ti/
По сути, это улучшает скорость чтения и записи SSD и уменьшает износ, поскольку SSD автоматически будет использовать это неразмеченное пространство в качестве некоторого вида пространства подкачки на уровне прошивки SSD.
Нажмите “Изменить размер/Переместить”, когда закончите, затем нажмите зеленую галочку в верхней части окна gparted, чтобы применить эти изменения (наведение курсора на зеленую галочку покажет “Применить все операции”).
Если вы посмотрите на вывод gparted, вы увидите, что он выполнил следующие шаги, чтобы увеличить раздел (этот скриншот из деталей HTML-вывода, если вы их сохраняете):
Обратите внимание, что он выполнил cryptsetup -v resize 'sdb3_crypt'
и lvm pvresize -v '/dev/mapper/sdb3_crypt'
за вас.
ВАЖНО: После завершения изменения размера раздела, если в любой момент с этого момента появится это предупреждение, нажмите кнопку “Исправить”:
Предупреждение Libparted
Не все пространство, доступное для /dev/sdb, похоже, используется, вы можете исправить GPT, чтобы использовать все пространство (дополнительные 2906813952 блока) или продолжить с текущими настройками?
Исправить
Игнорировать
Теперь, когда вы изменили размер раздела, вы увидите, что он увеличился:
Если вы в это время смонтируете этот разблокированный раздел LUKS (у меня есть инструкции по монтированию далее, если вам интересно), и выполните df -h
, чтобы увидеть использование диска, то оно покажет, что смонтированный и расшифрованный диск еще не увеличился. Мы исправим это в следующий раз.
3. Замените диски, чтобы избежать дублирования UUID дисков
Поскольку вы только что сделали байтовую копию старого диска на новый диск, ваш новый диск теперь имеет идентичный номер UUID старого диска. Это приведет к проблемам с программными инструментами, которые пытаются изменить диски (включая blivet-gui
, который теперь выдаст следующую ошибку, если вы попробуете его открыть). Итак, чтобы решить эту проблему, уберите старый диск и вставьте вновь клонированный новый диск на его место.
Пример ошибки, которую вы увидите, если попробуете открыть blivet-gui
, например, в это время, из-за дублирования UUID дисков:
Ошибка
Произошла неизвестная ошибка. Blivet-gui будет завершен.
Не удалось инициализировать blivet:
Обнаружен дублирующий UUID ‘abcdef01-abcd-0123-abcd-0123456789ab’ для устройств: ‘sda1’ и ‘sdb1’.
Таким образом, если вы хотите, чтобы ваш клонированный диск стал новым внутренним диском, внесите это аппаратное изменение сейчас. Выключите компьютер (выключите с живого USB), разберите компьютер, извлеките старый диск и вставьте вновь клонированный диск на его место в качестве основного диска внутри компьютера.
Если вы выберете не делать это в это время, вам следует изменить UUID нового диска, чтобы он не совпадал со старым диском (поскольку вы только что сделали точную копию). Я не помню эти детали, так что позволю вам погуглить, если вам действительно нужно использовать оба диска одновременно в одном компьютере. Однако, если вы, как и я, убираете старый диск совсем, сделайте это, поставьте новый на его место, затем продолжайте к следующему шагу.
4. Увеличьте расшифрованную файловую систему так, чтобы она соответствовала вновь измененному размеру раздела
Теперь, когда ваш вновь клонированный диск находится в вашем компьютере в качестве основного диска, и оригинальный диск вовсе не подключен, загрузитесь обратно с живого USB.
Теперь у вас есть 2 варианта:
Вариант 1. [Новый, добавленный с 16 марта 2023 года–что я теперь рекомендую] Используйте GUI, чтобы увеличить объем LVM внутри раздела LUKS
В живом USB Ubuntu установите blivet-gui
, следуя моим инструкциям здесь. Кратко:
sudo apt update sudo add-apt-repository universe sudo apt --fix-broken install sudo apt update # по желанию, если вы хотите попробовать другой ответ здесь, который также рекомендует этот инструмент sudo apt install partitionmanager sudo apt install curl # На живом USB Ubuntu 22.04 echo 'deb http://download.opensuse.org/repositories/home:/vtrefny/xUbuntu_22.04/ /' | sudo tee /etc/apt/sources.list.d/home:vtrefny.list curl -fsSL https://download.opensuse.org/repositories/home:vtrefny/xUbuntu_22.04/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/home_vtrefny.gpg > /dev/null sudo apt update sudo apt install blivet-gui
Итак:
- Используйте Disks, чтобы разблокировать внешний зашифрованный раздел LUKS: нажмите клавишу Windows и введите “disks”, чтобы открыть инструмент графического интерфейса
gnome-disks
. Щелкните на диске, который вас интересует, содержащем зашифрованный раздел LUKS, затем найдите зашифрованный раздел LUKS. Это то, что я называю “внешним разделом”, так как он содержит защищенные внутренние объемы LVM. Щелкните на значке разблокировки (он выглядит как незаблокированный замок) и введите ваш пароль шифрования, чтобы разблокировать раздел. Это займет несколько секунд для завершения разблокировки. Вы увидите разблокированные внутренние объемы “LVM2 PV”, которые теперь отображаются в графическом интерфейсе Disks под этим внешним разделом “LUKS”. Напоминаю: только инструмент Disks может правильно разблокировать раздел, чтобы работать с следующим шагом. Не разблокируйте его с помощьюblivet-gui
или GParted, иначеblivet-gui
выдаст ошибку на следующем шаге.
-
[Адаптировано из моих инструкций здесь] Используйте
blivet-gui
, чтобы увеличить и изменить внутренние объемы LVM внутри внешнего зашифрованного раздела LUKS: нажмите клавишу Windows и введите “blivet”, чтобы открыть инструментblivet-gui
. Обратите внимание:blivet-gui
не должен быть уже открыт! Вы должны выполнить шаг разблокировки выше в “Disks” прежде чем открыватьblivet-gui
. Под жирным заголовком “LVM” находится мой логический объемvgubuntu
, который я только что разблокировал с помощью инструмента Disks выше. Я хочу увеличить этот LVM, чтобы заполнить все пространство внешнего зашифрованного раздела LUKS. Вот что я вижу вblivet-gui
, когда щелкаю на LVMvgubuntu
и затем на вкладку “Логический вид”:-
Вы можете увидеть раздел
vgubuntu-root
474.75 GiB, который я только что клонировал на этот новый диск, используяddrescue
выше. Давайте удалим логический раздел подкачки 980 Мбайт в этом LVM и увеличим главный LVM, чтобы занять все (980 Мбайт + 1.3 ТиБ) пространство, как показано ниже: -
Щелкните правой кнопкой мыши на логическом разделе подкачки 980 Мбайт и выберите “Удалить”. Щелкните правой кнопкой мыши на главном логическом разделе 474.75 ГиБ и выберите –> Изменить –> Изменить размер –> перетащите ползунок полностью вправо, чтобы изменить его размер, чтобы заполнить весь контейнер LVM внутри раздела LUKS.
Нажмите “Изменить размер”, затем нажмите маленькую галочку в верхней части главного окна
blivet-gui
–> вам нужно будет “Подтвердить запланированные действия”, нажав “Ок”, чтобы завершить операцию. Это займет примерно 20 секунд. Будьте терпеливы. Когда завершится, нажмите “ОК” в окне, которое говорит “Все очередные действия были обработаны.”
-
Теперь закройте
blivet-gui
, Disks и gparted (если он также был открыт). Затем откройте файловый менеджерnautilus
и перейдите в “Другие местоположения” в левой панели –> нажмите на “1.9 TB Volume”, чтобы автоматически смонтировать его. Как только ваш новый диск смонтирован, выполнитеdf -h
в терминале, чтобы увидеть его новый размер и доступное пространство. Ниже приведен вывод, который я вижу сейчас. Файловая система, которую я только что расширил с помощьюblivet-gui
, находится в самом последнем ряду этого вывода и называется Файловая система/dev/mapper/vgubuntu-root
, смонтированная в пути/media/ubuntu/abcdef01-abcd-0123-abcd-0123456789ab
. Вы можете видеть, что у меня 412 ГБ использовано и 1.3 ТБ доступно! Я только что склонировал мой почти полный диск на 512 ГБ на новый диск на 2 ТБ, так что это имеет смысл!ubuntu@ubuntu:~$ df -h Файловая система Размер Использовано Доступно Использование% Смонтировано на tmpfs 3.2G 11M 3.2G 1% /run /dev/sda1 3.6G 3.6G 0 100% /cdrom /cow 16G 581M 16G 4% / /dev/disk/by-label/writable 11G 18M 11G 1% /var/log tmpfs 16G 432K 16G 1% /dev/shm tmpfs 5.0M 8.0K 5.0M 1% /run/lock tmpfs 16G 324K 16G 1% /tmp tmpfs 3.2G 184K 3.2G 1% /run/user/999 /dev/mapper/vgubuntu-root 1.8T 412G 1.3T 25% /media/ubuntu/abcdef01-abcd-0123-abcd-0123456789ab
Теперь вы можете перезагрузиться на ваш новый внутренний диск и использовать его как обычно. Смотрите шаги ниже для получения дополнительных деталей.
В основном просто выключите компьютер, извлеките USB с Ubuntu и загрузитесь обратно на внутренний диск как обычно! Вот и все!
Вы введете свой пароль шифрования LUKS при загрузке, как обычно. Вы войдете в свою учетную запись пользователя, как обычно. Все будет точно так же, как вы оставили, до клонирования, за исключением того, что df -h
покажет, что ваша корневая файловая система, смонтированная на пути /
, теперь намного больше!
Готово.
Вариант 2. [Оригинальный ответ] Используйте командную строку, чтобы увеличить объем LVM внутри раздела LUKS
Снова откройте gparted, чтобы расшифровать/разблокировать диск, как описано ранее:
Щелкните правой кнопкой мыши на зашифрованном разделе –> Открыть шифрование –> введите пароль.
Теперь выполните это, где system-root
– это то, что я вижу как наиболее логичный вариант, когда я ввожу sudo e2fsck -f /dev/mapper/
и затем нажимаю Tab Tab, чтобы оно перечислило все действительные варианты автозаполнения.
# ВНИМАНИЕ ВНИМАНИЕ ВНИМАНИЕ: не выполняйте эту команду, пока этот раздел смонтирован!
# Она говорит, что порча файловой системы ПРОИЗОЙДЕТ.
sudo e2fsck -f /dev/mapper/system-root
Этот шаг e2fsck
ОБЯЗАТЕЛЕН перед шагом resize2fs
, который идет следующим. e2fsck
проверяет и исправляет новую клонированную и расшифрованную (разблокированную) файловую систему. Пример вывода:
ubuntu@ubuntu:~$ sudo e2fsck -f /dev/mapper/system-root e2fsck 1.45.5 (07-Jan-2020) Проход 1: Проверка индексов, блоков и размеров Индекс 27012476 деревьев диадных (на уровне 2) мог бы быть уже. Оптимизировать<y>? да Индекс 27013750 деревьев диадных (на уровне 2) мог бы быть уже. Оптимизировать<y>? да Индекс 27191704 деревьев диадных (на уровне 2) мог бы быть уже. Оптимизировать<y>? да Проход 1E: Оптимизация деревьев диадных Проход 2: Проверка структуры каталога Проход 3: Проверка связи каталогов Проход 4: Проверка подсчетов ссылок Проход 5: Проверка информации об итогах групп /dev/mapper/system-root: ***** ФАЙЛОВАЯ СИСТЕМА БЫЛА ИЗМЕНЕНА ***** /dev/mapper/system-root: 4106785/31121408 файлов (0.5% несмежных), 114717248/124455936 блоков
Теперь выполните команду resize2fs
, чтобы увеличить расшифрованную файловую систему, чтобы она соответствовала полному размеру вашего вновь расширенного зашифрованного раздела LUKS:
# Эта команда может быть выполнена с учетом того, что этот раздел смонтирован, но если вы следуете
# моим инструкциям точно сейчас, он *не* будет смонтирован в это время.
sudo resize2fs -p /dev/mapper/system-root
Пример вывода, если вы действительно его смонтировали, когда запускали:
ubuntu@ubuntu:~$ sudo resize2fs -p /dev/mapper/system-root resize2fs 1.45.5 (07-Jan-2020) Файловая система на /dev/mapper/system-root смонтирована на /home/ubuntu/mnt; требуется онлайн изменение размера старые_desc_blocks = 60, новые_desc_blocks = 211 Файловая система на /dev/mapper/system-root теперь длиной 441932800 (4k) блоков.
Теперь файловая система расширена! Далее мы смонтируем ее и выполним df -h
, чтобы доказать это.
5. Смонтируйте расшифрованный (разблокированный) раздел и выполните df -h
, чтобы доказать, что его файловая система расширена
Мы все еще работаем в живом USB, и мы уже разблокировали раздел LUKS с помощью пароля, используя gparted. Давайте смонтируем его, чтобы мы могли его прочитать и получить доступ к нему, если захотим!
cd ~
mkdir mnt
# Смонтируйте `/dev/mapper/system-root` в локальный ~/mnt каталог
sudo mount /dev/mapper/system-root mnt
Теперь выполните df -h
, и вы увидите это. Обратите внимание, что мой диск теперь используется только на 28%, с 1.2 ТБ доступных!
$ df -h
Файловая система Размер Использовано Доступно Использование% Смонтировано на
/dev/mapper/system-root 1.7T 430G 1.2T 28% /home/ubuntu/mnt
Ранее он использовал 97% при всего 14 ГБ доступных!
Файловая система Размер Использовано Доступно Использование% Смонтировано на
/dev/mapper/system-root 467G 430G 14G 97% /home/ubuntu/mnt
При желании, размонтируйте файловую систему, выполнив:
sudo umount ~/mnt
6. Перезагрузите и используйте ваш новый диск как обычно
Выключите живой USB и отключите его от компьютера. Включите компьютер, чтобы загрузиться с вновь клонированного и теперь расширенного нового внутреннего диска. Введите свой пароль LUKS, когда появится такой запрос, как часть раннего процесса загрузки. Войдите, как обычно. Вы увидите, что ваша операционная система и файлы компьютера все в порядке, и все работает так, как будто ничего не изменилось!
Однако df -h
показывает, что ваша новая корневая точка монтирования (/
) имеет гораздо больше места!:
новый df -h
:
Обратите внимание, что я использую 28% с 1.2 ТБ доступными!
Файловая система Размер Использовано Доступно Использование% Смонтировано на
/dev/mapper/system-root 1.7T 430G 1.2T 28% /
старый df -h
:
Обратите внимание, что я использую 97% при всего 14 ГБ доступных!
Файловая система Размер Использовано Доступно Использование% Смонтировано на
/dev/mapper/system-root 467G 430G 14G 97% /
Дополнительные заметки
Чтобы использовать gparted для “извлечения и удаления” файловой системы LUKS, после разблокировки ее с помощью вашего пароля, выполните следующее:
- В gparted щелкните правой кнопкой мыши на разделе и выберите –> Деактивировать.
- Затем снова щелкните правой кнопкой мыши на разделе и выберите “Закрыть шифрование”.
- Теперь, насколько я знаю, вы можете безопасно отключить его.
Я не знаю, что произошло или почему, но где-то на пути gparted перестал показывать истинное использование раздела, когда разблокирован, и теперь НЕ показывает истинное использование раздела, когда разблокирован. Он теперь показывает полное 100% использование, даже когда разблокирован. Я думаю, что я сделал что-то странное. См. изображение ниже. Хотя все кажется работающим, так что, думаю, я могу игнорировать это? Если кто-то знает, почему он больше не показывает мое истинное использование диска для этого раздела, дайте мне знать!
Ключевые слова: расширение зашифрованного раздела LUKS: как клонировать вашу ОС Ubuntu или жесткий диск и расширить ваш зашифрованный жесткий диск / файловую систему, когда закончите! избыточное резервирование SSD; клонирование SSD; клонирование HDD
Чтобы проверить пространство диска в linux. Смотрите, что vg-data диск составляет 3.3TB, мы увеличим его до 3.7TB
root@fs1 ~ # sudo df -hT
Файловая система Тип Размер Использовано Доступно Использование% Смонтировано на
udev devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs tmpfs 779M 836K 779M 1% /run
/dev/mapper/vg--system-root ext4 9.8G 4.3G 5.2G 46% /
tmpfs tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/mapper/vg--data-data ext4 3.3T 3.1T 18G 100% /data
tmpfs tmpfs 779M 0 779M 0% /run/user/1022
Так что используем parted, чтобы увидеть таблицу разделов.
root@fs1 ~ # sudo parted /dev/sdb
GNU Parted 3.2
Используя /dev/sdb
Добро пожаловать в GNU Parted! Введите 'help', чтобы просмотреть список команд.
(parted) print free
Предупреждение: Не все пространство, доступное для /dev/sdb, похоже, используется. Вы можете исправить GPT, чтобы использовать все пространство (дополнительные 939524096 блоков) или продолжить с текущими настройками?
Исправить/Игнорировать? Исправить
Модель: HC Volume (scsi)
Диск /dev/sdb: 4080GB
Размер сектора (логический/физический): 512B/512B
Таблица разделов: gpt
Флаги диска:
Номер Начало Конец Размер Файловая система Имя Флаги
17.4kB 1049kB 1031kB Свободное пространство
1 1049kB 3599GB 3599GB lvm
3599GB 4080GB 481GB Свободное пространство
Вы также можете использовать MiB, чтобы видеть это в точном размере. Я увеличу его до 3.7T примерно: 3890990MiB
resizepart используется для увеличения размера раздела. Так что здесь я увеличиваю раздел 1.
(parted) resizepart
Номер раздела? 1
Конец? [3432447MiB]? 3890990MiB
(parted) print
Модель: HC Volume (scsi)
Диск /dev/sdb: 3891200MiB
Размер сектора (логический/физический): 512B/512B
Таблица разделов: gpt
Флаги диска:
Номер Начало Конец Размер Файловая система Имя Флаги
1 1.00MiB 3890990MiB 3890989MiB lvm
(parted) unit MiB print free
Модель: HC Volume (scsi)
Диск /dev/sdb: 3891200MiB
Размер сектора (логический/физический): 512B/512B
Таблица разделов: gpt
Флаги диска:
Номер Начало Конец Размер Файловая система Имя Флаги
0.02MiB 1.00MiB 0.98MiB Свободное пространство
1 1.00MiB 3890990MiB 3890989MiB lvm
3890990MiB 3891200MiB 210MiB Свободное пространство
Теперь вы можете видеть, что resizepart увеличивает sdb1 (раздел 1)
root@fs1 ~ # lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 76.3G 0 disk
└─sda3 8:3 0 76.3G 0 part
└─pv-crypt 254:0 0 76.3G 0 crypt
├─vg--system-swap 254:1 0 2G 0 lvm [SWAP]
└─vg--system-root 254:2 0 10G 0 lvm /
sdb 8:16 0 3.7T 0 disk
└─sdb1 8:17 0 3.7T 0 part
└─pv-data-crypt 254:3 0 3.3T 0 crypt
└─vg--data-data 254:4 0 3.3T 0 lvm /data
sr0 11:0 1 1024M 0 rom
Чтобы увеличить зашифрованный раздел, работает команда cryptsetup resize.
root@fs1 ~ # sudo cryptsetup resize pv-data-crypt
root@fs1 ~ # lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 76.3G 0 disk
└─sda3 8:3 0 76.3G 0 part
└─pv-crypt 254:0 0 76.3G 0 crypt
├─vg--system-swap 254:1 0 2G 0 lvm [SWAP]
└─vg--system-root 254:2 0 10G 0 lvm /
sdb 8:16 0 3.7T 0 disk
└─sdb1 8:17 0 3.7T 0 part
└─pv-data-crypt 254:3 0 3.7T 0 crypt
└─vg--data-data 254:4 0 3.3T 0 lvm /data
sr0 11:0 1 1024M 0 rom
Смотрите, как pv-data-crypt увеличивается до 3.7T. Теперь вам нужно увеличить размер pv.
muhammadshakeeb@fs1:~$ sudo pvs
PV VG Fmt Attr PSize PFree
/dev/mapper/pv-crypt vg-system lvm2 a-- 76.29g 69.29g
/dev/mapper/pv-data-crypt vg-data lvm2 a-- 3.27t 0
muhammadshakeeb@fs1:~$ sudo pvresize /dev/mapper/pv-data-crypt
Физический объем "/dev/mapper/pv-data-crypt" изменен
1 физический объем(ов) изменены или обновлены / 0 физический объем(ов) не изменены
muhammadshakeeb@fs1:~$ sudo pvs
PV VG Fmt Attr PSize PFree
/dev/mapper/pv-crypt vg-system lvm2 a-- 76.29g 69.29g
/dev/mapper/pv-data-crypt vg-data lvm2 a-- 3.71t <447.80g
Вы можете видеть, что размер PV теперь PFree использует и увеличивается с помощью lvextend, УВЕЛИЧЬте размер и используйте resize2fs
muhammadshakeeb@fs1:~$ sudo lvextend -l +100%FREE /dev/vg-data/data
Размер логического тома vg-data/data изменен с 3.27 TiB (858110 расширений) до 3.71 TiB (972746 расширений).
Логический том vg-data/data успешно изменен.
muhammadshakeeb@fs2:~$ sudo resize2fs /dev/vg-data/data
resize2fs 1.44.5 (15-Dec-2018)
Файловая система на /dev/vg-data/data смонтирована на /data; требуется онлайн изменение размера
старые_desc_blocks = 419, новые_desc_blocks = 475
Файловая система на /dev/vg-data/data теперь длиной 996091904 (4k) блоков.
muhammadshakeeb@fs2:~$ sudo lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 76.3G 0 disk
└─sda3 8:3 0 76.3G 0 part
└─pv-crypt 254:0 0 76.3G 0 crypt
├─vg--system-swap 254:1 0 2G 0 lvm [SWAP]
└─vg--system-root 254:2 0 5G 0 lvm /
sdb 8:16 0 3.7T 0 disk
└─sdb1 8:17 0 3.7T 0 part
└─pv-data-crypt 254:3 0 3.7T 0 crypt
└─vg--data-data 254:4 0 3.7T 0 lvm /data
sr0 11:0 1 1024M 0 rom
Чтобы расширить, используйте команду, чтобы изменить размер раздела cryptsetup resize.
sudo cryptsetup resize /dev/mapper/opened-volume
sudo pvresize /dev/mapper/pv
sudo lvresize /dev/mapper/lv
sudo e2fsck -f /dev/mapper/lv
sudo resize2fs /dev/mapper/lv
Это сработало для меня.
Ответ или решение
Для расширения LUKS-зашифрованного раздела и использования всего пространства на вашем новом диске, выполните следующие шаги. Данный процесс включает использование утилит для работы с LUKS и LVM, а также некоторых команд для изменения размера файловой системы. Перед началом убедитесь, что у вас есть резервная копия важных данных и у вас есть доступ к Live USB с дистрибутивом Linux (например, Ubuntu).
Основные шаги для расширения LUKS-зашифрованного раздела:
-
Откройте LUKS-раздел:
sudo cryptsetup luksOpen /dev/sda2 crypt-volume
-
Используйте
parted
для изменения размера раздела:
Запуститеparted
для вашего диска:sudo parted /dev/sda
Определите номер раздела и измените его размер, чтобы он занимал все доступное место. Например, чтобы расширить второй раздел:
(parted) resizepart 2 100%
Примечание: Убедитесь, что изменяете именно тот раздел, который нужно. После внесения изменений выйдите из
parted
:(parted) quit
-
Затем деактивируйте группу Volume Group (VG):
sudo vgchange -a n fedora_chocbar
-
Закройте зашифрованный раздел:
sudo cryptsetup luksClose crypt-volume
-
Снова откройте LUKS-раздел:
sudo cryptsetup luksOpen /dev/sda2 crypt-volume
-
Измените размер LUKS-раздела:
sudo cryptsetup resize crypt-volume
-
Активируйте группу Volume Group (VG):
sudo vgchange -a y fedora_chocbar
-
Измените размер физического тома (PV):
sudo pvresize /dev/mapper/crypt-volume
-
Измените размер логического тома (LV):
Для расширения определенного логического тома, напримерhome
:sudo lvresize -l +100%FREE /dev/fedora_chocbar/home
Примечание: Вы можете заменить
home
на имя логического тома, который хотите изменить. -
Проверьте файловую систему:
Прежде чем изменять размер файловой системы, необходимо запустить проверку:sudo e2fsck -f /dev/mapper/fedora_chocbar-home
-
Измените размер файловой системы:
Наконец, увеличьте размер файловой системы, чтобы она использовала доступное пространство:sudo resize2fs /dev/mapper/fedora_chocbar-home
Завершение:
После выполнения всех указанных шагов, ваш LUKS-зашифрованный раздел должен быть расширен до максимального размера, а логический том будет занимать все свободное место. Не забудьте перезагрузить систему и проверить размер вашей раздела с помощью команды df -h
для подтверждения успешного выполнения операций.
Если в ходе выполнения возникли проблемы, рекомендуется перепроверить команды и убедиться в наличии резервных копий данных перед любыми операциями с разделами и файловыми системами.