Перенос корневого раздела root на lvm
Недавно перенес корневую фс ноутбука на лвм, тривиальные вещи не записывал. Опишу процесс основными шагами. Действия описаны для CentOS 7, но справедливы, с небольшими отличиями, для всех большинства дистрибутивов с которыми работал.
В linux все просто. Чтобы перенести систему на lvm или на другой сервер нужно сделать следующее:
- Уменьшить размер текущей файловой системы.
- Создать новый lvm том
- Скопировать текущую коренвую fs на новый lvm.
- Создать новый конфиг и проапдейтить загрузчик.
1. Для уменьшения файловой системы необходимо воспользоваться livecd например с утилитой gparted. Для этого необходимо записать ее на usb и загрузиться в ней. Действие простое, но требует много времени, в зависимости от объема. Необходимо учесть что новый root будет таким же по объуму как текущий.
2. Создаем через parted или тот же gparted новый раздел, и далее новый lvm:
Далее создаем новый pv, vg и lv — root. Действия тривиальные, о подробностях с удовосльтвием расскажу в комментариях.
3. Копирование можно сделать чем удобно, главное сохранить права, uid, selinux (если используется) и acl например, rsync-om.
rsync -aHAX / /mnt/new-root -v --one-file-system
4. Апдейтим загрузчик и конфиг grub для текущего ядра и initramfs
for i in /proc/ /sys/ /dev/ /run/; do mount --bind $i /mnt/new-root/$i; done
chroot /mnt/new-root
grub2-mkconfig -o /boot/grub2/grub.cfg
cd /boot ; for i in `ls initramfs-*img`; do dracut -v $i `echo $i|sed \"s/initramfs-//g; s/.img//g\"` --force; done
Перезагружаемся и наслаждаемся прелестями lvm, например кешированием на ssd 🙂
Так же после этого можно так же переместить раздел в начало диска, удалить старый раздел