Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Информация
titleДанная статья применима к:
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7)
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
  • Astra Linux Special Edition РУСБ.10015-16 исп. 1

  • Astra Linux Common Edition 2.12



Предупреждение

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

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

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

Альтернативы может не быть если действия должны быть выполнены на сервере, не допускающем прерывания обслуживания , однако применимость настоящей статьи в такой ситуации зависит от конкретной конфигурации сервера, и общего рецепта тут нет.


 

Общее описание действий

  1. Уменьшаем физический том LVM чтобы освободить место для нового раздела boot:
    1. Для того, чтобы создать новый физический раздел, на диске должно иметься свободное место, не занятое другими физическими дисковыми разделами;
    2. Если свободного места на диске нет - то нужно либо удалить, либо уменьшить другие физические дисковые разделы;
    3. Для того, чтобы уменьшить размер физического дискового раздела в нём должно быть свободное место, не занятое файловыми системами, а в случае разделов, являющихся физическими томами LVM - место, не занятое логическими томами LVM.
      При этом свободное место не должно быть фрагментировано, и должно находиться в конце дискового раздела. В случае обычных дисковых разделов это не проблема, но на физическом томе LVM могут размещаться несколько логических томов, поэтому при использовании LVM может понадобиться дефрагментировать физический том LVM;
    4. Если свободного места в физическом дисковом разделе нет - то нужно уменьшить размещённую там файловую систему (для LVM - уменьшить или удалить логические тома LVM);
    5. Для того чтобы уменьшить размер файловой системы (логического тома LVM) в ней (в нём) должно быть свободное место.
    6. Если в файловой системе свободного места нет (ненормальная ситуация) либо свободного места недостаточно (реальная ситуация для находящегося в эксплуатации компьютера), нужно удалить или заархивировать файлы, находящиеся в этой файловой системе.
      Если места нет в логическом томе LVM - нужно уменьшить находящуюся в нём файловую систему.
  2. Создаём и настраиваем новый дисковый раздел boot.

Далее в качестве базовой рассматривается умеренно-неудобная ситуация, возникающая при эксплуатации компьютера со стандартно установленной ОС:

  • Свободного места на диске нет;
  • Свободного места в дисковом разделе, который нужно уменьшить, тоже нет, но зато в нём есть логический том для вытеснения страниц (область подкачки, swap). В современных системах наличие выделенного дискового раздела для области подкачки является не более чем традицией, так как для этой цели можно в любой момент использовать файлы (см. Область подкачки (swap): особенности применения и обеспечения безопасности). Таким образом, логический том области подкачки можно безболезненно удалить, однако в рассматриваемой конфигурации задача усложняется тем, что в результате удаления логического тома подкачки возникает фрагментация физического тома LVM;
  • Предполагается, что на находящейся в эксплуатации машине свободного места в файловых системах мало, и уменьшать их размер нерационально. Возможность оптимизации процесса за счёт уменьшения файловых систем и, соответственно, уменьшения логических томов рассмотрена отдельно.

Исходная конфигурация

Для написания статьи использовался компьютер со следующими параметрами:

  • Размер единственного жесткого диска 32ГБ;
  • При установке ОС:
    • Выбрано имя машины lvs (используется в именовании LVM-устройств);
    • Выбрана установка с использованием LVM;
    • Принят один из вариантов стандартной разметки диска со следующими параметрами, заданными при установке ОС:
      • Каталог /boot размещен в  отдельном дисковом разделе /dev/sda1 с файловой системой ext2 и размером 243МБ. С учётом того, что раздел boot не может находиться в томах LVM - наличие отдельного дискового раздела boot становится при использовании LVM обязательным; 
      • Всё оставшееся место на диске занято расширенным (extended) дисковым разделом sda2, содержащим:
        • Дисковый раздел sda5, он же физический том LVM. Дисковый раздел sda5 занимает всё место в расширенном дисковом разделе sda2 и содержит все логические тома LVM, занимающие всё место в этом разделе sda5:
          • каталог /root размещен в отдельном логическом томе LVM (том root);
          • каталог /home размещен в отдельном логическим томе LVM (том home);
          • область подкачки (swap) размещена в отдельном логическом томе LVM (том swap_1);

В итоге получена следующая конфигурация:

Физические дисковые разделы

Command
Titlelsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   32G  0 disk  
├─sda1   8:1       243M  0 part /boot
├─sda2   8:2    0    1K  0 part  
└─sda5   8:5    0 31,3G  0 part

где:

  • sda1 - дисковый раздел с каталогом /boot, размер 243МБ
  • sda2 - расширенный дисковый раздел;
  • sda5 - дисковый раздел LVM, имеющий размер 31.3ГБ, на котором находятся логические тома LVM root, home, swap_1, содержащие, соответственно, каталоги /root, /home и область подкачки (в данном случае командой lsblk логические тома LVM не отображаются, но, в зависимости от используемой версии ОС, могут отображаться).

Физические тома LVS

Имеется один физический том LVS, он же физический дисковый раздел sda5:

Command
Titlesudo pvs

 PV         VG     Fmt  Attr PSize  PFree
 /dev/sda5  lvs-vg lvm2 a--  31,76g    0

Группы томов LVS

Имеется одна группа томов LVS:

Command
Titlesudo vgs
 VG     #PV #LV #SN Attr   VSize  VFree
 lvs-vg   1   3   0 wz--n- 31,76g    0

Логические тома LVS

Имеется три логических тома LVS:

Command
Titlesudo lvs

 LV     VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
 home   lvs-vg -wi-ao---- 16,68g                                                     
 root   lvs-vg -wi-ao---- 11,08g                                                     
 swap_1 lvs-vg -wi-ao----  4,00g 

При этом более информативная команда просмотра информации о физических томах:

Command
Title sudo pvs -v --segments /dev/sda5
   Wiping internal VG cache
   Wiping cache of LVM-capable devices
 PV         VG     Fmt  Attr PSize  PFree Start SSize LV     Start Type   PE Ranges           
 /dev/sda5  lvs-vg lvm2 a--  31,76g    0      0  2836 root       0 linear /dev/sda5:0-2835    
 /dev/sda5  lvs-vg lvm2 a--  31,76g    0   2836  1023 swap_1     0 linear /dev/sda5:2836-3858
 /dev/sda5  lvs-vg lvm2 a--  31,76g    0   3859  4271 home       0 linear /dev/sda5:3859-8129

Показывает, что:

Предупреждение
Логический том swap_1 расположен между томами root и home, то есть удалив этот том - уменьшить физический раздел не получится, так как свободное место будет находиться между существующими томами.

Сценарий действий


Информация

Если компьютер уже не загружается, все дальнейшие действия могут быть выполнены после загрузки с live-USB (см. статью Создание загрузочных носителей USB flash drive а также статью Создание собственных ALP-live образов (Live-CD/Live-USB) в Astra Linux), а также статью Восстановление содержимого каталога /boot при невозможности нормальной загрузки. Если компьютер работоспособен, то большинство действий можно выполнить из обычной сессии, не останавливая работу компьютера.

Предварительные действия

Предупреждение

Перед выполнением дальнейших действий сделать и проверить резервную копию данных.

  1. Проверить и отключить область подкачки:

    Command
    Titlesudo swapon

    NAME      TYPE      SIZE USED PRIO
    /dev/dm-1 partition   4G   0B   -2


    Command
    sudo swapoff /dev/dm-1

    Или просто отключить все области подкачки:

    Command

    sudo swapoff -a


  2. Удалить раздел подкачки из таблицы монтирования (можно просто закомментировать соответствующую строчку в файле /etc/fstab):

    Блок кода
    #/dev/mapper/lvs--vg-swap_1 none swap sw 0 0


  3. Удалить логический том swap_1:

    Command
    Titlesudo lvremove /dev/`hostname`-vg/swap_1

    Do you really want to remove active logical volume lvs-vg/swap_1? [y/n]: y
     Logical volume "swap_1" successfully removed


  4. Опционально, особенно если в дальнейшем не планируется использовать раздел подкачки, для того, чтобы при перезагрузках не выдавались задерживающие перезагрузку диагностические сообщения о не найденном разделе подкачки, в файле  /etc/initramfs-tools/conf.d/resume закомментировать строчку:

    Блок кода
    #RESUME=/dev/mapper/lvs--vg-swap_1

    после чего выполнить команды:

    Command
    sudo update-initramfs -t -u -k `uname -r`
    sudo update-grub

    Если раздел подкачки будет восстановлен - то раскомментировать эту строчку и повторно выполнить указанные команды.

Если всё сделано правильно, то команда pvs покажет наличие свободного места в "середине" физического тома:

Command
Titlesudo pvs -v --segments /dev/sda5  
   Wiping internal VG cache
   Wiping cache of LVM-capable devices
 PV         VG     Fmt  Attr PSize  PFree Start SSize LV   Start Type   PE Ranges           
 /dev/sda5  lvs-vg lvm2 a--  31,76g 4,00g     0  2836 root     0 linear /dev/sda5:0-2835    
 /dev/sda5  lvs-vg lvm2 a--  31,76g 4,00g  2836  1023          0 free                       
 /dev/sda5  lvs-vg lvm2 a--  31,76g 4,00g  3859  4271 home     0 linear /dev/sda5:3859-8129

То есть, том фрагментирован, свободное место имеет рамер 1023 блока, логический том home имеет размер 4271 блок, соответственно,  размер логического тома home больше, чем размер доступного свободного места.

Дефрагментация физического тома LVM

Если ваш физический том LVM не фрагментирован, этот шаг можно пропустить, и перейти к следующему.

Если ваши файловые системы не сильно заполнены, то дефрагментацию можно существенно ускорить уменьшив логические тома (см. далее "Оптимизация").

Информация

В некоторых случаях дефрагментация может быть выполнена без использования live-USB и без перезагрузки машины. В частности, в рассматриваемом примере дефрагментация выполняется за счет перемещения логического тома /home, и для выполнения дефрагментации можно:

  1. Закрыть все пользовательские графические сессии;
  2. Войти в консольную сессию (Ctrl+Alt+F1);
  3. Освободить домашний каталог, перейдя в корневой каталог:

    Command
    cd /


  4. Отмонтировать каталог /home:

    Command
    sudo umount /home


  5. Далее работать в консольной сессии или вернуться в графическую сессию (Ctrl+Alt+F7) (при этом будет выдано предупреждение, что работа выполняется во временном домашнем каталоге);

  6. Выполнить все действия по дефрагментации;
  7. По завершении работ снова примонтировать каталог:

    Command
    sudo mount /home


Таким приёмом можно воспользоваться, чтобы сохранить функционирование сетевых сервисов, обеспечив непрерывность их работы. Однако таким способом невозможно переместить том root и, если требуется переместить том root, использование live-USB обязательно.

Если размер свободного места больше, чем размер переносимого логического тома LVM, то устранить фрагментацию можно одной командой:

Command
sudo pvmove --alloc anywhere /dev/sda5:XXXX+YYY /dev/sda5:ZZZZ+YYY

где ХХХХ+YYY - диапазон блоков переносимого тома (см. вывод команды sudo pvs -v --segmens выше), а ZZZZ+YYY - диапазон блоков, куда будет перемещён том (подробнее см. в разделе "Оптимизация").

В рассматриваемом случае размер свободного места меньше размера переносимого логического раздела LVM, и команда pvmove сообщит об этом:

Command
Titlesudo pvmove --alloc anywhere /dev/sda5:3859-8129
  Insufficient free space: 4271 extents needed, but only 1023 available
  Unable to allocate mirror extents for lvs-vg/pvmove0.
  Failed to convert pvmove LV to mirrored

В таком случае перенос логического раздела можно выполнить по частям, указывая какие диапазоны блоков куда переносить. В рассматриваемом примере размер свободного места 1023 блока, и удобно переносить по тысяче блоков:

Command
sudo pvmove --alloc anywhere /dev/sda5:3859+1000 /dev/sda5:2836+1000


В итоге:

Информация
title sudo pvs -v --segments /dev/sda5                                    
    Wiping internal VG cache
    Wiping cache of LVM-capable devices
  PV         VG     Fmt  Attr PSize  PFree Start SSize LV   Start Type   PE Ranges          
  /dev/sda5  lvs-vg lvm2 a--  31,76g 4,00g     0  2836 root     0 linear /dev/sda5:0-2835   
  /dev/sda5  lvs-vg lvm2 a--  31,76g 4,00g  2836  1001 home     0 linear /dev/sda5:2836-3836
  /dev/sda5  lvs-vg lvm2 a--  31,76g 4,00g  3837  1023          0 free                      
  /dev/sda5  lvs-vg lvm2 a--  31,76g 4,00g  4860  3270 home  1001 linear /dev/sda5:4860-8129

Далее:

Command
sudo pvmove --alloc anywhere /dev/sda5:4860+1000 /dev/sda5:3837+1000
sudo pvmove --alloc anywhere /dev/sda5:5861+1000 /dev/sda5:4838+1000
sudo pvmove --alloc anywhere /dev/sda5:6862+1000 /dev/sda5:5839+1000
sudo pvmove --alloc anywhere /dev/sda5:7863- /dev/sda5:6840-

И в итоге физический том дефрагментирован, свободное пространство переместилось в конец раздела:

Command
Titlesudo pvs -v --segments /dev/sda5                            
sudo pvs -v --segments /dev/sda5                            
    Wiping internal VG cache
    Wiping cache of LVM-capable devices
  PV         VG     Fmt  Attr PSize  PFree Start SSize LV   Start Type   PE Ranges          
  /dev/sda5  lvs-vg lvm2 a--  31,76g 4,00g     0  2836 root     0 linear /dev/sda5:0-2835   
  /dev/sda5  lvs-vg lvm2 a--  31,76g 4,00g  2836  4271 home     0 linear /dev/sda5:2836-7106
  /dev/sda5  lvs-vg lvm2 a--  31,76g 4,00g  7107  1023          0 free                                        


Предупреждение
Размер использованного в примере логического раздела около 16ГБ, что в десятки раз меньше реальных дисковых разделов. То есть, в реальной системе такая пошаговая дефрагментация потребует в десятки раз больше шагов и соответствующее количество времени.

Уменьшение размера физического дискового раздела (физического тома)

При наличии правильно выделенного свободного места физический дисковый раздел (в том числе - являющийся физическим томом LVM) можно уменьшить используя входящий в состов состав live-USB графический инструмент gparted ("Пуск" - "Системные" - "Редактор разделов Gparted").
При работе из командной строки можно использовать команду pvresize:

Command
sudo pvresize -v --setphysicalvolumesize 32778240K /dev/sda5

однако при этом вычислять новый размер тома придётся самостоятельно.

Уменьшение размера расширенного дискового раздела и создание нового раздела boot

После уменьшения физического дискового раздела следует уменьшить расширенный дисковый раздел. Для этого необходимо:

  1. Загрузиться с live-USB;
  2. Использовать графический инструмент gparted.

Некоторые live-USB (а том числе live-USB Astra Linux) при загрузке автоматически активируют LVM, поэтому перед изменением размера расширенного раздела может понадобиться отключить работу LVM, для чего нажать правой кнопкой мыши на изображение физического тома и выбрать пункт "Выключить".

В меню, открывающемся по нажатию правой кнопки мыши имеется пункт "Изменить размер или переместить", воспользовавшись которым нужно уменьшить размер раздела.

Удобно сразу же создать на освободившемся месте новый раздел boot:

Новый раздел следует разметить под файловую систему ext2, обязательно установить на него флаг boot, и желательно присвоить ему мнемоническую метку (boot в данном случае).

При работе в командной строке для изменения размера раздела следует:

Выполнить команду parted:

Command
Title sudo parted
GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)

В диалоге команды определить номер изменяемого раздела с помощью команды print (раздел №2, extended):

Блок кода
(parted) print                                                             
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 34,4GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:  

Number  Start   End     Size    Type      File system  Flags
1      1049kB  256MB   255MB   primary   ext2         boot
2      257MB   34,4GB  34,1GB  extended
5      257MB   33,8GB  33,6GB  logical                lvm 

Изменить размер раздела командой :

Блок кода
(print) resizepart 2 33.8G

Где:

  • 2 - номер изменяемого раздела;
  • 33.8G - новая граница раздела (можно принять равной границе ранее уменьшенного логического тома);

Создать новый раздел (нижняя и верхняя границы выбираются из ранее отображенных параметров):

Блок кода
(print) mkpart primary ext2 33.8G 34.4G

Проверить номер нового раздела:

Блок кода
(parted) print                                                             
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 34,4GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:  

Number  Start   End     Size    Type      File system  Flags
1      1049kB  256MB   255MB   primary   ext2
2      257MB   33,8GB  33,6GB  extended
5      257MB   33,8GB  33,6GB  logical                lvm
3      33,8GB  34,4GB  537MB   primary   ext2         boot


Установить на раздел созданный раздел флаг boot:

Блок кода
(print) toggle 3 boot

Выйти из программы parted:

Блок кода
q

Опционально, проверить список раздедов:

Command
Titlelsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   32G  0 disk  
├─sda1   8:1       243M  0 part  
├─sda3   8:3       512M  0 part /boot
└─sda5   8:5    0 31,3G  0 part 

Опционально, установить на раздел метку "boot":

Command
sudo e2label /dev/sda5 boot


Настройка нового раздела boot

Дальнейшие действия не требуют загрузки с live-USB, и могут быть выполнены в обычном режиме работы, при этом после выполнения этих действий компьютер может оставаться в работе:

  1.  Проверить состав дисковых разделов:

    Command
    Titlelsblk
    NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda      8:0    0   32G  0 disk  
    ├─sda1   8:1       243M  0 part /boot
    ├─sda2   8:2    0    1K  0 part  
    ├─sda3   8:3       512M  0 part  
    └─sda5   8:5    0 31,3G  0 part

    К списку разделов добавился раздел sda3, имеющий размер 512MБ

  2. Примонтировать новый раздел в любое удобное место:

    Command
    sudo mount /dev/sda3 /mnt


  3. Скопировать в новый раздел boot содержимое старого раздела boot:

    Command
    sudo cp -R /boot/* /mnt


  4. Изменить таблицу монтирования, чтобы вместо старого раздела boot монтировался новый, для чего:
    1. Вывести идентификаторы разделов:

      Command
      Title sudo blkid
      /dev/sda1: UUID="86418b1a-525a-4614-a600-749403a542b2" TYPE="ext2" PARTUUID="9326d1ae-01"
      /dev/sda3: LABEL="boot" UUID="7fb61205-3f42-44ff-8886-a394991bfac0" TYPE="ext2" PARTUUID="9326d1ae-03"
      /dev/sda5: UUID="Xqsuis-3sj7-VEHQ-uUXX-RzJu-lozK-OkbqN9" TYPE="LVM2_member" PARTUUID="9326d1ae-05"
      /dev/mapper/lvs--vg-root: UUID="589855d1-25f5-4151-bfa4-8d1d1861a954" TYPE="ext4"
      /dev/mapper/lvs--vg-home: UUID="88356e6b-7920-4357-a21e-733435f1aa72" TYPE="ext4"


    2. В файле /etc/fstab заменить в инструкции монтирования раздела boot, старый идентификатор на новый, полученный командой blkid:

      Блок кода
      UUID=7fb61205-3f42-44ff-8886-a394991bfac0 /boot           ext2    defaults        0       2

      или, что проще и понятнее, использовать метку раздела:

      Блок кода
      LABEL=boot /boot           ext2    defaults        0       2


    3. Отмонтировать старый раздел boot и примонтировать новый:

      Command
      sudo umount /boot
      sudo mount /boot


    4. Еесли в дальнейшем не планируется использовать раздел подкачки, для того, чтобы при перезагрузках не выдавались задерживающие перезагрузку диагностические собщения о ненайденном разделе подкачки, в файле  /etc/initramfs-tools/conf.d/resume закомментировать строчку:

      Command
      #RESUME=/dev/mapper/lvs--vg-swap_1

      Если раздел подкачки будет использоваться - то строчка должна быть раскомментирована.

    5. Выполнить команды:

      Command
      sudo update-initramfs -t -u -k `uname -r`
      sudo update-grub


После выполнения этих действий компьютер может оставаться в эксплуатации, при необходимости немедленной проверки работоспособности после перезагрузки компьютер следует перезагрузить.

Удаление старого раздела boot

При необходимости удалить старый раздел boot после его удаления следует выполнить команду для восстановления загрузчика:

Command
sudo grub-install /dev/sda

Оптимизация процесса

Уменьшение размера логического тома

  1. Проверить наличие свободного места в файловых системах, и оценить до каких размеров можно их сокращать:

    Command
    Titledf -h
    Файловая система         Размер Использовано  Дост Использовано% Cмонтировано в
    udev                       2,0G            0  2,0G            0% /dev
    tmpfs                      395M         8,0M  387M            3% /run
    /dev/mapper/lvs--vg-root    11G         3,9G  6,4G           38% /
    tmpfs                      2,0G         4,0K  2,0G            1% /dev/shm
    tmpfs                      5,0M         4,0K  5,0M            1% /run/lock
    tmpfs                      2,0G            0  2,0G            0% /sys/fs/cgroup
    /dev/sda1                  236M         126M   98M           57% /boot
    /dev/mapper/lvs--vg-home    17G          57M   16G            1% /home
    tmpfs                      395M            0  395M            0% /run/user/999
    tmpfs                      395M         8,0K  395M            1% /run/user/1000

    Из вывода команды видно, что в разделе /home, имеющем размер 17ГБ, данными занято всего 57МБ (что, конечно, нехарактерно для находящихся в реальной эксплуатации компьютеров).

  2. Загрузиться с live-USB или отмонтировать раздел /home описанным выше способом.

  3. Проверить целостность файловой системы:


    Command
    sudo e2fsck -ff /dev/mapper/lvs--vg-home


  4. Сократить размер файловой системы до 2GB:

    Command
    sudo resize2fs /dev/mapper/lvs--vg-home 2G


  5. Сократить размер логического тома до 2GB:

    Command
    Title sudo lvreduce -L 2G /dev/mapper/lvs--vg-home
     WARNING: Reducing active logical volume to 2,00 GiB.
     THIS MAY DESTROY YOUR DATA (filesystem etc.)
    Do you really want to reduce lvs-vg/home? [y/n]: y
     Size of logical volume lvs-vg/home changed from 16,68 GiB (4271 extents) to 2,00 GiB (512 extents).
     Logical volume lvs-vg/home successfully resized.


  6. Опционально можно повторно проверить целостность файловой системы.

В итоге:

Command
Titlesudo pvs -v --segments /dev/sda5
   Wiping internal VG cache
   Wiping cache of LVM-capable devices
 PV         VG     Fmt  Attr PSize  PFree  Start SSize LV   Start Type   PE Ranges           
 /dev/sda5  lvs-vg lvm2 a--  31,76g 18,68g     0  2836 root     0 linear /dev/sda5:0-2835    
 /dev/sda5  lvs-vg lvm2 a--  31,76g 18,68g  2836  1023          0 free                       
 /dev/sda5  lvs-vg lvm2 a--  31,76g 18,68g  3859   512 home     0 linear /dev/sda5:3859-4370
 /dev/sda5  lvs-vg lvm2 a--  31,76g 18,68g  4371  3759          0 free                      

Видим, что логический том home стал меньше, чем свободное место перед ним, и может быть перемещён для дефрагментации одной командой и за разумное время:

Command
sudo pvmove --alloc anywhere /dev/sda5:3859+512 /dev/sda5:2836+512

Результат:

Command
Title sudo pvs -v --segments /dev/sda5
   Wiping internal VG cache
   Wiping cache of LVM-capable devices
 PV         VG     Fmt  Attr PSize  PFree  Start SSize LV   Start Type   PE Ranges           
 /dev/sda5  lvs-vg lvm2 a--  31,76g 18,68g     0  2836 root     0 linear /dev/sda5:0-2835    
 /dev/sda5  lvs-vg lvm2 a--  31,76g 18,68g  2836   512 home     0 linear /dev/sda5:2836-3347
 /dev/sda5  lvs-vg lvm2 a--  31,76g 18,68g  3348  4782          0 free                      

И, в итоге, можно уменьшить размер физического тома как описано выше.
После уменьшения размера физического тома:

  1. Установить нужный размер логического тома home (для примера - том swap восстанавливать не предполагается, и home занимает всё свободное место):

    Command
    sudo lvextend -l +4654 /dev/mapper/lvs--vg-home


  2. По желанию - восстановить том swap, например:

    Command
    sudo lvcreate -n swap_1 -L 4G lvs-vg


Итог:

Command
Titlesudo pvs -v --segments /dev/sda5                         
   Wiping internal VG cache
   Wiping cache of LVM-capable devices
 PV         VG     Fmt  Attr PSize  PFree Start SSize LV   Start Type   PE Ranges           
 /dev/sda5  lvs-vg lvm2 a--  31,26g    0      0  2836 root     0 linear /dev/sda5:0-2835    
 /dev/sda5  lvs-vg lvm2 a--  31,26g    0   2836  5166 home     0 linear /dev/sda5:2836-8001

Если действия выполнялись без использования live-USB - теперь можно примонтировать /home:

Command
sudo mount /home

После чего можно перезапустить графическую пользовательскую сессию, чтобы вернуть привычное домашнее окружение.