官术网_书友最值得收藏!

第2章 Linux安裝及運行

管理和使用Linux進行實際應用的前提是對其進行安裝并運行。本章將著重介紹使用光盤方式安裝Red Hat Linux 9,并使用GRUB(GRand Unified Bootloader)引導器對其進行引導和運行Linux的相關知識。

2.1 自己動手安裝Linux(實務1)

2.1.1 了解Linux安裝的硬件需求

Linux內核運行對硬件要求很低,在很多嵌入式系統中使用的Linux內核還不到100KB。當然我們使用的Linux服務器版或者桌面版就比較龐大,以Red Hat Linux為例,其9.0版完全安裝大概要占用硬盤空間3.5GB,默認安裝占用硬盤空間1.3GB左右,推薦使用128MB以上內存,至于其Advanced Server則至少需要256MB內存。如果要在Linux下運行其他程序,如Oracle數據庫,那么這些程序可能對系統配置還有額外要求。

2.1.2 熟悉安裝方式

下面將以Red Hat Linux 9為例說明Linux的安裝方式。一般來說,Red Hat Linux 9可以使用三種安裝方式:光盤安裝、硬盤安裝和網絡安裝。

● 光盤安裝:光盤安裝是最理想和最簡單的安裝方式。2.13節將詳細講述這種安裝方式。

● 硬盤安裝:如果機器沒有光驅,或者沒有Red Hat Linux 9安裝光盤,那么可以考慮硬盤安裝方式。硬盤安裝前首先要將安裝光盤的ISO鏡像文件復制到硬盤的某個目錄下(Red Hat Linux 9安裝光盤有5個ISO文件,一般安裝過程使用前3個ISO文件即可)。解壓縮第一個ISO文件(假定解壓到e:\ shrike-i386-disc1目錄下),接下來就是制作Linux安裝軟盤,在DOS下安裝軟盤制作過程如下:

        cd e:\shrike-i386-disc1\dosutils       //改變當前目錄到rawrite所在目錄
        rawrite                                //執行rawrite程序
        ..\images\boot.img                     //指定Linux映像文件名
        a:                                     //指定安裝軟盤所在的驅動器

有了安裝軟盤后,用該軟盤做系統啟動盤啟動機器,即可見到如圖2-1所示的界面。按回車鍵后系統會詢問Red Hat Linux 9安裝ISO文件所在目錄,正確指定該目錄后的安裝過程和光盤安裝過程完全一樣。

圖2-1 選擇安裝界面

● 網絡安裝:Red Hat支持HTTP和FTP兩種協議的網絡安裝。適合于本地機器沒有光驅,而知道網上ISO文件所在URL的Linux安裝。網絡安裝也要制作系統安裝軟盤,并用該軟盤啟動機器,機器啟動后選擇圖像安裝或文本安裝均可,在接下來的安裝方式中選擇“網絡安裝”,指定安裝ISO文件所在的URL,接下來的操作步驟與光盤安裝類似。

2.1.3 動手安裝

下面以Red Hat Linux 9光盤安裝為例,詳細講述Linux的安裝過程。

(1)用光盤引導機器:首先用Red Hat的安裝光盤引導機器,正確引導后將出現如圖2-1所示的界面。直接按回車鍵將進入圖形安裝模式,如果想要采用字符安裝模式,輸入Linux text并回車即可。由于圖形安裝模式更直觀、更簡單,這里直接回車進入圖形安裝模式。

(2)介質檢查:選擇是否需要介質檢查,如圖2-2所示。這是事先檢查安裝光盤文件是否完整,有沒有損壞。如果確信光盤沒有問題,可以直接單擊【Skip】按鈕,如果確實想檢查可以單擊【OK】按鈕,但是一般檢查的時間卻較長。

圖2-2 介質檢查

(3)開始安裝:如圖2-3所示,系統顯示Red Hat Linux 9安裝歡迎信息,直接單擊【Next】按鈕進入下一個畫面。

圖2-3 開始安裝

(4)選擇安裝過程中的界面語言:如圖2-4所示,選擇安裝過程中的界面語言。此處筆者選擇的是“Chinese Simplified(簡體中文)”。單擊【Next】按鈕進入下一個畫面。

圖2-4 選擇安裝過程中的界面語言

(5)選擇鍵盤類型:如圖2-5所示,選擇系統鍵盤類型,一般使用US English 103鍵盤。如果系統使用的不是默認的鍵盤,請選擇其他類型。系統一般都能夠識別正確的鍵盤類型。選擇好鍵盤類型后,單擊【下一步】按鈕進入下一個畫面。

圖2-5 選擇系統鍵盤類型

(6)選擇鼠標類型:接下來的工作是選擇所使用的鼠標類型,如圖2-6所示。現在最常用的鼠標有兩種接口:一種是老式的PS/2鼠標,通過一個六針微型DIN接口與計算機相連;另一種是現在很流行的USB接口鼠標。系統一般都能夠正確識別用戶所使用的鼠標。在屏幕最下面有一個【模擬3鍵】復選框,這是為老式2鍵鼠標提供的功能。如果選擇該復選框,那么同時按下鼠標左鍵和右鍵就可以等同于3鍵鼠標按下中鍵。選擇好鼠標類型后單擊【下一步】按鈕進入下一個畫面。

圖2-6 選擇鼠標類型

(7)選擇安裝類型:如圖2-7所示,有四種安裝類型,個人桌面、工作站、服務器和定制。個人桌面一般適合于家庭使用,工作站一般適合于辦公使用,服務器類型一般都會默認安裝許多服務器軟件,定制則是用戶完全自己選擇需要安裝的軟件。

圖2-7 選擇安裝類型

(8)選擇分區設置:接下來是選擇分區設置。如圖2-8所示,用戶可以從“自動分區(A)”和“用Disk Druid手工分區(D)”兩種方式中選擇一個。如果選擇“自動分區(A)”,系統將根據用戶選定的安裝類型來建立分區,建立分區后可以再進行定制分區;如果選擇“用Disk Druid手工分區(D)”將進入手工分區界面。一般選擇“用Disk Druid手工分區”,單擊【下一步】按鈕。

圖2-8 選擇分區設置

(9)定制系統分區:如圖2-9所示,系統顯示檢測到的所有驅動器及其所有分區。用戶可以在空閑空間新建分區,也可以選擇某個分區進行編輯,還可以刪除某些分區。

圖2-9 定制系統分區

一般安裝Linux至少需要兩種分區。一種就是Swap分區,用于虛擬內存的交換分區,由操作系統管理,用戶不能使用,其大小一般設置為物理內存大小的2倍比較合適,太小了不能很好地起到虛擬內存的作用,太大了則浪費硬盤空間;另外一種分區就是安裝Linux文件系統的分區。Ext2是Linux專用的文件系統,Ext3是Ext2的升級版本,所以一般采用Ext3作為Linux的文件系統。單擊【新建】按鈕將出現如圖2-9的界面。

(10)新建文件分區:如果選擇的文件系統類型是“Swap”,那么只需指定其分區大小即可。如果選擇的文件系統類型不是“Swap”,還有一個指定掛載點的問題。如圖2-10所示,掛載點指定分區將用來保存Linux操作系統目錄樹中的某個目錄,至少應該指定一個掛載點“/”。

圖2-10 新建文件分區

(11)配置Linux引導裝載程序:Red Hat Linux 9默認使用GRUB作為其引導裝載程序,也可以在這里更改引導裝載程序。常用的引導裝載程序有兩種:GRUB和LILO,在以后的章節中將對其進行詳細說明。這里使用默認的GRUB作為引導裝載程序。也可以通過本界面配置引導程序引導其他操作系統(如Windows等)。如圖2-11所示,單擊【添加】按鈕可以在開機引導裝載程序運行時操作系統選擇菜單中添加一個操作系統選項。單擊【編輯】按鈕可以編輯開機引導裝載程序運行時操作系統選擇菜單的顯示結果。單擊【刪除】按鈕可以刪除一個已有的操作系統選項。

圖2-11 配置Linux引導裝載程序

(12)配置網絡:系統將自動檢測機器中的網絡適配卡。如圖2-12所示,單擊【編輯】按鈕可以配置本機IP地址和子網掩碼,或者指定為采用DHCP動態獲取IP地址。如果不是采用DHCP動態獲取IP地址,則還要通過本界面設置網關、主要DNS、次要DNS和第三DNS的IP地址。完成這些操作后單擊【下一步】按鈕進入下一環節。

圖2-12 配置網絡

(13)配置系統防火墻:如圖2-13所示,可以指定系統是否啟用防火墻。如果選擇啟用防火墻,則還可以選擇允許哪些服務通過防火墻,或者哪些網絡適配器的所有消息。

圖2-13 配置系統防火墻

(14)選擇操作系統支持的語言:通過這個界面可以選擇操作系統所支持的語言,也可以通過這里指定系統的默認語言。一般建議選擇支持簡體中文(Chinese P.R China)、香港繁體中文(Chinese HongKong)、臺灣繁體中文(Chinese Taiwan)和美國英語(English U.S.A),如圖2-14所示。

圖2-14 選擇操作系統支持的語言

(15)選擇用戶所在時區:這里一般應該選擇“亞洲/上海”,因為我國都使用北京時間。也可以通過這里設置時鐘服務器,使得本機時鐘保持和所設置的服務器的時鐘同步,如圖2-15所示。

圖2-15 選擇用戶所在時區

(16)設置root用戶密碼:如圖2-16所示,這里用來設置系統root用戶密碼。root擁有執行所有程序、查看所有文件和系統配置的權限。如果root密碼被人破解,則將對系統造成很大的危害,因此root密碼應該設置得復雜一點,最好是數字與字母相結合,而且盡量不要用字典里的詞語。

圖2-16 設置root用戶密碼

(17)選擇是否接受系統默認軟件包:如圖2-17所示,如果對系統不是熟悉,或者系統默認軟件包就符合需求,用戶可以直接接受系統默認軟件包;如果要定制軟件包,可以選擇“定制要安裝的軟件包集合”并選擇需要的軟件集合。

圖2-17 選擇是否接受系統默認軟件包

(18)即將開始安裝:如圖2-18所示,系統提示即將開始安裝,并且提示安裝日志和安裝選項記錄所在的文件。

圖2-18 即將開始安裝

(19)安裝軟件包:到這里系統已經收集好了用戶的各項信息,下面就是安裝軟件包的過程。依據機器硬件配置和用戶選擇安裝的軟件集合大小,這個過程需要的時間會有較大差異,大致需要40分鐘到一個小時不等,如圖2-19所示。

圖2-19 安裝軟件包

(20)配置圖形化界面:如圖2-20所示,選擇系統顯卡類型和顯存大小。一般系統可以自動檢測到合適的顯卡類型和顯存大小。如果確信系統能夠正確檢測到這些配置,可以在這里選擇【跳過X配置(S)】單選框。如果沒有選擇【跳過X配置(S)】,單擊【下一步】按鈕將開始進行顯示器的配置,包括顯卡型號、顯示器刷新率、分辨率和顏色深度等。

圖2-20 配置圖形化界面

(21)配置顯示器:配置顯示器包括顯示器的品牌和型號、水平頻率和垂直頻率。一般系統可以自動檢測到合適的顯示器配置,如圖2-21所示。

圖2-21 配置顯示器

(22)定制圖形化配置:這里配置顯示器的分辨率和色彩深度,如圖2-22所示。系統一般可以自動檢測到合適的色彩深度和屏幕分辨率。建議用戶選擇圖形化登錄類型。

圖2-22 配置顯示器的分辨率和色彩深度

注意

如果圖2-21 所示的顯示器刷新率和圖2-22 所示的顯示器分辨率和色彩深度的配置不當,可能導致系統安裝完畢后不能正常顯示。

(23)安裝完成:到這里,系統已經初步安裝完畢。如圖2-23所示,系統提示取出安裝過程中使用的安裝介質,提示一些關于Red Hat的網站。單擊【退出】按鈕機器重新啟動后將進入首次使用前的一些其他配置界面。

圖2-23 安裝完成

(24)首次運行前的歡迎信息:這是首次運行前的歡迎信息,如圖2-24所示,直接單擊【下一步】按鈕即可。

圖2-24 首次運行前的歡迎信息

(25)新建普通用戶賬號:Linux操作系統root權限太大,一般情況下不建議采用root登錄系統,所以有必要新建普通用戶賬號。輸入普通用戶的用戶名、用戶全稱、口令及確認口令即可新建普通用戶賬號,如圖2-25所示。

圖2-25 新建普通用戶賬號

(26)設置日期和時間:如圖2-26所示,可以在這里設置系統時鐘,這里選擇【啟用網絡時間協議】單選框,并配置相應時間服務器,啟用網絡時間協議。用戶可以根據具體情況選擇是否啟用網絡時間協議。

圖2-26 設置系統時鐘

(27)測試聲卡:如果系統檢測到安裝有聲卡,系統將顯示如圖2-27所示界面。如果系統正確檢測到聲卡,單擊【播放測試聲音】按鈕則可以聽到三個測試聲音,第一個從右聲道播放,第二個從左聲道播放,第三個從兩個聲道同時播放。系統一般都能夠正常檢測到聲卡。

圖2-27 測試聲卡

(28)選擇是否需要注冊系統:如圖2-28所示,可以選擇注冊,也可以選擇不注冊。如果在Red Hat網絡注冊系統,Red Hat公司將定期向用戶發送漏洞報告,并告訴用戶如何下載補丁。

圖2-28 選擇是否需要注冊系統

(29)額外安裝:如果有其他光盤程序要安裝,可以在這里安裝;若沒有,直接單擊【下一步】按鈕,如圖2-29所示。

圖2-29 額外安裝

(30)結束設置:如果能夠看到如圖2-30所示界面,則已經成功完成Linux的安裝。

圖2-30 安裝結束

(31)選擇操作系統:如圖2-31所示界面,這是用戶選擇的Linux裝載器GRUB。如果用戶還安裝了其他操作系統,如Windows系列的操作系統,則也會在啟動菜單中顯示。選擇【Red Hat Linux(2.4.20-8)】即進入剛安裝好的Red Hat Linux 9。

圖2-31 選擇操作系統

(32)輸入用戶名及其密碼:如圖2-32所示界面,用戶可以輸入root用戶名及其相應密碼進入Red Hat Linux 9,也可以輸入在安裝過程中添加的某個普通用戶賬號及其相應密碼進入系統。

圖2-32 輸入用戶名及其密碼

(33)開始使用操作系統:如圖2-33所示界面,用戶成功登錄后,系統即顯示Red Hat Linux 9的桌面,用戶就可開始使用剛剛安裝的操作系統了。

圖2-33 開始使用操作系統

2.2 使用GRUB引導Linux(實務2)

2.2.1 了解GRUB

在Red Hat Linux 9裝載系統前,必須由一個引導裝載程序(boot loader)中的特定指令告訴其去引導系統。這個程序一般是位于系統的主硬盤驅動器上,或是存在于其他知道如何開始Linux內核的媒介驅動器上。如果一個x86系統只安裝了Red Hat Linux 9而且只有一個版本的Linux內核,那么通過引導裝載程序來引導運行Red Hat Linux 9的過程比較簡單。Red Hat Linux 9安裝程序允許用戶快速方便地配置引導裝載程序存放在主硬盤驅動的主引導記錄來引導操作系統。然而,為了能從多個Linux內核或其他操作系統引導,那么就有必要了解Red Hat Linux 9提供必要引導選項的方法,以及理解引導的過程與如何去改變。當一個x86機器啟動后,系統BIOS開始檢測系統參數,如內存的大小、日期和時間、磁盤設備、以及這些磁盤設備用于引導的順序等。通常情況下,BIOS都是被配置成首先檢查軟驅或光驅(或兩者都檢查),然后再嘗試從硬盤引導。如果在這些可移動的設備中沒有找到可引導的介質,那么BIOS通常是轉向第一塊硬盤最初的幾個扇區,尋找用于裝載操作系統的指令。這些最初的扇區(也就是主引導記錄)是從一開始便裝載一個預選擇操作系統的。

從Red Hat Linux 7.2發行套件開始起,GRUB(GRand Unified Bootloader)就取代LILO(LInux LOader)成為了默認的啟動裝載程序,該引導器具有強大的多系統內核引導功能,因而Red Hat Linux 9也采用該引導器。GRUB(GRand Unified Bootloader)是一個將引導裝載程序安裝到主引導記錄的程序,主引導記錄位于一個硬盤開始的扇區。該程序允許位于主引導記錄區中特定的指令來裝載一個GRUB菜單或是GRUB的命令環境。這使得用戶能夠開始操作系統的選擇,在內核引導時傳遞特定指令給內核,或是在內核引導前確定一些系統參數(如可用的RAM大小)。

GRUB包含許多特性,使其比其他可用的引導裝載程序更加優越:

● 該引導程序在x86機器上提供一個真正基于命令行的、先于操作系統的環境,它在用確定的選項裝載操作系統或收集系統信息方面,提供了最大程度的適應性。

● 該引導程序支持邏輯塊尋址(LBA)方式。LBA將用于尋找驅動器上文件的地址轉換工作置于驅動器的硬件中,它被用在許多IDE和所有的SCSI硬盤中。只要系統BIOS能支持LBA模式(大多數都支持),那么LBA就允許GRUB超越1024個柱面的限制,引導操作系統。

● 其配置能在每次系統引導時被讀取。這就避免了用戶每次改變引導選項時都要重寫一次主引導記錄的麻煩。在使用GRUB時,如果配置文件被錯誤配置并且引導,那它僅僅簡單地轉到一個默認的命令行,允許用戶手工輸入命令來運行操作系統。除更新系統引導的第一步、第二步,或是菜單配置文件的位置以外,主引導記錄是不會被觸及的,而這種情況很少發生。

2.2.2 熟練掌握GRUB

1.GRUB運行原理

GRUB的裝載和運行原理比較復雜,這里只是簡單介紹一下裝載GRUB和操作系統的過程,其主要包括以下幾個操作步驟:

(1)裝載基本的引導裝載程序。基本引導裝載程序位于主引導扇區中一個非常小的空間,小于512字節。因此,基本引導裝載程序所做的唯一的事情就是裝載第二引導裝載程序,這是因為在主引導扇區中沒有足夠的空間用于其他東西了。

(2)裝載第二引導裝載程序。這個第二引導裝載程序實際上是引出更高級的功能,以允許用戶裝載入一個特定的操作系統。在GRUB中,該步驟是通過給用戶顯示一個菜單或是輸入命令來完成的。

(3)裝載在一個特定分區上的操作系統,如Linux內核或者是Windows操作系統。一旦GRUB從其命令行或是配置文件中接到開始操作系統的正確指令,就將尋找必要的引導文件,然后把機器的控制權移交給操作系統。

2.GRUB的安裝

一般情況下,Red Hat Linux 9的安裝默認使用GRUB作為其引導裝載程序,也可以在這里更改引導裝載程序。如圖2-34所示,單擊【添加】按鈕可以添加一個操作系統選項,使得引導裝載程序能在運行時引導相應的操作系統。單擊【編輯】按鈕可以編輯開機引導裝載程序運行時操作系統選擇菜單的顯示結果。單擊【刪除】按鈕可以刪除一個已有的操作系統選項。

圖2-34 配置Linux引導裝載程序

如果在Red Hat Linux 9的安裝過程中,GRUB沒有被安裝,則需要采用下面的步驟來對其進行安裝,并將其設置為默認的引導裝載程序:

(1)獲取最新可用的GRUB包。在Red Hat Linux 9安裝光盤上的GRUB包也可以使用;

(2)在一個shell提示符下,運行命令/sbin/grub-install,在這里是GRUB將要被安裝的位置。例如:/sbin/grub-install /dev/had;

(3)重新引導系統。GRUB圖形引導裝載菜單將出現。

注意

如果LILO已經被安裝,并且是當前的系統引導裝載程序,那就沒有必要為了使用GRUB而刪除它。因為,GRUB一旦安裝后,將作為系統默認的引導裝載程序。

3.GRUB的設備名稱

在使用GRUB前,最重要的事情之一就是理解程序是如何引用設備的,如系統硬盤驅動器、分區等。對于配置GRUB實現多操作系統的引導,這方面的信息是非常重要的。

系統的第一個硬盤驅動器被GRUB稱為(hd0),在它上面的第一個分區被稱為(hd0,0),第二個硬盤驅動器上的第3個分區被稱為(hd1,2)。使用GRUB時,文件系統習慣上采用下面的方式命名:

(,)

在設備命名中,圓括號和逗號是很重要的。指出是一個硬盤(hd)還是一個軟盤(fd)。依照系統BIOS而確定的設備號,從0開始,基本IDE硬盤被標為0,第二IDE硬盤被標為1。這個排序大體上等同于Linux內核用字母安排設備的順序,只是在hda中的a變成了0,hdb中的b變成了1,依次類推。

注意

GRUB用于設備的命名系統是從0開始,而不是1。這常常是用戶可能犯的最普遍的錯誤。

類似地,分區的編號也是從0開始。雖然大多數的分區可以用數字指定,但是如果系統使用的是BSD分區,那么這些分區還是用字母來指定的,如a或c。

GRUB在命名設備和分區時,使用下面的規則:

● 無論系統使用IDE硬盤還是SCSI硬盤,所有的硬盤都是用hd開始,軟盤用fd開頭。

● 當指定整個硬盤,不考慮其分區時,簡單地將逗號和分區編號取消即可。當使用GRUB配置一個特定硬盤的主引導扇區時,這一點很重要。例如,(hd0)指定第一個設備,(hd3)指定第四個設備。

對于上述的命名規則來說,如果一個系統有多個驅動設備,需要獲得由BIOS確定的驅動器順序。如果系統只有IDE或SCSI驅動器,命名是比較簡單的。但是如果有多個驅動器混合時,這些命名就變得復雜了。

4.GRUB的文件名稱

當在GRUB中輸入包括文件的命令時,比如在多操作系統中使用一個菜單列表,文件名必須直接在設備和分區后指定。一個絕對文件名的格式如下:

(,)/path

大多數的時候,用戶可以通過在分區上的目錄路徑后加上文件名來指定文件。這種方法是直截了當的。

另外,也可以將不在文件系統中出現的文件指定給GRUB,比如在一個分區最初幾塊扇區中的鏈式引導裝載程序。為了指定這些文件,需要提供一個塊列表(blocklist),由該列表來一塊一塊地告訴GRUB文件在分區中的位置。當一個文件是由幾個不同的塊組合在一起時,要有一個特殊的方式來寫塊列表。每個文件片斷的位置由一個塊的偏移量以及從偏移點起始的塊數來描述,這些片斷以一個逗號分界(comma-delimited)的順序組織在一起。

例如下面給出的塊列表:

0+80,100+35,380+1

上面這個塊列表告訴GRUB使用一個文件,這個文件起始于分區的第一塊,使用了第0塊到第79塊,第99塊到134塊,以及第379塊。

當使用GRUB裝載諸如Windows這樣采用鏈式裝載方式的操作系統時,知道如何寫塊列表是相當有用的。如果從第0塊開始,那么可以不計塊的偏移量。舉個例子來說,當鏈式裝載文件在第一硬盤的第一個分區時,可以使用下面的命名:

(hd0,0)+1

下面給出一個帶類似塊列表名稱的chainloader命令。它是在設置正確的設備和分區作為根后,在GRUB命令行中給出的。

chainloader +1

另外,在GRUB的文件中還存在一個根文件系統的概念。GRUB的根文件系統是用于一個特定設備的根分區。GRUB使用這個信息來掛入(mount)這個設備并從它上面載入文件。

注意

GRUB的根文件系統與Linux的根文件系統是沒有任何關聯的。

在Red Hat Linux 9中,一旦GRUB載入它自己的包含Linux內核的根分區,那么kernel命令就可以將內核文件的位置作為一個選項來執行。一旦Linux內核引導,就設定自己的根文件系統;此時的根文件系統是用戶熟知Linux的根文件系統。最初的GRUB根文件系統及其掛入都將被去掉,所以僅僅存在于用來引導內核文件的過程中。

5.GRUB的基本命令

GRUB包含了許多不同的命令,它們可以在命令行接口中以交互的方式執行。其中的一些命令能接在命令名后面的選項,這些選項要用空格隔開。

下面的列表給出了一些最有用的命令。

● boot -:引導先前已經被指定并載入的操作系統或鏈式裝載程序。

● chainloader -:將指定的文件作為一個鏈式裝載程序載入。為了獲取在一個指定分區第一扇區內的文件,使用+1作為文件名。

● displaymem -:顯示當前內存的使用情況,該信息是基于BIOS的。這個命令有助于確定系統在引導前有多少內存。

● initrd -:使用戶能夠指定一個在引導時可用的初始RAM盤。當內核為了完全引導而需要某些模塊時,這是必需的。

● install p -:將GRUB安裝到系統的主引導記錄。這個命令允許系統重啟時出現GRUB接口。這條命令可以用幾種不同的方式進行配置,然而,它都要求指定如何表示一個設備、分區和文件,在那里可以找到第一個引導裝載程序的映像,比如(hd0,0)/grub/ stage1。另外,它也指定了第一步引導裝載程序應該被安裝的硬盤,如(hd0)選項告訴第一步引導裝載程序和第二步引導裝載程序位于什么地方,例如(hd0,0)/grub/ stage2。p選項告訴install命令菜單配置文件被指定在哪個部分,比如說(hd0,0)/grub/ grub.conf。

注意

install命令將覆蓋主引導扇區中的其他信息。如果命令被執行,那么除了GRUB信息之外的用于引導其他操作系統的信息都將丟失。在執行這條命令前,應確定對其已經有了正確的了解。

● kernel -:當使用直接載入方式引導操作系統時,kernel命令指定內核從GRUB的根文件系統中載入。options選項是跟在kernel命令后面,在內核載入時傳給內核的。在Red Hat Linux 9中,一個kernel命令的例子似乎是像下面的形式:kernel /vmlinuz root=/dev/hda5。這表明vmlinuz文件是從GRUB的根文件系統載入的,如(hd0,0)。同時,一個選項也被傳給了內核。它指出當Linux內核載入時,內核的根文件系統應該是位于hda5,第一個IDE硬盤的第五個分區。如果有必要的話,多個選項可以被放在這個選項的后面。

● root -:將GRUB的根分區設置成特定的設備和分區,比如說(hd0,0),并掛入這個分區,這樣文件可以被讀取。

● rootnoverify -:完成root命令同樣的工作,只是不掛入分區。

除上面所述外,還有更多的命令可用。輸入info grub,則可以得到一個所有命令的完全列表。

6.GRUB的配置文件

配置文件在GRUB菜單接口中,創建用于引導操作系統的列表。配置文件可以允許用戶選擇執行事先設置好的一組命令。這些命令既包括前面給出的命令,也包括一些只用于配置文件的命令。只用于GRUB菜單配置文件的命令如下。

● color -:設定在菜單中使用的顏色,一種作為前景色,另一種作為背景色。可以簡單地使用顏色名稱,如red/black。比如:

color red/black green/blue

● default -:默認項目的標題名稱。如果菜單接口超時,那它將被載入。

● fallback -:當這個命令被使用時,如果第一次嘗試失敗,那么這個項目的標題名稱將被試用。

● hiddenmenu -:使用這個命令時,它不顯示GRUB菜單接口,在超時時間過期后載入默認項。用戶通過按[Esc]鍵,可以看到標準的GRUB菜單。

● password -:使用這個命令時,它可以防止不知道口令的用戶編輯菜單的項目。

作為附加選項,可以在后面指定一個后備的菜單配置文件。因此,如果知道口令,GRUB將重新啟動第二步的引導裝載程序,并使用這個后備的配置文件來建立菜單。如果這個后備文件不在命令中指出,那么知道口令的用戶能夠編輯當前的配置文件。

● timeout -:這個命令設定了在GRUB載入由default命令指定的項目前的時間間隔,以秒為單位。

● splashimage -:它指定在GRUB引導時所使用的屏幕圖像的位置。

● title -:設定用來裝載一個操作系統的一組特定命令的標題。

● 字符#用來在菜單配置文件放置注釋。

設置GRUB菜單接口全局參數的命令被放在文件的頂部,接下來便是用于各個操作系統引導的不同項目。

下面給出一個非常基本的、用于引導Red Hat Linux 9或者Windows XP的GRUB菜單配置文件,如下所示:

        default=Linux                       //默認啟動Linux系統
        timeout=60                          //計時器為60秒,超過60秒將自動啟動Linux
        color=green/black light-gray/blue   //設置菜單顏色
        # section to load Linux             //引導Red Hat Linux 9的參數
        title Red Hat Linux 9
        root (hd0,1)
        kernel /vmlinuz root=/dev/hda5
        boot
        # section to load Windows XP        //引導Windows XP的參數
        title windows
        rootnoverify (hd0,0)
        chainloader +1

這個文件告訴GRUB建立一個以Red Hat Linux 9為默認操作系統的菜單,設定10秒鐘后自動引導。這里給出了兩個部分,每個部分對應于一個操作系統項目,每個部分都包含了指向操作系統硬盤分區表的命令。

2.2.3 使用GRUB引導Linux

GRUB最大的優點之一就是其魯棒的設計。如果更新內核或更改它在磁盤上的位置,則不必重新安裝GRUB。事實上,只要更新/etc/grub.conf或者/boot/menu.lst(指向/etc/grub.conf的一個軟鏈接)文件存盤即可。等到下一個引導過程開始,則修改的引導項將可以進行新的系統內核的引導。

只有在少數情況下,才需要將GRUB引導裝入器重新安裝到引導記錄。首先,如果更改GRUB root分區的分區類型(例如,從Ext2改成ReiserFS),則需要重新安裝。或者,如果更新/boot/grub中的stage1和stage2文件,由于它們來自更新版本的GRUB,很有可能要重新安裝引導裝入器。其他情況可以不需要重新安裝引導記錄。

下面將詳細地給出一個使用GRUB來引導系統的實例。

在開機時,按[c]鍵,將進入GRUB控制臺。顯示如下:

        GRUB version 0.5.96.1 (640K lower / 3072K upper memory)
        [ Minimal BASH-like line editing is supported. For the first word,TAB
        lists possible command completions. Anywhere else TAB lists the possible
        completions of a device/filename. ]
        grub>
        grub> root (h

現在,按一次[Tab]鍵。如果系統中有多個硬盤,GRUB將顯示可能完成的列表,從“hd0”開始。如果只有一個硬盤,GRUB將插入“hd0,”。如果有多個硬盤,繼續進行,在(“hd2”)中輸入名稱并在名稱后緊跟著輸入逗號,但不要按[Enter]鍵。部分完成的root命令看起來如下:

        grub> root (hd0,

現在,繼續操作,再按一次[Tab]鍵。GRUB將顯示特定硬盤上所有分區的列表,以及它們的文件系統類型。在我的系統中,按[Tab]鍵時得到以下列表:

         grub> root (hd0,
        Possible partitions are:
        Partition num: 0, Filesystem type is fat,partition type 0x6
        Partition num: 2, Filesystem type is ext2fs, partition type 0x83
        Partition num: 4, Filesystem type unknown, partition type 0x7
        Partition num: 5, Filesystem type is ext2fs, partition type 0x83
        Partition num: 6, Filesystem type is fat, partition type 0xb
        Partition num: 7, Filesystem type is fat, partition type 0xb
        Partition num: 8, Filesystem type is ext2fs, partition type 0x83
        Partition num: 9, Filesystem type unknown, partition type 0x82

如上所示,GRUB的交互式硬盤和分區名稱實現功能非常有條理。用戶只要好好地理解GRUB的硬盤和分區命名語法,就可以繼續操作了。

        grub> root (hd0,8)

現在已安裝了root文件系統,下一步是裝入內核:

        grub> kernel /boot/vmlinuz-2.4.2 root=/dev/hda5 ro
        [Linux-bzImage, setup=0x1200, size=0xe1a30]

到此為止,已經成功安裝了root文件系統并裝入了內核。現在,就可以引導了。只要輸入命令“boot”,Linux引導過程就將開始:

        grub> boot

通過上述的操作過程,就可以成功地使用GRUB來裝載和引導系統內核了。

一般來說,初學者對于上述的過程可能比較陌生和難懂,其實對于常規應用來說,由于機器中裝入了多個操作系統,GRUB的使用只要熟悉其配置文件的編寫即可,而屏蔽使用上述這些復雜的命令。下面再仔細介紹GRUB配置文件的編寫方法:

(1)在系統安裝好之后,可以在/etc目錄下找到/etc/grub.conf,它是進行配置文件改寫的最好參考;

(2)按照在機器中新增加操作系統的安裝位置信息,可以對如下內容進行添加:

        title Red Hat Linux 9
        root (hd0,4)
        kernel /vmlinuz root=/dev/hda5
        boot
        # section to load Windows XP           //引導WinXP的參數
        title windows xp
        rootnoverify (hd0,0)
        chainloader +1

依次為:需引導的操作系統的名稱、該操作系統所在的分區,對于Linux操作系統來說,還需要添加其內核的位置,而對于Windows來說,則通過使用“鏈式裝入器”。鏈式裝入器從指定分區的引導記錄中裝入Windows系統自己的引導裝入器,然后引導它。這種鏈式裝入技術可以用于引導任何版本的DOS或者是Windows操作系統。

在上面的內容,添加了一個Linux和Windows操作系統,其中Linux操作系統的名稱為:Red Hat Linux 9,其root分區位于第一塊硬盤的第五個分區上,其內核路徑為:/vmlinuz root= /dev/hda5,boot是一條啟動命令。另外,添加了一個Windows XP操作系統的引導記錄,其名稱為:windows xp,啟動分區位于第一塊硬盤的第一個分區,而鏈式裝入器為:chainloader+1。

(3)保存改寫的內容,并重新啟動機器即可。

上面講述的是一個添加操作系統引導記錄的全過程,強烈推薦讀者在實踐中根據已有的框架修改諸如(hd0,4)等一些需要改變的信息,其他的信息可以完整地保留,這樣既安全又方便,能夠輕松地使用GRUB實現多系統的引導工作。

注意

實現上面的修改需要用戶熟悉GRUB設備名稱和文件名稱的命名方法比較,否則容易出錯,造成系統無法正常啟動。建議讀者在修改前詳細閱讀本章前面部分對GRUB設備名稱的介紹。

2.3 運行Linux(實務3)

2.3.1 了解Linux系統啟動過程

啟動Linux操作系統,需要安裝Linux啟動器,常見的Linux啟動器有兩種:LILO(LInux LOader)和GRUB(GRand Unified Bootloader)。Red Hat Linux 9默認采用GRUB作為其啟動器。LILO或GRUB不僅可以引導Linux,也可以引導其他操作系統,包括MS-DOS或Windows XP、Windows Server 2003、Windows 2000等。在安裝Linux時,啟動器可以裝在硬盤的MBR(主引導記錄)中,也可以安裝在活動分區的引導扇區中。

計算機加電啟動時,BIOS裝載MBR,然后從當前活動分區啟動,LILO或GRUB獲得引導過程的控制權,并顯示相應提示符提示用戶選擇需要啟動的操作系統。前述的圖2-31便顯示了使用GRUB時的引導界面。

當引導程序成功完成引導任務后,Linux從其手中接管了CPU的控制權,然后CPU就開始執行Linux的核心映像代碼,開始Linux啟動過程。對于用圖形方式的用戶來說,Linux將顯示一個圖形化的登錄界面,登錄成功后可以直接進入KDE、Gnome等窗口管理器。

2.3.2 設定Linux系統運行級別

說到Linux的系統運行級別,我們首先需要介紹一下與之相關的init進程。init是Linux系統操作中不可缺少的程序之一,它是一個由內核啟動的用戶級進程。內核啟動(已經被載入內存,開始運行,并已初始化所有的設備驅動程序和數據結構等)之后,就通過啟動一個用戶級程序init的方式來啟動其他用戶級的進程或服務。所以,init始終是第一個進程(其PID始終為1)。內核會在過去曾使用過init的幾個地方查找它,它的正確位置(對Linux系統來說)是/sbin/init。如果內核找不到init,它就會試著運行/bin/sh,如果運行失敗,系統的啟動也會失敗。

運行級別就是操作系統當前正在運行的功能級別。這個級別0~6,具有不同的功能。其功能級別如下:

● 0:停機;

● 1:單用戶模式;

● 2:多用戶,沒有NFS;

● 3:完全多用戶模式(標準的運行級);

● 4:沒有用到;

● 5:X11(xwindow圖形模式);

● 6:重新啟動。

注意

千萬不要將運行級別設定為0或者6。他們會導致系統無法正常啟動。

這些級別在/etc/inittab文件里指定。這個文件是init程序尋找的主要文件,最先運行的服務是放在/etc/rc.d目錄下的文件。在大多數的Linux發行版本中,啟動腳本都是位于/etc/rc.d/init.d中的。這些腳本被用ln命令連接到/etc/rc.d/rcn.d目錄(這里的n就是運行級0~6)。

inittab文件中每行的紀錄有id、runlevels、action和process四個字段,各字段用“:”分隔,他們共同確定了某進程在那些運行級別以何種方式運行。格式如下所示:

id:runlevels:action:process其中各個字段的具體含義如下。

● id用于在inittab文件中唯一標示一個配置記錄,可以由1~4個字符組成。

● runlevels用于指定該記錄在哪些運行級別中運行,runlevels可以是單個運行級別也可以是運行級別列表。

● action字段描述記錄將執行哪種類型的動作,詳細設置如下:

initdefault:用于標示系統啟動后將進入哪個運行級別;

sysinit類進程將在系統啟動時在任何boot或bootwait類進程之前運行;

wait類進程將在進入指定運行級別后運行一次,init進程將等待其結束;

ctrlaltdel用于指定用戶使用[ctrl+alt+del]組合鍵時系統所進行的操作,如重啟進入單用戶等;

powerfail和powerokwait用于指定當UPS斷電信號時所運行的命令和指定當供電恢復時所運行的命令;

respawn類進程在結束后重新啟動運行(如控制臺登錄程getty)。

● process字段所設置的是啟動進程所執行的命令。

因此,根據以上字段,要修改Linux系統的運行級別非常簡單。只需打開/etc/inittab文件,然后將以下例子中的數字修改成所需要的運行級別所對應的數字(1~5)即可:

5:initdefault:

2.3.3 登錄Linux

接通安裝好Linux系統的機器電源開關后,屏幕上將快速閃過一串串啟動內容的文字提示,在服務啟動一串綠色的“[OK]”后,系統顯示:

linux login:

提示用戶登錄。如果用戶想要以超級用戶的身份登錄,在“login:”后面輸入“root”,然后回車,系統提示:

Password:

該提示提醒用戶輸入在安裝時設定的系統管理員密碼并回車,如果密碼正確,系統將完成登錄。成功登錄后系統提示:

[root@linux /root]#

一般情況下,為了安全考慮不推薦使用root賬號登錄系統。因為root賬號權限太大,很容易由于誤操作導致系統不正常,所以一般以普通用戶賬號登錄系統。假設用戶以賬號ly登錄系統,登錄成功后系統顯示[ly@linux /root]$作為提示符。在使用ly賬號的過程中如果要完成某些只有root賬號才能執行的操作,要臨時以root賬號登錄,或者想要以其他賬號臨時登錄系統,Linux系統提供了su命令。su命令格式如下:

su用戶名

如果在前面所述的ly賬號登錄的情況下,欲以root臨時登錄,可以輸入su root命令并回車,系統提示用戶輸入root的密碼,輸入正確后系統進入root登錄模式。這樣用戶就可以完成root賬號才能完成的操作了。

如果要退出某個用戶的登錄,可以使用exit命令。如前面所述的臨時用root登錄完成用戶希望的操作后,用戶想要重新回到ly的賬號下繼續操作系統,可以輸入exit命令并回車即可。

2.3.4 退出Linux

Linux提供了三個退出系統的命令:shutdown、halt和reboot。這三個命令在一般情況下只有系統的超級用戶(一般是指root)才可以執行。輸入沒有參數的shutdown命令,兩分鐘之后即可關閉系統。在這段時間,Linux將提示所有已經登錄系統的用戶系統將要退出。

該命令的一般格式為:shutdown [選項] [時間] [警告信息]。

其中,命令中[選項]的含義為:

● k:并不真正關機,只是發出警告信息給所有用戶;

● r:關機后立即重新啟動;

● h:關機后不重新啟動;

● f:快速關機,重啟動時跳過fsck;

● n:快速關機,不經過init程序;

● c:取消一個已經運行的shutdown。

如果要設定等待的時間,可以使用[時間]的選項:

● Onow:立即退出系統;

● O+mins:在指定的分鐘之后退出系統;

● Ohh:ss:在指定的時間退出系統。

在關掉系統之前,系統會自動產生一個/etc/nologin文件,說明系統即將關閉,用戶不能登錄進入。在這段時間中,只有系統管理員可以進入。如果用戶要獲得有關shutdown命令的更詳細的幫助,可以使用man shutdown命令。

halt命令相當于shutdown -h now,表示立刻關機。reboot命令相當于shutdown -r now,表示立刻重啟。

主站蜘蛛池模板: 神池县| 仪征市| 周宁县| 穆棱市| 洛扎县| 澎湖县| 曲阜市| 仁怀市| 新宾| 姚安县| 科技| 灵寿县| 长岭县| 宣化县| 大宁县| 资溪县| 特克斯县| 东明县| 横峰县| 尉氏县| 商河县| 乌审旗| 灵武市| 津市市| 乌拉特后旗| 铁岭市| 精河县| 麻城市| 开阳县| 安岳县| 永新县| 江永县| 香港| 聂拉木县| 苍山县| 元江| 鹿邑县| 深州市| 宜城市| 米脂县| 滦平县|