Как перенести корневую ФС на LVM в Debian
Всвязи с заменой жестких дисков потребовалось проделать перенос корневого раздела внутрь группы томов LVM. В процессе столкнулся с интересными граблями и хочу с ними поделиться.
Сначала все шло как обычно, создал логический том:
lvcreate -n Root -L 10G Primary
В результате том появился в /dev/mapper/Primary-Root. Далее встала задача переноса данных из корня, по возможности не останавливая систему. Сразу оговорюсь, что предложенный способ вряд ли подойдет владельцам сильно нагруженных серверов с часто изменяемой информацией, все равно придется останавливать, чтобы не потерять последние изменения в базах.
Для переноса использую rsync:
# mkfs.ext2 -L root -O dir_index /dev/mapper/Primary-Root
# mount /dev/mapper/Primary-Root /mnt/media
# rsync -a -xv --exclude /proc --exclude /sys / /mnt/media
# mkdir /mnt/media/proc
# mkdir /mnt/media/sys
# rm -rf /mnt/media/boot/*
Очистка boot нужна потому, что в этот каталог монтируется раздел boot, ибо загрузчик GRUB с LVM не работает.
Все дальнейшие действия я произвожу уже со скопированным корнем.
Итак, имею полную копию раздела. Что там еще осталось? Поправить /etc/fstab на новый корень и вообще проверить все пути, и изменить конфигурацию загрузчика. Открываем на редактирование /boot/grub/menu.lst, находим в нем следующее:
## ## Start Default Options ##
## default kernel options
## default kernel options for automagic boot options
## If you want special options for specific kernels use kopt_x_y_z
## where x.y.z is kernel version. Minor versions can be omitted.
## e.g. kopt=root=/dev/hda1 ro
## kopt_2_6_8=root=/dev/hdc1 ro
## kopt_2_6_8_2_686=root=/dev/hdc2 ro
# kopt=root=/dev/mapper/Primary-Root ro vga=791 boot=local rootdelay=5
Жирным отмечены места, которые надо поменять. Особое внимание обращаем на root=. Ссылаться на /dev/mapper обязательно, попытка использовать линки типа /dev/Primary/Root приведут к неработоспособности системы. Связано это с тем, что скрипты в initramfs должны активизировать виртуальную группу lvm, и ее название они берут именно из первой части (до дефиса) параметра root. Сохраняемся, обновляем GRUB командой update-grub (вопросы, связанные с переносом загрузчика на новый раздел опускаем). Последний, но очень важный штрих- обновление initramfs.
# update-initramfs -u
Без этого компьютер просто будет виснуть. Все, можно перезагружаться.
Оригинал статьи http://slf.su/?p=166
- 4762 просмотра
Страница для печати

>ибо загрузчик GRUB с LVM не работает.
http://grub.enbug.org/LVMandRAID
Отправить комментарий