歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> ALPHALinux親密接觸

ALPHALinux親密接觸

日期:2017/2/27 9:21:26   编辑:更多Linux
  機房裡面有幾台“相約九八”那一年購買的 Alpha 老服務器,跑了幾年 Alpha NT4.0 ,分別為辦公局域網提供服務。幾個機器一直有事無事“罷工”,經常要去控制面板重起服務甚至重起機器,不堪其煩。最可惡的是比爾蓋茨竟然宣布不再支持這種架構了,升級打補丁都找不到人管了。 Alpha NT 平台下其實什麼都不能運行,一般基於 Intel 平台編譯的軟件不能正常運行,連“ WinZip ”都沒有;更有甚者,想增加一塊 3Com 網卡,奈何沒有 Alpha 平台的驅動,總不能一直買 Dec 片子的卡吧,於是決定換操作系統。 COMPAQ 的 TRU-64 給了一個天文數字的報價,想來想去還是Linux吧,經過多方檢索索,發現 Alpha Redhat 6.2 算是一個比較經典的版本,參考資料也比較多,於是決定用之。 拼死拼活下載了 Alpha Redhat 6.2 的 ISO 文件,刻成光盤。仔細閱讀 readme 文件,同時搜刮redhat 和 compaq 的網站下載秘籍,為了方便閱讀,打印之。     先折騰 AS800 的機器,這樣的機器我們有三台,兩個 AS800 ,還有一個是 DS3300 ,據介紹 DS3300 是 AS800 的“白殼”版本,除了機殼是白色的而 AS800 是蘭灰色,其他都一樣。後來又折騰了一個 AS1200 的機器,大同小異,這裡一並介紹。     Alpha 的 BIOS 分為 SRM 模式和 AlphaBios 兩種狀態, SRM 是命令行的,類似 Unix 的界面, AlphaBios 是圖形界面,主要用於啟動 Windows NT 。 Linux 在兩種狀態都可以啟動, SRM 模式用 aboot , AlphaBios 下用 milo.exe ,由於 Milo 需要針對具體機型預先編譯好的內核,正好我這種機器找不到,於是就決定用 SRM 狀態了。按下面板上的 HALT 按鈕,啟動機器,系統就自動進入 SRM 模式而不啟動 Alphabios 。 SRM 模式的提示符是“ >>> ”。     據秘籍介紹,Alpha下的Linux是有SRM調用aboot來啟動的,比PC機上的lilo要古怪許多,而且九八年的老版本的SRM是不支持調用 Aboot 的,於是第一個難關就是升級 SRM 的 Firmware , AS800 的最新 Firmware 是 5.8 的, AS1200 的最新版本是 6.0 的,在 compaq 網站能下載,一並下載。 AS800 的原 Firmware 不支持軟盤升級,只好祭起bootp+tFTP 的法寶,將我的筆記本(預裝有 Linux )啟動到 Linux 系統,配置 dhcpd.conf 主要在 subnet 區域中加上:   allow bootp;   allow booting;   filename "/tftproot/as5.exe";   然後在根目錄建立一個叫 tftproot 的子目錄,將 AS800 的刷新文件拷貝到此目錄並且改名教 as5.exe ,在將 /etc/inetd.conf 中 tftp 這一行前面的 # 去掉,啟動 dhcpd 和重起 inetd 。將筆記本網卡和 AS800 用交叉線連接起來,啟動啟動 AS800 將自動進入刷新程序。 AS1200 支持軟盤更新,在 SRM 命令行下輸入 lfu ,系統提示選擇升級程序來源,選擇軟盤 DVA0 ,然後就進入升級界面,用 update 命令就可以完成升級。需要注意的是我的 AS1200 的 Firmware 版本是 5.1 的,系統不支持從 5.1 直接升級到 6.0 ,要先升級到 5.3 ,好在升級到 5.3 只需要一張軟盤,然後再用兩張軟盤升級到 6.0 , COMPAQ 的說明文件上講 6.0 是三張軟盤,其實第三張用不著。和 Intel 機器刷新 BIOS 一樣,升級的過程中不能關機或重起,一定要等到升級結束。     然後是准備硬盤,在 AS800 下有 exer 命令,可以對硬盤進行低級格式化, AS1200 中沒有(或者叫別的什麼名字而我沒有找到),所以這一步干脆省略。然後是把硬盤寫保護打開,先 show dev 查看一下硬盤和光盤的設備編號,比如我的 AS1200 機器上光盤是 DKA400 ,硬盤有三個 DKB0 、 DKB100 和 DKB200 ,用 chmod +w dkb* 打開寫保護。由於這些機器原來裝有 NT 所以要讓 SRM 下次啟動不再進入 AlphaBios ,用 set auto_action halt 就可以確保下一次啟動還在 SRM 下面。     終於可以開始安裝 Linux 了,將光盤放入光驅,使用命令:   boot dka400 -file kernels/generic.gz -flags "root=/dev/scd0"   系統啟動以後基本安裝界面與基本與PC版本相同,需要留意的是對啟動硬盤進行分區的時候一定要為 aboot 留下相應的空間,而且 SRM 不支持啟動普通格式的 Partition Table ,所以用來啟動的那塊硬盤上應該是用 BSD 風格的 Disk Label 分區格式。所以在選擇安裝模式的時候一定要選擇“ Custom ”,然後在對硬盤進行分區之前點下“Use Fdisk”的按鈕,由fdisk程序進行分區(不知道為什麼其DiskDruid和自動分區為什麼分的不對)。對啟動盤(比如 dkb0 在 Linux 下叫 sda )進行分區的時候需要注意:在 Fdisk 下使用 b 命令先進入 BSD 格式分區,用 d 刪除現有的所有分區,然後用 n 建立至少 3 個分區,注意磁道 0-15 要空出來給 aboot 使用,也就是說第一個分區從 16 道開始,建立一個約 50M 的 ext2 格式分區編號為“ a ”,然後建立一個 256M 的 swap 分區“ b ”,最後剩下的作一個主分區“ c ”。將 50M 的分區掛在 /boot 目錄,大分區作為“ / ”,剩下其他的硬盤就可以按照普通的方式全部進行分區了。注意在 Diskdruid 中顯示 sda 應該是沒有占滿 100% 。如下是我的系統啟動盤的分區表:   # /sbin/fdisk /dev/sda   Device contains neither a valid DOS partition table, nor Sun or SGI disklabel   Building a new DOS disklabel. Changes will remain in memory only,   until you decide to write them. After that, of course, the previous   content won't be recoverable.   Command (m for help): b   Warning: starting partitions at cylinder 1 will be bad for the health of your   partition table -- start at cylinder 2 instead!   BSD disklabel command (m for help): p   3 partitions:   # size offset fstype [fsize bsize cpg]   a: 80325 240975 ext2 # (Cyl. 16 - 20)   b: 530145 321300 swap # (Cyl. 21 - 53)   c: 7518420 851445 ext2 # (Cyl. 54 - 521)   這一步一定要留意,我就是開始沒有注意這樣的分區方式總是安裝以後無法啟動,造成一次次的白裝。   安裝完畢以後系統會回到 SRM 狀態,使用   boot dkb0 -fl 0   就可以啟動系統了,然後在 Linux 中用 setup 設置好 X-window 環境和關閉一些不用的啟動選項,比如我要自行編譯新的 Apache ,所以系統原配的 httpd 就關了,還有一個叫 Kuduz 的是檢測新硬件的,服務器不用經常改硬件,所以也關閉了。     系統原配內核是 2.2.14 的,建議升級,當然要是升級到 2.4 的話同時需要更新很多系統庫,所以還是升級到 2.2 的較新版本為好,經過測試 2.2.20 不能在 Alpha 平台編譯,好像是 PCI 驅動那一塊出了什麼問題,所以我用的是 2.2.19 。和 Intel 版核心不同,編譯 Alpha 版本的核心用這樣的命令:   #make mrproper   #make menUConfig   #make dep   #make boot   #make modules   #make modules_install   在 make menuconfig 的時候可以根據現有 /proc/cpuinfo 中的系統類型來選擇合適的 CPU 類型,這樣可以減少核心的冗余從而提高系統運行效率,比如我的 AS800 的 CPU 類型是 Noritake , AS1200 的類型是 Rawhide 。將需要的硬件驅動都編譯進去, SCSI 卡和網卡可以參看 /var/log/dmesg 文件,比如我的 AS1200 的 SCSI 卡是需要 NCR53c8xx 和 Qlogic ISP 的驅動,而 Alpha 的 Server 一般都是用的 DEC 的芯片網卡,所以使用 Tulip 的網卡驅動。還要注意的就是在分區格式選項中要加上 BSD 風格分區的支持,否則新核心啟動時會 Kernel Panic 。     編譯完畢以後到 arch/alpha/boot 目錄下會看見新的核心 vmlinux.gz ,將其拷貝到 /boot 目錄,同時改為一個比較簡單的名字,比如 mykernel 。再把核心源程序目錄下的 System.map 拷貝到 /boot 目錄。然後編輯 /etc/aboot.conf 增加一句:   1:1 /mykernel root=/dev/sda3   用 #halt 命令關閉 Linux ,重新回到 SRM 模式,作如下設置:   >>>set os_type UNIX   >>>set boot_osflages 1   >>>set auto_action boot   >>>boot   這樣就可以啟動新版本的核心了。     以後如果要安裝什麼新軟件,要是二進制文件則需要尋找專門為 Alpha 編譯的,其實最簡單的是直接找源碼在此平台重新編譯就可以了,我在一個 AS800 上運行了 Bind9 作為 DNS 服務器,一個運行 DHCP2 作為動態地址分配服務器,還有一個用 ipchains 作 IP 偽裝防火牆,還有一個 AS1200 運行 Apache 1.3.24+PHP4.2.0+mysql3.23.48 作為 Webserber 。 Alpha 系統相當穩定高效。 As1200 是新裝的,其他 AS800 到現在已經連續運行半年非常穩定。




Copyright © Linux教程網 All Rights Reserved