Centos 5 добавление модулей в ядро (PXE)

Берем файлы: pvscsi.ko, vmxnet.ko, vmxnet3.ko из vmware-tools -> https://packages.vmware.com/tools/releases/latest/rhel5/x86_64/index.html

 

 
1. Распаковываем RPM: 
rpm2cpio VMwareTools-4.0.0-latest.i386.rpm | cpio -idmv

 

Далее берем исходный файл загрузки ядра initrd.img расположенный в каталоге isolinux, дистрибутива Linux.

Распаковываем его во временную папку: 

gzip -dc ~/tmp/initrd.img | cpio -ivd

Внутри распаковываем модули ядра modules.cgz:

cd modules
gzip -dc modules.cgz | cpio -ivd

 

Копируем в него файлы модулей pvscsi.ko, vmxnet.ko, vmxnet3.ko. 

В файлы списка модулей добавляем строки (обязательно проверить использование пробелов и табуляции, как и в строчках выше по файлу).

~/tmp/modules/module-info

 

pvscsi
        scsi
        "VMware PVSCSI driver"
vmxnet
        eth
        "VMware vmxnet ethernet driver"
vmxnet3
        eth
        "VMware vmxnet3 ethernet driver"

~/tmp/modules/modules.alias

 

alias pci:v000015ADd000007C0sv*sd*bc*sc*i* pvscsi
alias pci:v000015ADd00000720sv*sd*bc*sc*i* vmxnet
alias pci:v00001022d00002000sv*sd*bc*sc*i* vmxnet
alias pci:v000015ADd000007B0sv*sd*bc*sc*i* vmxnet3

~/tmp/modules/modules.dep 

 

 

pvscsi: scsi_mod

~/tmp/modules/pci.ids

 

15ad  VMware
        0405  SVGA II Adapter
        0710  SVGA Adapter
        07c0  PVSCSI SCSI Controller
        0720  VMXNET Ethernet Controller
        07b0  VMXNET3 Ethernet Controller

Запаковываем файл modules.cgz и удаляем папку ядра:

 

find 2.6.18-164.el5 | cpio -H newc -ov | gzip -9 -c - > modules.cgz
rm -rf 2.6.18-164.el5

 

Запаковываем initrd.img

 

cd ..

find . | cpio -H newc -ov | gzip -9 -c - > initrd.img

 

Далее готовый файл загрузчика возвращаем в дистрибутив Linux.

 

 

--------------------------------------------------------------------------------------------------------------

Обновление initrd на "живой" машине.

--------------------------------------------------------------------------------------------------------------

1) Берем живой initrd из boot:

cp /boot/initrd-2.6.18-419.el5.img /tmp/initrd-2.6.18-419.el5.img 

2) Распаковываем: 

gzip -dc /tmp/initrd-2.6.18-419.el5.img  | cpio -ivd

3) Копируем модули pvscsi.ko, vmxnet.ko в initrd после распаковки в папку lib.

4) Дописываем в файл init:

echo "Loading pvscsi.ko module"
insmod /lib/pvscsi.ko                                                                                                                                                                                             
insmod /lib/vmxnet3.ko                                                                                                                                                                                            
insmod /lib/vmxnet.ko

5) Собираем назад и кладем в boot:

find . | cpio -H newc -ov | gzip -9 -c - > initrd-2.6.18-419.el5.img