0

CENTOS | Сборка ядра для работы под Hyper-V

Для начала нужно скачать само ядро с kernel.org

Я собирал 3.0.78, т.к. в последующих версиях ядра я не нашел модуля hv_blkvsc, что сказывалось на загрузке ВМ с дисками в 300Гб(писало, что ФС больше физического диска)

cd /usr/src
wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.0.78.tar.gz
tar zxvf
cd ./linux-3.0.78
cp /boot/config-`uname -r` .config

могут также потребоваться некоторые недостающие пакеты, поэтому ставим

yum install rpm-build redhat-rpm-config ncurses-devel unifdef

чтобы при установке ядра сразу собирался initrd добавляем в конец файла scripts/package/mkspec строки

vi scripts/package/mkspec

echo "%post"
echo "/sbin/new-kernel-pkg --package kernel --mkinitrd --depmod --install "$KERNELRELEASE" || exit \$?"
echo ""

echo "%preun"
echo "/sbin/new-kernel-pkg --rminitrd --rmmoddep --remove "$KERNELRELEASE" || exit \$?"
echo ""

переходим к конфигурированию нового ядра
make menuconfig

Что стоит сделать в любом случае:
General Setup -> Enable deprecated sysfs features to support old userspace tools

1
нужно активировать дабы избежать непредвиденных проблем с загрузкой

отключаем поддержку паравиртуализации
Processor type and features -> Paravirtualized guest support

3

отключаем Virtualization

2

Далее необходимо включить поддержку Hyper-V, для этого идем в

Device Drivers  -> Staging drivers и включаем

Microsoft Hyper-V client drivers
Microsoft Hyper-V virtual storage driver
Microsoft Hyper-V virtual block driver
Microsoft Hyper-V virtual network driver
Microsoft Hyper-V Utilities driver
Microsoft Hyper-V mouse driver

4

Далее по желанию можно отключить ненужные драйверы типа Wi-fi, usb и т.п.
Если вы используете iptables с nat, то нужно также включить его перед сборкой, иначе иначе модуля не будет

Завершаем и сохраняемся.

Создаем каталоги

mkdir -p /usr/src/redhat/SRPMS
mkdir -p /usr/src/redhat/RPMS/{i386,x86_64}

Компилим ядро

make rpm

Устанавливаем

rpm -ihv /usr/src/redhat/RPMS/x86_64/kernel-3.0.78.x86_64.rpm

и перезагружаемся

Если при загрузке ОС система не увидит диск, то загрузитесь со старым ядром и добавьте в /etc/modprobe.conf строку

alias scsi_hostadapter hv_blkvsc

другие упоминания scsi_hostadapter следует закомментировать или убрать
после этого переустановите ядро из rpm заново или пересоберите initrd

удаляем старый

rm -f /boot/initrd-3.0.78.img

делаем новый

mkinitrd /boot/initrd-3.0.78.img 3.0.78

XpycT

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *