Руководство как установить CentOS из под FreeBSD по SSH. Задавайте вопросы в комментах, если что-то не понятно.
Дано:
- Настроенный сервер с kickstart
- Сервер с FreeBSD любой версии который будем переустанавливать
- Прямые руки. =)
1.Устанавливаем нужные пакеты из портов(GRUB2 и e2fsprogs) на FreeBSD
cd /usr/ports/sysutils/grub2&&make install
cd /usr/ports/sysutils/e2fsprogs&&make install
2.Создаем на разделе /tmp ext2 файловую систему
/dev/amrd0s1f 1.9G 155M 1.6G 9% /tmp
/dev/amrd0s1f on /tmp (ufs, local, soft-updates)
umount /tmp
mke2fs /dev/amrd0s1f
mount -t ext2fs /dev/amrd0s1f /mnt
Незабыть удалить из /etc/fstab, чтобы можно было загрузится в BSD если чтото пойдет не так!
3. Копируем на ext2 раздел initrd и vmlinuz нужной версии
fetch -o /mnt/initrd_remote.img http://mirror.yandex.ru/centos/6.0/os/x86_64/isolinux/initrd.img
fetch -o /mnt/vmlinuz_remote http://mirror.yandex.ru/centos/6.0/os/x86_64/isolinux/vmlinuz
wget -O /initrd_remote.img http://mirror.yandex.ru/centos/6.0/os/x86_64/isolinux/initrd.img
wget -O /vmlinuz_remote http://mirror.yandex.ru/centos/6.0/os/x86_64/isolinux/vmlinuz
4.Устанавливаем grub2 в MBR и создаем кофиг загрузки
grub2-install /dev/amrd0
grub-mkconfig
/usr/local/etc/grub.d/00_header
/usr/local/etc/grub.d/40_custom
grub-mkconfig -o /boot/grub/grub.cfg
Нужно поправить /usr/local/etc/grub.d/00_header выставив default=1 В /usr/local/etc/grub.d/40_custom прописать наш новый тип загрузки, для CentOS 6 x64 он будет следующим.
ИЗМЕНИТЬ ВСЕ НУЖНЫЕ ЗНАЧЕНИЯ НА ПРАВИЛЬНЫЕ!
- root=’(hd0,1,f)’ - буква должна соответствовать букве /tmp слайса!! в нашем случае это /dev/amrd0s1f тоесть f
- ks файл
- IP\GATE\NETMASK!
- НЕ ЗАБЫТЬ ВЫПОЛНИТЬ grub-mkconfig -o /boot/grub/grub.cfg чтобы обновился конфиг grub!!
menuentry "CentOS" {
insmod ext2
set root='(hd0,1,f)'
linux /vmlinuz_remote lang=en_US keymap=us method=http://ks.example.com/ ks=http://ks.example.com/ks.cfg vnc vncpassword=qwe123 ksdevice=eth0 ip=192.168.0.10 netmask=255.255.255.0 gateway=192.168.0.1 dns=8.8.8.8 noselinux headless