Chuks Onwuneme(
[email protected]),程序員,IBM
Farhan Khawaja(
[email protected]),軟件專家,IBM
2002 年 4 月
有可以使用的多個 Linux 安裝允許您方便地測試同一個程序的不同庫,觀察您的程序如何與其它程序交互,或者只是到處調節一下參數看看會發生什麼。這對開發和測試 — 以及客戶支持遲早有用。假定您沒有許多機器嗎?別擔心 — 在單台機器上安裝多個 Linux 實例是件容易的事,因為您將很快從這篇技巧中發現這一點,這篇技巧文章是由 IBM 實習生 Chuks Onwuneme 和 Farhan Khawaja 編寫的。
作為 IBM Developer Relations 的合作人員,我們的任務涉及幫助技術支持人員回答客戶的問題(換句話說,我們幫助 Help Desk)。我們主要使用 IBM WebSphere 產品 — 經常遇到的一種情況是需要擺弄機器以重現實際的客戶問題。
從文字上說,重現每個問題意味著要有與客戶完全一樣的系統,當然,通過在每個驅動器上進行分區並運行多個系統來這樣做要比針對每個系統使用單獨的機器有效得多。因此,好幾個月前,我們從每個系統一台機器的方法轉換為每台機器多個系統的方法。
現在,我們可以(例如)在同一個操作系統上運行 IBM WebSphere Application Server 的兩種不同版本。要做的只是將大驅動器(我們實驗室的驅動器通常是 19 G)分成兩個分區,在每個分區上安裝操作系統,然後在每個分區上安裝 Websphere Application Server 的一個版本。這樣,我們就有了運行在一台機器上的相似環境的多個副本。
在 IBM 實驗室中,我們使用各種操作系統,包括幾種 Microsoft Windows 和 NT 衍生系統(windows 2000 Server 和 Professional,NT Server 和 NT Professional)以及 AIX 和 linux(Red Hat 6.2)。
Microsoft 系統包含了一個用於多個操作系統安裝的實用程序,並且很容易實現了轉換。但是,由於我們是 linux 新手,Red Hat 系統給我們帶來了一些麻煩,特別是因為難以找到簡便、清晰的文檔來指導我們。因而我們提供了這篇技巧文章,希望那些可能面臨同樣問題的 Linux 新手會方便地找到該文檔,並且發現它清晰、精練和易於使用。如果我們成功了,請一定要告訴我們(可以在本文的頂部和底部找到我們的電子郵件地址)。
我們的技巧文章涉及在單個驅動器上安裝同一 linux 發行版的多個實例(我們在實驗室中使用 Red Hat)。但是,只要稍作調整(或者在參考資料中所列出的某些文檔的幫助下),對於創建一台雙引導不同的 Linux 或者 Linux 和非 Linux 操作系統組合的機器來說,應該是沒有問題的。
在這篇技巧文章中,我們使用 Red Hat 的一個老版本,因為我們曾嘗試構建與客戶完全相同的系統。因此,這裡使用的 Red Hat 版本是幾年前的,並且使用較早的 2.2 內核。較新的 linux 內核處理多引導的方式有所不同。出於安全性原因,在任何情況下,您應盡可能升級到較新的 Linux 2.4(.x) 內核版本,則這樣做是明智的。另外,現在大多數 Linux 安裝都提供 GRUB 來替換 LILO 或作為對它的補充。這一特性提供了處理 Linux 多引導功能的更先進方法。這樣,如果您正在使用不用 LILO 的較新版本,則下列技巧可能不會十分有用 — 但是如果您的版本使用 LILO,則它是不可缺少的。
Red Hat 雙引導:安裝指令
當您准備開始本過程時,首先關閉系統,然後重新啟動它。接著將 Red Hat linux CD 放入驅動器。
Red Hat linux 安裝例程將指導您完成一個很簡單的安裝過程。您將必須完成一些基本的系統配置,如選擇缺省語言以及鍵盤類型等。輸入正確的信息,直到出現“Partitions”屏幕。
當該屏幕出現時,單擊“add”按鈕,然後選擇“linux Native”作為操作系統的類型。對於“size”,輸入 16(兆字節),然後選擇 /boot 作為分區類型。下面給出了其余的配置,並且對於特定分區,可以通過重復上面的指令來完成配置。
/boot sda1 16M linux native
/ sda5 1024M linux native
swap sda6 256M linux swap
/var sda7 200M linux native
/tmp sda8 200M linux native
請注意,這些目錄位置是針對 SCSI 驅動器的。對於 IDE 驅動器,只要簡單地用 h 替換 sdal 中的 s(讓您的 hda1 作為 /boot 驅動器,讓 hda5 作為 root 驅動器等)。
還請注意,上面使用的大小適合於我們的硬件 — 它們並不是強制性的。您可以靈活地選擇適合您硬件的任何大小,特別是因為當前較新的硬件可以支持各種配置。但是,您並不要將太多空間分配給“/boot”分區,因為大部分空間將最終被浪費 — 在最新的硬件上,您將可能想要一個比我們的引導分區還小的引導區。同樣,對於其它分區可以使用其它大小。
安裝標記 2
現在,您准備安裝 linux 內核的第二個實例了。遵循下列簡單原則:
* 再次將 lilo 安裝在主引導記錄(Master Boot Record (MBR))上
* 使用線性方式(對於 SCSI 驅動器嚴格需要)
* 使幾個內核參數保持為空
初始安裝分區應該仍然標記為“Not Set”。將它們保留為 Not Set,然後通過單擊“add”並按照上面指定的那樣安裝以添加 5 個新的分區。只需要一直添加新分區,不需要刪除或編輯以前安裝的分區。
其余安裝保持不變。可以使用您喜愛的任何名稱(我們使用 linux2)。但是,如果標號有多個字,請確保用引號將它們括起來(即,如果想保留空格,請使用“linux 2”)。當然,請確保使用與第一個不同的名稱來標記第二個安裝。
安裝之後,系統重新引導並出現提示。按 Tab 鍵:這會顯示第二個 linux 安裝的標號。輸入“linux2”(或者您為第二個映象起的任何名稱),然後按 Enter,這將調出您剛安裝的第二個 Linux 系統。
編輯 lilo.conf
接下來,我們將編輯 LILO(linux 裝入器)配置文件 lilo.conf,以添加一個記錄告訴 Linux 關於我們完成的第一個安裝的信息。
要做到這一點,轉至 /etc 目錄然後用您喜歡的編輯器打開 lilo.conf 文件(您可能想首先建立一個備份副本,只是為以防萬一)。lilo.conf 代碼類似於:
boot=/dev/sda #this points to the boot device
timeout=300 #if no activity in the specified time, load default image
linear
prompt
Default="linux2" #Linux1 will be displayed at the prompt
Vga=normal #video mode
read-only
map=/boot/map
Install=/boot/boot.b
image=/boot/vmlinuz=2.2.14-5.0 #location of boot image
Label="linux2" #label
initrd=/boot/initrd-2.2.14-5.0
Root=/dev/sda10 #location of root partition
注:計算機忽略注釋(由 # 或者井號開頭)。這裡包含它們以便您能正確了解每一行的用途 — 不必在您系統上的 lilo.conf 文件中包含這些注釋,除非想保留它們以供參考。
同樣,如果使用 IDE 驅動器,記住使用 hda 來替換 sda。
配置 LILO 的另一種方法
這裡是一種編輯 lilo.conf 文件的替代方法。
1. 打開一個終端窗口,然後轉至“/root”目錄並輸入 linuxconf。這會把您帶到 linux 命令窗口,在那您可以配置系統。
2. 向下滾動直到 Boot mode。在“boot mode”下,您應該看見配置 LILO 的選項。選擇菜單上的第二項“Configure LILO linux configurations”,然後單擊“LILO Linux configurations”選項卡。
3. 單擊“Add”。然後可以添加其它 linux 引導分區和內核文件的位置。如果不確定要在每個字段添加什麼信息,在輸入前,請查看已經列出的內容。
看一下上面的 lilo.conf 文件,您會注意到它屬於標號為 linux2 的 linux 安裝,即,安裝過程期間我們安裝的第二個。現在,要使 LILO 雙引導安裝在 /sda5(對於 IDE 驅動器是 /hda5)分區上的第一個 Linux 實例,則緊接著最後一行添加下列內容:
image=/boot/vmlinuz=2.2.14-5.0
label="linux1"
initrd=/boot/initrd-2.2.14-5.0
root=/dev/sda5
因此,編輯以上代碼之後,最終的文件應該類似於:
boot=/dev/sda
timeout=300
linear
prompt
default="linux2"
vga=normal
read-only
map=/boot/map
install=/boot/boot.b
image=/boot/vmlinuz=2.2.14-5.0
label="linux2"
initrd=/boot/initrd-2.2.14-5.0
root=/dev/sda10
image=/boot/vmlinuz=2.2.14-5.0
label="linux1"
initrd=/boot/initrd-2.2.14-5.0
root=/dev/sda5
請確保如以上最後一行所完成的那樣指定 root 路徑,— 這一點非常重要。還要確保列出您在安裝期間使用的標號。
現在保存文件,然後在提示符上處輸入命令 lilo。這將重新編譯該文件,然後保存更新的配置。
注意:image/kernel 對於這兩個安裝是相同的(/boot/vmlinuz=2.2.14-5.0)。由於我們正在進行的是完全相同的系統的雙引導,正在從同一張 CD 上安裝,所以有相同的映象文件。如果正在安裝不同的發行版,則這些文件將會不同。
現在我們快要完成了。接下來,您想從終端發出重新引導命令:shutdown -r now。當計算機重新啟動時,出現 LILO 提示。按 Tab 鍵,您會看到:
linux2 Linux1
Boot:_
在 boot 提示符上,輸入 linux1 以引導進我們完成的第一個 Linux 安裝。引導起來後,需要進入其 lilo.conf 文件 — 這與我們剛為第二個映象編輯的配置文件非常相似,唯一的區別是缺省映象是 /sda5(如果有 IDE 驅動器,則為 /hda5),帶有標號“linux1”。我們將象對待另一個文件一樣編輯這個文件,在結尾處添加下列行:
image=/boot/vmlinuz=2.2.14-5.0
label="linux2"
initrd=/boot/initrd-2.2.14-5.0
root=/dev/sda10
這樣,整個文件的代碼將類似於:
boot=/dev/sda
timeout=300
linear
prompt
default="linux1"
vga=normal
read-only
map=/boot/map
install=/boot/boot.b
image=/boot/vmlinuz=2.2.14-5.0
label="linux1"
initrd=/boot/initrd-2.2.14-5.0
root=/dev/sda5
image=/boot/vmlinuz=2.2.14-5.0
label="linux2"
initrd=/boot/initrd-2.2.14-5.0
root=/dev/sda10
保存該文件,然後通過在命令提示符上輸入 lilo 來重新編譯它。再次發出重新引導命令;系統啟動後,還會提示您選擇 LINUX 引導。這次按下 Tab 鍵時,您將看到以下列表:
LINUX BOOT:
linux1 Linux2
Boot:_
這就完成了!您剛構建了一個雙引導 Red Hat linux 系統。要在不同分區上安裝任意多的映象或者安裝應用程序軟件的不同版本(正如我們對 WebSphere Application Server 和 DB2 所做的那樣),現在這對您來說已經是小菜一碟了。
參考資料
* 第一次對驅動器進行分區可以不再傷腦筋了。PowerQuest 提供了一個稱為 Partition Magic 的產品使該過程更簡便。
* VCOM 提供了一個競爭性產品,稱為 System Commander 2000,它差不多完成相同的任務。
* 本技巧文章中的示例都使用 LILO。您可能還想嘗試 GNU GRUB 多引導的引導裝入器,它是一種較新的實用程序,大部分作用相同但具有更多功能。
* 如果以前從未安裝過 linux,您會發現 Eric Raymond 編寫的 The Linux Installation HOWTO 有無可估量的幫助。關於故障排除或快速查看安裝幫助,請查看 HOWTO 的第 6 部分 Installation In Detail。
* LILO 的目的在於將 linux 和 Windows 安裝在一起。LInux LOader(因此稱為 LILO)有出色的文檔。但是,關於如何完成這一任務的預覽(或者快速版本),請參見 LILO mini-HOWTO 的第 3 項(The Simple Configuration)。
* 關於安裝一台帶有 linux 和其它操作系統的多引導機器的建議,請閱讀 Operating system flexibility(developerWorks,2000 年 12 月)。
* Win95 + WinNT + linux multiboot using LILO mini-HOWTO 詳細說明了如何使用 LILO 來代替使用 NT 的操作系統裝入器以多重引導混合 Windows 和 Linux 的環境。
* Dual booting Win2K and linux 一文概述了一種策略,顯示 Linux 如何識別 NTFS 分區為可引導的分區。
* 假定不是多個 linux 產生的問題,而是多個磁盤的問題(無論它們是否裝有多個 Linux)?那麼,您可能想看一下 Multi Disk System Tuning HOWTO。
* 不想每次必須重新引導以從一個 linux 映象切換成另一個?別擔心!Development for Multiple Linux Distributions mini-HOWTO 概述了一種用 chroot 的訣竅,它可以幫您解決難題。
* 有一種高端產品讓您同時運行多個操作系統 — 從而,比如說,可以在 linux 下運行 Windows 應用程序(!)— 那就是 VMware。
* 最後,為什麼只停留在把兩個、三個或十個數量不多的 linux 安裝在一台機器上呢?關於怎樣做到這一點,請閱讀 Earthweb 的 developer.com 上的 IBM 德國的程序員在一台大型機上運行 41,400 個 Linux 副本。
關於作者
Chuks Onwuneme 目前在德州大學 Arlington 分校學習計算機科學與工程學士課程。他期望在 2002 年 5 月完成該學位。Chuks 於 2000 年 6 月加入 IBM,開始是奧斯汀中心的 e-Business Operating System Solutions 的實習生,然後成為達拉斯的 Developer Relations, Internet and Network Computing 的合作人員。 您可以通過
[email protected] 或外部電子郵件
[email protected] 與 Chuks 聯系。
Farhan Khawaja 是達拉斯的 IBM 計算機科學與工程的實習生,他目前在德州大學 Arlington 分校攻讀計算機科學與工程學士學位。作為一名程序員,他使用 Java、C++、ASP 和 Visual Basic 進行開發。他的興趣包括 linux、體育運動和聽音樂。可以通過
[email protected] 與 Farhan 聯系。
到頁首
您對這篇文章的看法如何?
真棒!(5) 好文章 (4) 一般;尚可 (3) 需提高 (2) 太差! (1)
意見?
(c) Copyright IBM Corp. 2001, (c) Copyright IBM China 2001, All Right Reserved
關於 IBM 隱私條約 法律條款 聯系 IBM
* 不想每次必須重新引導以從一個 linux 映象切換成另一個?別擔心!Development for Multiple Linux Distributions mini-HOWTO 概述了一種用 chroot 的訣竅,它可以幫您解決難題。
* 有一種高端產品讓您同時運行多個操作系統 — 從而,比如說,可以在 linux 下運行 Windows 應用程序(!)— 那就是 VMware。
* 最後,為什麼只停留在把兩個、三個或十個數量不多的 linux 安裝在一台機器上呢?關於怎樣做到這一點,請閱讀 Earthweb 的 developer.com 上的 IBM 德國的程序員在一台大型機上運行 41,400 個 Linux 副本。
關於作者
Chuks Onwuneme 目前在德州大學 Arlington 分校學習計算機科學與工程學士課程。他期望在 2002 年 5 月完成該學位。Chuks 於 2000 年 6 月加入 IBM,開始是奧斯汀中心的 e-Business Operating System Solutions 的實習生,然後成為達拉斯的 Developer Relations, Internet and Network Computing 的合作人員。 您可以通過
[email protected] 或外部電子郵件
[email protected] 與 Chuks 聯系。
Farhan Khawaja 是達拉斯的 IBM 計算機科學與工程的實習生,他目前在德州大學 Arlington 分校攻讀計算機科學與工程學士學位。作為一名程序員,他使用 Java、C++、ASP 和 Visual Basic 進行開發。他的興趣包括 linux、體育運動和聽音樂。可以通過
[email protected] 與 Farhan 聯系。
到頁首
您對這篇文章的看法如何?
真棒!(5) 好文章 (4) 一般;尚可 (3) 需提高 (2) 太差! (1)
意見?
(c) Copyright IBM Corp. 2001, (c) Copyright IBM China 2001, All Right Reserved
關於 IBM 隱私條約 法律條款 聯系 IBM
到頁首
您對這篇文章的看法如何?
真棒!(5) 好文章 (4) 一般;尚可 (3) 需提高 (2) 太差! (1)
意見?
(c) Copyright IBM Corp. 2001, (c) Copyright IBM China 2001, All Right Reserved
關於 IBM 隱私條約 法律條款 聯系 IBM