Задача - переместить систему Ubuntu/Debian на диск меньшего объема.
Переезд на диск меньшего объема происходит так:
1. Подключаем оба диска к системе и загружаемся с Live CD
2. Предполагается что на старом диске у нас два раздела - первый загрузочный, второй - для LVM. Создаем на новом диске загрузочный раздел и раздел, который будет PV для LVM. Старый диск у нас /dev/sda, новый - /dev/sdb
Копируем целиком таблицу разделов:

sfdisk -d /dev/sda | sfdisk --force /dev/sdb

Удаляем второй раздел (просто тот раздел что мы скопировали со старого диска выходит за пределы носителя) и создаем его максимального размера и назначаем ему тип 8e - Linux LVM:

echo -e "\nd\n2\nn\np\n2\n\n\nt\n2\n8e\nw\nx" | fdisk /dev/sdb

Переносим загрузочный раздел с помощью dd:

dd if=/dev/sda1 of=/dev/sdb1

Создаем на /dev/sdb2 физический том LVM:

pvcreate /dev/sdb2

На всякий случай перед изменением размера файловой системы проверяем ее на наличие ошибок (у нас тут debian):

fsck -f /dev/mapper/debian-root

Уменьшаем размер файловой системы.
Тут важно следить за размером. У меня новый диск - 5Gb. На нем помещаются загрузочный раздел - 255Mb и остальное - LVM. В LVM два тома - один debian-root и его размер надо уменьшить, а второй - debian-swap и у меня он 2Gb - его размер оставляем. При этом - сумма размеров этих томов не должна превышать объем диска. Лучше потом увеличить размер тома debian-root до максимума. У меня swap - 2Gb, корневой 255Mb, значит на новый том debian-root остается 5000Mb - 2255Mb =~ 2700Mb

resize2fs /dev/mapper/debian-root 2700M

Дальше мы уменьшаем размер тома debian-root до размера, чуть большего, чем размер его файловой системы, который теперь - 2700M. Так как надо указать НА сколько мы уменьшаем, то надо узнать текущий размер с помощью команды lvdisplay:

lvresize -L-46000M /dev/mapper/debian-root

Затем мы присоединяем к группе томов debian новый раздел:

vgextend debian /dev/sdb2

перемещаем данные:

pvmove /dev/sda2 /dev/sdb2

При этом может оказатьтся что на новом разделе не хватает места. Это будет вот такая ошибка:

Insufficient free space: 1223 extents needed, but only 1218 available
  Unable to allocate mirror extents for pvmove0.
  Failed to convert pvmove LV to mirrored

В этом случае надо еще немного уменьшить размер тома debian-root командой

lvresize -L-20M /dev/mapper/debian-root

изымаем старый раздел:

vgreduce debian /dev/sda2

А затем можно увеличить размер файловой системы на томе debian-root до максимума:

resize2fs /dev/mapper/debian-root
, 2019/07/30 05:18

Спасибо, наконец-то нашёл статью, которая помогла:)

, 2019/07/30 12:22

Приходите снова 8-)

Enter your comment. Wiki syntax is allowed:
 
  • linux_faq/переезд-linux-а-диск-lvm-меньшего-объема-debian.txt
  • Last modified: 2019/07/30 12:22
  • by admin