Расширьте зашифрованный раздел LUKS, чтобы заполнить диск

Расширьте зашифрованный раздел LUKS, чтобы заполнить диск

Недавно я обновил свой диск с SSD на 128 ГБ до SSD на 512 ГБ. Раздел / зашифрован с помощью LUKS. Мне нужна помощь в расширении раздела, чтобы использовать все свободное место на новом диске. Я уже перенес старый диск на новый:

[root@localhost ~]# fdisk -l /dev/sda
Disk /dev/sda: 477 GiB, 512110190592 bytes, 1000215216 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x00009f33

Device     Boot   Start       End   Sectors   Size Id Type
/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

Кажется, есть много информации о том, как это сделать, но очень мало объяснений. Я ценю любую помощь по этому вопросу.

решение1

ОК! Наконец-то окончательный ответ. Мои шаги по расширению зашифрованного тома LUKS...

  1. cryptsetup luksOpen /dev/sda2 crypt-volumeчтобы открыть зашифрованный том.
  2. parted /dev/sdaрасширить раздел resizepart NUMBER END.
  3. vgchange -a n fedora_chocbar. Прекратите использовать VG, чтобы вы могли сделать следующий шаг.
  4. cryptsetup luksClose crypt-volume. Закройте зашифрованный том для следующих шагов.
  5. cryptsetup luksOpen /dev/sda2 crypt-volume. Откройте его снова.
  6. cryptsetup resize crypt-volume. Автоматически изменит размер тома LUKS в соответствии с доступным пространством.
  7. vgchange -a y fedora_chocbar. Активируйте VG.
  8. pvresize /dev/mapper/crypt-volume. Измените размер PV.
  9. lvresize -l+100%FREE /dev/fedora_chocbar/home. Измените размер LV для /home до 100% свободного пространства.
  10. e2fsck -f /dev/mapper/fedora_chocbar-home. Примените немного магии fsck к измененному размеру fs.
  11. resize2fs /dev/mapper/fedora_chocbar-home. Измените размер файловой системы в /home (автоматически использует 100% свободного места)

Надеюсь, кому-то это будет полезно. Теперь у меня на ноутбуке более 300 ГБ для тестовых виртуальных машин!

решение2

Для тех, кто ищет ответ, как просто изменить размер раздела LUKS до размера измененного контейнера, команды следующие:

  • с зашифрованным томом LUKSоткрылсяи открытый том, отображенный как opened-volume, выполнить

    sudo cryptsetup resize /dev/mapper/opened-volume
    

    для изменения размера зашифрованного тома LUKS в режиме онлайн...

  • затем измените размер содержимого.

    • Например, если этоФайловая система Ext4, вы можете изменить его размер, даже если он смонтирован с помощью

      sudo resize2fs /dev/mapper/opened-volume
      
    • Или если у вас былЛВМфизический объем внутризашифрованный том LUKS, просто используйте pvresize:

      sudo pvresize /dev/mapper/opened-volume
      

Я проделал это с смонтированной файловой системой/активированным PV без прерывания работы; можно было изменить размер контейнера, не размонтируя его предварительно, поскольку зашифрованный том находился на логическом томе LVM (с помощью lvresize) / с помощью partedизменения размера раздела GPT, чтобы вместить свободное пространство, следующее сразу за ним!

решение3

Я нашел гораздо более простое решение. Запустите Xubuntu live, установите и запустите partitionmanager. Он отлично справляется с зашифрованными разделами.

Полная информация здесь:http://e1z.ca/devlog/encrypted_partition_resize.html

решение4

Изменить размер из командной строки с помощью partedбез ЛВМ(на таблице разделов ms-dos для дополнительного удовольствия).

Я расширил свой VPS с 50G до 150G.

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
Filesystem              Size  Used Avail Use% Mounted on
/dev/mapper/vda5_crypt   47G   12G   35G  26% /
/dev/vda1               641M   63M  532M  11% /boot

Схема разделов следующая:

# parted /dev/vda print                                                        
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 161GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type      File system  Flags
 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
Error: Partition(s) 6 on /dev/vda have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use.  As a
result, the old partition(s) will remain in use.  You should reboot now before making further changes.
Ignore/Cancel? i 

Расширьте логический раздел (2) для размещения расширенных разделов до конца диска (-1):

(parted) resizepart 2 -1

Измените размер логического раздела 5, оставив место для раздела подкачки (parted снова выдаст сообщение об ошибке, просто продолжайте и (и)игнорируйте:

(parted) resizepart 5 -4G

Пересоздайте раздел подкачки - как вы можете видеть из crypttab, он рандомизируется при каждой загрузке, поэтому нам не нужно беспокоиться о UUID - не очень хорошо для режима ожидания - но для серверов и без режима ожидания это предпочтительный способ. Создайте его с конца предыдущего раздела (157G) до конца диска (-1):

(parted) mkpart                                                           
Partition type?  primary/logical? l                                       
File system type?  [ext2]? linux-swap                                     
Start? 157GB                                                              
End? -1    

Проверьте результаты:

(parted) print                                                            
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 161GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End    Size    Type      File system     Flags
 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
NAME      TYPE      SIZE USED PRIO
/dev/dm-1 partition 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
Filesystem              Size  Used Avail Use% Mounted on
/dev/mapper/vda5_crypt  144G   12G  132G   9% /
/dev/vda1               641M   63M  532M  11% /boot

Связанный контент