Поскольку экономика должна быть экономной , то украдкой вытирая скупую мужскую слезу , решил снять свой старенький сервер с платного колокейшн и поставить его дома, благо потребностей у него немного и домашний канал позволяет.
Сама машинка представляет собой 2-х юнитовый rackmount корпус ака фигурное изделие из миллиметровой стали ценой 80$ имени компании colocall (логотип есть но делали скорее под заказ colocall давным давно). Внутри имеем обычную десктопную материнскую плату от асус(P5PE-VM) с LGA775 сокетом, i865G чипсетом + celeron 336 D + PATA винчестер от samsung размером 200Gb. То что хорошо стояло где-то в серверной дома превратилось в достаточно греющийся и гудящий ящик. В свете этого сделал следующую работу над ошибками:
1) процессор заменил на celeron 430
2) вместо боксового кулера поставил artic cooling с оборотами в районе 1700
3) вместо одного корпусного вентилятора на продув поставил два корпусных вентил/ятора Zalman ZM-F1 PLUS c забавными силиконовыми креплениями и постоянным резистором в качестве способа понижения базовой скорости - в результате новые два тище чем старый и дуют сильнее :)
И наконец венцом творения стала замена 3.5" PATA HDD на ноутбучный в USB-шном кармане. Врожденная жадность пока не позволяет просто купить новый SATA винчестер и порывшись в тумбочке с ненужными деталями обнаружил свою 100Gb "флешку" в виде ноутбучного винчестера от того же SAMSUNG-a.
Переезд с одного винчестера на другой затянулся из-за классического наступания на все возможные грабли посему решил написать для себя очередную шпаргалку.
Исходные данные:
1) штатный винчестер с установленным centos 5.6 в виде трех разделов /boot, / и swap (/dev/hda1 /dev/hda2 /dev/hda3)
2) пустой usb-винчестер
Что сделано для переноса:
1) при помощи fdisk создаем нужные разделы на USB-hdd (в моем случае /dev/sda):
получается три раздела по образу и подобию рабочего старого винчестера
/dev/sda1 /boot
/dev/sda2 /
/dev/sda3 swap
не забываем раздел /dev/sda1 сделать загрузочным
2) на новом винчестере готовим разделы к работе
mkfs.ext3 -L /boot /dev/sd1
mkfs.ext3 -L / /dev/sda2
mkswap -L SWAP-sda3 /dev/sda3
Volume label для разделов задаем для красоты монтирования в fstab (как вариант использовать UUID винчестера)
на живой запушеной системе монтируем разделы нового винчестера как
mount /dev/sda2 /mnt
mkdir /mnt/boot
mount /dev/sda1 /mnt/boot
3) переносим данные при помощи rsync
перееключаем в single-user mode при помощи команды telinit 1
в файлик rsync-filter добавляем те каталоги которые не нужно переносить в силу специфики
- /boot/
- /dev/
- /mnt/
- /proc/
- /sys/
и выполняем саму синхронизацию
rsync -avx --exclude-from rsync-filter / /mnt
cd /mnt
mkdir -p dev/ mnt/ proc/ sys/ var/lock/ var/run/ boot/
содержимое /boot переносим вручную, чтобы впоследствии не дергать при последующих синхронизациях (я сначала несколько раз делал пробные синки и проверял загрузку с нового винчестера)
4) настройка grub джля нового винчестера
chroot /mnt
правим файлик /boot/grub/device.map для нового винчестера
(hd0) /dev/sda
запускаем grub и из его командной строки выполняем
root (hd0,0)
setup (hd0,0)
quit
при необходимости правим содержимое /boot/grub/grub.conf - это касается как правило опции root в строке загрузки ядра системы, в моем случае получилось следующее
default=1
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-238.12.1.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-238.12.1.el5 ro root=LABEL=/ selinux=0
initrd /usbinitrd-2.6.18-238.12.1.el5.img
title OpenVZ (2.6.18-238.12.1.el5.028stab091.1)
root (hd0,0)
kernel /vmlinuz-2.6.18-238.12.1.el5.028stab091.1 ro root=LABEL=/ selinux=0
initrd /usbinitrd-2.6.18-238.12.1.el5.028stab091.1.img
5) при помощи mkinitrd собираем новый initrd-образ с подгрузкой драйверов usb
mkinitrd --with-usb --preload=ehci-hcd --preload=usb-storage
--preload=scsi_mod --preload=sd_mod usbinitrd-2.6.18-238.12.1.el5.028stab091.1.img 2.6.18-238.12.1.el5.028stab091.1
Для поддержки lvm тоже нужны дополнительные ключики
6) правим /etc/fstab соответственно изменились устройства для /boot , / и swap
7) выключаем машинку - отключаем старый винчестер и пробуем загрузиться с нового