August 10, 2006


[cluster] auto_install以文找文

自動安裝與設定 Linux 系統是 cluster 管理很重要的一環。為了方便起見,我希望新機器進來時,可以經由 PXE 網路開機,並且透過網路將已安裝好的機器的 Linux 系統整個移植拷備過來。這麼做有個好處,就是通常為了工作需要,我們常會額外安裝一些軟體,或者對系統進行特別調整。藉由直接移植拷備的方式,可以將這些額外的東東也一起移植過來,而不需要像每次重新安裝時那樣要重頭做過一遍。

而透過網路移植拷備舊有 Linux 系統過來,所需的工作其實很單純,包括以下步驟:

分割硬碟,建立檔案系統

要做到自動化分割硬碟,必須使用 sfdisk。它是讀入一個 input 檔,根據該檔案的描述來做硬碟分割。此設定檔的詳細格式得參考 man sfdisk。以下是簡單的例子:

    ,2031,83,*
    ,1354,82,
    ,1354,83,
    ,,83,
這個檔案的各欄位是以逗號分隔的,第一欄是 partition 的開頭位置,不填的話預設就是一直接續下去,第二欄是 partition 的大小,不填代表剩下全部的空間,第三欄是 partition / filesystem type,第四欄是 bootable mark。

partition 的大小是以 cylinder 個數為單位,而利用 fdisk -l 可以查出該硬碟一個 cylinder 的大小為何。因此,就上頭的例子,可將這顆硬碟分割成四個 partition,第一個佔 2031 cylinders,是 Linux partition,bootable;第二個佔 1354 cylinders,是 Linux swap partition,以此類推。

如果要分割的硬碟是 /dev/hda,則所需的指令為:

        sfdisk /dev/hda < input_file
其中 input_file 的內容就是上述的 input 檔。

分割完之後,接下來就是 mkswap 來初始化 swap 分割區,mke2fs 來格式化 ext3 filesystem,以及 tune2fs 來設定 ext3 filesystem 的相關參數 (包括 partition label) 等等。要注意的是,新機器上的 /etc/fstab 必須對應目前正確的 partition 分割方式。

除此之外,在新機器上的 /etc/fstab 也要記得將 virtual filesystem mount 上來,包括 /proc,/sys,/dev/pts,以及 /dev/shm 等。

透過 NFS 拷備 Linux 系統

使用 cp -a 可以將 server 端的檔案、目錄、包括權限、時間、所有者等資料全部拷備過來。但在拷備時要注意有些目錄底下的檔案是 kernel 在運作時所產生的虛擬檔案,而不是實際檔案,這些檔案是不能拷過來的,否則的話將會造成 client 這邊系統重開機運作時,kernel 產生不正確的虛擬檔案,而無法運作。因此,對於這些目錄,我們只要準備空目錄就好,包括:

      /proc,  /sys,  selinux,  /media (for Fedora),  /dev (for udev facility)

設定 boot loader

這裡我採用 grub,其指令為:

    grub-install --no-floppy --recheck --root-directory=/mnt/new /dev/

設定網路

這裡主要要設新灌好的系統的 IP、hostname、以及其網路介面。IP 與網路介面的設定檔各家 Linux 不同:

  • For Debian: /etc/netowrk/interface
  • For Fedora: /mnt/new/etc/sysconfig/network-scripts

建立使用者環境

這裡包括建立使用者的 user home directories、以及為他們準備一些必要的檔案等。可以參考 /etc/passwd 來為已有帳號的 user 來準備他們所需的環境。

其他 /etc 底下的設定檔調整

例如 smartd 的設定檔 (修改硬碟的 device)、或者 sendmail 相關的 hostname 設定等。

工作完成,準備重開機

在重開機前,必須將已 mount 上來的 NFS 及硬碟上的 filesystem 全部 umount 掉。



Posted by at 天空部落 │16:28 │回應(0)引用(0)未分類
相關閱讀

引用URL

http://blog.yam.com/thhsieh/trackback/6322520
回應文章