Перенос CentOS
Ситуация: нужно заменить в сервере жесткий диск, на котором стоит CentOS(или любой другой дистрибутив Linux) на новый, другого размера. CentOS установлен с разбиением диска по умолчанию, т.е. /boot на маленькой ext3 партиции, / в LVM и swap в LVM
Исходно: /boot /dev/hda1 / /dev/VolGroup00/LogVol00 swap /dedev/VolGroup00/LogVol01
Выключаем сервер.
Подключаем новый жесткий диск. (предположим, что он встал на pri.slave и называется /dev/hdb)
Загружаемся с установочного диска CentOS в rescue режиме
linux rescue
Соглашаемся с предложением найти и примонтировать системную партицию. Проверяем.
# ls /mnt/sysimage ; ls /mnt/sysimage/boot
Создаем новые партиции на новом диске
# fdisk /dev/hdb n (новая партиция) p (primary партиция) 1 (номер партиции) <enter> (начало партиции) +100M (размер партиции) (это будет /boot) n p 2 <enter> <enter> (а это будущий LVM) t (меняем тип партиции чтобы не спутать ее с другими) 2 (вторая партиция - LVM) 8e (тип партиции - Linux LVM) w (сохранили и вышли)
Далее создаем партиции внутри LVM
lvm
> pvcreate /dev/hdb2
> vgcreate VolGroup01 /dev/hdb2
> lvcreate -L 10G -n LogVol00 VolGroup01 (10G - размер будущей / партиции.
должен быть не меньше объема информации в текущей
партиции и не больше свободного места в новом VG.
размер считаем с учетом swap'а.)
> lvcreate -L 1G -n LogVol01 VolGroup01 (партиция под swap.
можно занять все оставшееся место, если посмотреть
количество Free PE в новом VG командой vgdisplay
и задать вместо -L 10G флаг -l <количество свободных PE>)
> quit
Создаем файловые системы
# mkfs.ext3 /dev/hdb1 # mkfs.ext3 /dev/VolGroup01/LogVol00 # mkswap /dev/VolGroup01/LogVol01
Монтируем
# mkdir /mnt/newsys # mkdir /mnt/newsysboot # mount /dev/hdb1 /mnt/newsysboot # mount /dev/VolGroup01/LogVol00 /mnt/newsys
Переносим файлы
# cd /mnt/newsysboot ; dump -f- /mnt/sysimage/boot | restore -rf- # cd /mnt/newsys ; dump -f- /mnt/sysimage | restore -rf-
Первая команда выполнится почти моментально - файлов в /boot немного. А вот после запуска второй можно спокойно дойти до ближайшей кафешки и перекусить, параллельно почитав man'ы на наладоннике. На IDE жестких дисках почти новая система(стандартный server комплект плюс еще немного дополнительного софта плюс конфиги) переносится чуть больше часа.
Кстати, по умолчанию /boot монтируется из fstab по метке. Новая система не найдет партицию. Надо либо изменить fstab, либо изменить метку партиции:
# e2label /dev/hdb1 /boot
Выключаем компьютер.
# poweroff
Отцепляем старый диск, ставим новый нужным устройством(pri.master в нашем случае).
Загружаемся... нет, не угадали, опять с установочного диска в rescue. Что мы забыли? Поставить загрузчик в MBR нового диска, без него система не загрузится.
# chroot /mnt/sysimage /bin/bash # grub-install /dev/hda # exit
И переименовать VolGroup01 в VolGroup00, чтобы система нашла свои диски.
# umount /mnt/sysimage/boot /mnt/sysimage/dev /mnt/sysimage/proc /mnt/sysimage # lvm > vgrename VolGroup01 VolGroup00 > quit # exit
Грузимся с нового жесткого диска.
Ура, все заработало. Требуем с хозяина сервера ящик пива.
# mail owner@ourserver.com Subj: Все заработало Сабж. В качестве моральной компенсации прошу выделить мне ящик пива. .
Пьем пиво с хозяином сервера.

