Изменение initramfs

Недавно возникла ситуация, когда после аварии системы охлаждения упал сервак. Ремонт сделали, но он упорно не хотел подниматься на том ядре, на котором он должен был. Матерился на то, что модуль ehci-hcd вызывает сбой, который приводит ядро в панику. Поскольку на том сервере нахер не нужен USB я решил не заморачиваться, а просто исключить его из списка загружаемых модулей.
Итак. Копируем куда-нибудь initrd образ и распаковываем его:

cp /boot/initrd-2.6.25.img ~/temp/
mv initrd-2.6.25.img initrd-2.6.25.img.gz
gzip -d initrd-2.6.25.img.gz
cpio -ic < initrd-2.6.25.img
rm initrd-2.6.25.img

Далее комментируем или удаляем строчки (тут приведены для моего случая):

#echo "Loading ehci-hcd.ko module" 
#insmod /lib/ehci-hcd.ko 
#echo "Loading ohci-hcd.ko module" 
#insmod /lib/ohci-hcd.ko 
#echo "Loading uhci-hcd.ko module" 
#insmod /lib/uhci-hcd.ko 
#mount -t usbfs /proc/bus/usb /proc/bus/usb

После этого нам остается упаковать обратно образ и залить его в /boot:

find . -print | cpio -oc | gzip -9 -c > ../initrd.new.img
cp initrd.new.img /boot/initrd.new.img

Ну и, естественно, внести изменения в /boot/grub/menu.lst

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

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