最初我是用 kernel 官方版本的 sorce code 編譯 + CentOS make InitRamFs "dracut -f" 安裝, 但遇上了 Driver Signature 的問題一直不能解決. 想了想後決定用 SRPM 來完成. 比較之後 以 SRPM 編譯成 RPM, 然後以這個 RPM 來安裝是最簡單的方式. 它避開了 Driver Signature 的問題.
Download The CentOs Kernel-3.10.0 Source RPM
# cd ~ # wget http://buildlogs.centos.org/c7.1511.00/kernel/20151119220809/3.10.0-327.el7.x86_64/kernel-3.10.0-327.el7.src.rpm ...
Install The CentOs Kernel-3.10.0 Source RPM or Use `rpm2cpio` to Extract it
# rpm -ivh kernel-3.10.0-327.el7.src.rpm ...
# rpm2cpio kernel-3.10.0-327.el7.centos.x86_64.rpm | cpio ivd # ls BUILD BUILDROOT RPMS SOURCES SPECS SRPMS
Edit The Default Kernel Config File
# cd /usr/src/ # cd ./SOURCES/ # vi kernel-3.10.0-x86_64.config ...
Change The Ramdisk Count to 2 And Size to 4GB
.... CONFIG_BLK_DEV_RAM_COUNT=2 CONFIG_BLK_DEV_RAM_SIZE=4194304 ....
Build The RPM from The Given Source RPM (takes long time)
#### kernel-3.10.0-x86_64.config # cd /usr/src/ ... # cd ./SOURCES/ # rpmbuild -ba kernel.spec ....
Install The New Compiled RPM
# ls RPMS/x86_64/kernel-3.10.0-327.el7.centos.x86_64.rpm ... # rpm -ivh RPMS/x86_64/kernel-3.10.0-327.el7.centos.x86_64.rpm ...
Or We Update The New Compiled Modules `rbd.ko`
# ls RPMS/x86_64/kernel-3.10.0-327.el7.centos.x86_64.rpm ... # mkdir -p tmp ; cd tmp # rpm2cpio kernel-3.10.0-327.el7.centos.x86_64.rpm | cpio -ivd ... # cp /lib/modules/3.10.0-327.el7.x86_64/kernel/drivers/block/rbd.ko /lib/modules/3.10.0-327.el7.x86_64/kernel/drivers/block/rbd-backup.ko # cp lib/modules/3.10.0-327.el7.x86_64/kernel/drivers/block/rbd.ko /lib/modules/3.10.0-327.el7.x86_64/kernel/drivers/block/ ...
Format the 4G Ramdisk
# vi /etc/rc.local ... mknod -m 640 /dev/ram0 b 1 0 mknod -m 640 /dev/ram1 b 1 1 mkfs -t ext2 /dev/ram1 mkfs.xfs -f ext2 /dev/ram1 mkdir -p /mnt/ram1 mount /dev/ram1 /mnt/ram1 ... # reboot ...
# df -m ... /dev/ram1 4086 33 4054 1% /mnt/ram1 ...
文章標籤
全站熱搜