Linux下相同配置的機器間核心拷貝【一台編譯,多台拷貝】

來源:互聯網
上載者:User

若干台相同配置,已安裝相同作業系統的機器,現在需要更新所有機器上的核心,可以採用在一台上編譯好核心,然後拷貝相關檔案至其它機器上的策略:

總結操作步驟如下:

(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@gd86 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 下的核心源碼。由於源碼較大,所以這樣拷貝兩次會消耗很大時間,所以不建議這樣做。

       我們可以將 /lib/modules/2.6.34.7 目錄打包後傳送到目標機器上(使用scp或者ftp),然後再目標機器上進行解壓,解壓後的  /lib/modules/2.6.34.7 下仍會有 build 和 source 兩個軟連結。而此後,我們只需要將核心源碼拷貝到目標機器上就可以了(第3步),操作步驟如下:

gd86:

[root@gd86 modules]# cd /lib/modules/

[root@gd86 modules]# tar czvf  2.6.34.7.tar.gz 2.6.34.7

[root@gd86 modules]# scp 2.6.34.7.tar.gz gd87:/lib/modules/

gd87:

[root@gd86 modules]# cd /lib/modules/

[root@gd86 modules]# tar zxvf  2.6.34.7.tar.gz  (解壓成功後目錄下仍有 source 和 build 兩個軟連結)

(3) 拷貝核心源碼

      /local/kernel-perf/linux-2.6.34.7

     可以先壓縮後再拷貝。

(4)修改 /etc/grub.conf 檔案

        title 2.6.34.7
        root (hd0,0)
        kernel /vmlinuz-2.6.34.7 root=LABEL=/ ro
        initrd /initrd-2.6.34.7.img 

附:Linux 軟連結複製相關知識

在某台機器下,若存在一個目錄A,目錄中存在軟連結,該軟連結指向當前機器的其它目錄,當在本機器中拷貝目錄A時,拷貝完畢後,軟連結仍有效。

[root@gd86 ~]# ll cp_test
總計 0
-rw-r--r-- 1 root root  0 10-31 08:30 a
-rw-r--r-- 1 root root  0 10-31 08:31 b
lrwxrwxrwx 1 root root 14 10-31 08:31 data_1 -> /root/zkl/data
lrwxrwxrwx 1 root root 14 10-31 08:31 data_2 -> /root/zkl/data

[root@gd86 ~]# cp -r cp_test cp_test1
[root@gd86 ~]# ll cp_test1
總計 0
-rw-r--r-- 1 root root  0 10-31 08:32 a
-rw-r--r-- 1 root root  0 10-31 08:32 b
lrwxrwxrwx 1 root root 14 10-31 08:32 data_1 -> /root/zkl/data
lrwxrwxrwx 1 root root 14 10-31 08:32 data_2 -> /root/zkl/data

若將本機器的A目錄拷貝到其它機器上,scp -r cp_test gd87:~/  則會將軟連結指向的真實目錄拷貝到目標機器上

[root@gd87 ~]# ll cp_test/
總計 8
-rw-r--r-- 1 root root    0 10-31 08:34 a
-rw-r--r-- 1 root root    0 10-31 08:34 b
drwxr-xr-x 2 root root 4096 10-31 08:34 data_1  目錄下是真實內容,data_1 不再是軟連結了。
drwxr-xr-x 2 root root 4096 10-31 08:34 data_2

若想複製成功後,原目錄下的軟連結不變,則需要先將目錄打包,然後傳送過去後做解壓。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.