Как перенести корневую ФС на LVM в Debian


vs-adm - Posted on 12 Сентябрь 2008

Всвязи с заменой жестких дисков потребовалось проделать перенос корневого раздела внутрь группы томов 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

5
Ваша оценка: Ничего Рейтинг: 5 (2 голоса)

>ибо загрузчик GRUB с LVM не работает.

http://grub.enbug.org/LVMandRAID

Отправить комментарий

Google Friend Connect (leave a quick comment)
loading...
Содержание этого поля является приватным и не предназначено к показу.