若干台相同配置,已安装相同操作系统的机器,现在需要更新所有机器上的内核,可以采用在一台上编译好内核,然后拷贝相关文件至其它机器上的策略:
总结操作步骤如下:
(0)选择某台机器,编译好内核
(1) 拷贝启动相关文件
/boot/vmlinuz-2.6.34.7
/boot/initrd-2.6.34.7.img
(/boot/System.map-2.6.34.7)
(2) 拷贝模块文件所在目录
/lib/modules/2.6.34.7
拷贝之前,我们查看一下目录,我们发现有两个软链接指向了 内核的源码,他们是 build 和 source,模块文件如下:
[root@linuxidc 2.6.34.7]# ll /lib/modules/2.6.34.7
总计 1492
lrwxrwxrwx 1 root root 33 2010-10-07 build -> /local/kernel-perf/linux-2.6.34.7
drwxr-xr-x 10 root root 4096 2010-10-07 kernel
-rw-r--r-- 1 root root 350090 2010-10-07 modules.alias
-rw-r--r-- 1 root root 4859 2010-10-07 modules.builtin
-rw-r--r-- 1 root root 69 2010-10-07 modules.ccwmap
-rw-r--r-- 1 root root 164911 2010-10-07 modules.dep
-rw-r--r-- 1 root root 147 2010-10-07 modules.ieee1394map
-rw-r--r-- 1 root root 218 2010-10-07 modules.inputmap
-rw-r--r-- 1 root root 3161 2010-10-07 modules.isapnpmap
-rw-r--r-- 1 root root 74 2010-10-07 modules.ofmap
-rw-r--r-- 1 root root 37267 2010-10-07 modules.order
-rw-r--r-- 1 root root 220774 2010-10-07 modules.pcimap
-rw-r--r-- 1 root root 463 2010-10-07 modules.seriomap
-rw-r--r-- 1 root root 142681 2010-10-07 modules.symbols
-rw-r--r-- 1 root root 541379 2010-10-07 modules.usbmap
lrwxrwxrwx 1 root root 33 2010-10-07 source -> /local/kernel-perf/linux-2.6.34.7
若使用 scp 命令直接拷贝 /lib/modules/2.6.34.7 目录到其它机器上< scp -r /lib/modules/2.6.34.7 /lib/modules >,它会将 build,source所指向的真实目录拷贝到其它机器上。拷贝过去后,新机器上的 /lib/modules/2.6.34.7 目录下将会有 build 和 source 两个目录,而不再是软链接了,目录下的内容也就是原机器上的 /local/kernel-perf/linux-2.6.34.7 下的内核源码。由于源码较大,所以这样拷贝两次会消耗很大时间,所以不建议这样做。