




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Linux操作系統(第2版)
(RHEL8/CentOS8)授課教師XXX學院第1章Linux簡介與安裝第1章Linux簡介與安裝本章學習目標:了解Linux的起源、特點、內核版本和發行版本的區別了解硬盤分區、MBR和GPT理解引導工具GRUB/GRUB2理解RHEL8的啟動流程熟練掌握RHEL8的安裝熟練掌握系統引導工具GRUB/GRUB2設置及使用1.1Linux簡介Linux是一款誕生于網絡、成長于網絡并且成熟于網絡的操作系統,是一套免費使用和自由傳播的類Unix操作系統,它主要運行在基于Intelx86系列CPU的計算機上。Linux是由世界各地的成千上萬的程序員設計和實現的,其目的是建立一個不受任何商品化軟件版權制約的、全世界都能自由使用的Unix兼容產品。Linux是一個自由的、遵循GNU通用公共許可證(GPL)的類于Unix操作系統。Linux最早由一位名叫LinusTorvalds的芬蘭赫爾辛基大學計算機科學系的學生開發,他的目的是設計一個代替Minix的操作系統,這個操作系統可用于386、486或奔騰處理器的個人計算機上,并且具有Unix操作系統的全部功能。Linux以它的高效性和靈活性著稱,能夠在個人計算機上實現全部的Unix特性,具有多用戶、多任務的能力。Linux可在GNU(GNU’sNotUnix)公共許可權限下免費獲得,是一個符合POSIX標準的操作系統。1.1Linux簡介在上個世紀70年代,Unix操作系統的源程序大多是可以任意傳播的。互聯網的基礎協議TCP/IP就是產生于那個年代。在那個時期,人們在創作各自的程序中享受著從事科學探索、創新活動所特有的那種激情和成就感。那時的程序員,并不依靠軟件的知識產權向用戶收取版權費。在1979年,AT&T宣布了Unix的商業化計劃,隨之出現了各種二進制的商業Unix版本。于是就興起了基于二進制機讀代碼的“版權產業”(CopyrightIndustry)。這種做法,一方面產生了大批的商業軟件,極大的推動了軟件業的發展,誕生了一批軟件巨人;另一方面,由于封閉式的開發模式,也阻礙了軟件業的進一步深化和提高。由此,人們為商業軟件的“BUG”付出了巨大的代價。在1983年,RichardStallman面對程序開發的封閉模式,發起了一項國際性的源代碼開放的所謂牛羚(GNU)計劃,力圖重返上個世紀70年代的基于源碼開放來從事創作的美好時光。他為保護源代碼開放的程序庫不會再度受到商業性的封閉式利用,制定了一項GPL條款,稱為Copyleft版權模式。1.1.1Linux的起源1.1Linux簡介GNU(GNU'sNotUnix)計劃是由RichardStallman在1983年9月27日公開發起的,由自由軟件基金(FSF:FreeSoftwareFoundation)支持,目標是創建一套完全自由的操作系統。GPL是指GNU通用公共許可證(GNU,GeneralPublicLicense)。大家常說的Linux準確來講應該稱為GNU/Linux,Linux這個詞本身只表示Linux內核,但實際上人們已經習慣用Linux來表示整個基于GNU/Linux內核且使用GPL軟件的操作系統。在1987年6月,RichardStallman完成了11萬行源代碼開放的“編譯器”(GNUgcc),獲得了一項重大突破,做出了極大的貢獻。在1991年9月,LinusTorvalds公布了Linux0.0.1版內核,該版本的Linux內核被芬蘭赫爾辛基大學FTP服務器管理員AriLemmke發布在Internet上,最初Torvalds將其命名為Freax,是自由(free)和奇異(freak)的結合,并且附上X字母,以配合所謂的Unix-like系統。但是FTP服務器管理員覺得Freax不好聽,因此將其命名為Linux。這完全是一個偶然事件。但是,Linux剛一出現在互聯網上,便受到廣大的牛羚計劃追隨者們的喜歡,他們將Linux加工成了一個功能完備的操作系統,叫做GNULinux。1.1.1Linux的起源1.1Linux簡介在1995年1月,BobYoung創辦了RedHat公司,以GNULinux為核心,集成了400多個源代碼開放的程序模塊,搞出了一種冠以品牌的Linux,即RedHatLinux,稱為Linux發行版,在市場上出售。這在經營模式上是一種創舉。BobYoung稱:我們從不想擁有自己的“版權專有”技術,我們賣的是“方便”(給用戶提供支持和服務),而不是自己的“專有技術”。源代碼開放程序促進了各種品牌發行版的出現,極大的推動了Linux的普及和應用。在1998年2月,以EricRaymond為首的一批年輕的“老牛羚骨干分子”終于認識到GNULinux體系的產業化道路的本質,并非是什么自由哲學,而是市場競爭的驅動,創辦了OpenSourceIntiative(開放源代碼促進會),在互聯網世界里展開了一場歷史性的Linux產業化運動。在IBM和Intel為首的一大批國際重量級IT企業對Linux產品及其經營模式的投資并提供全球性技術支持的大力推動下,催生了一個正在興起的基于源代碼開放模式的Linux產業,也有人稱為開放源代碼(OpenSource)現象。1.1.1Linux的起源1.1Linux簡介Linux操作系統在短短的幾年之內得到了非常迅猛的發展,這與Linux具有的良好特性是分不開的。Linux包含了Unix的全部功能和特性。簡單的說,Linux具有以下主要特性:遵循GNU/GPL、開放性、多用戶、多任務、良好的用戶界面、設備獨立性、提供了豐富的網絡功能、可靠的系統安全、良好的可移植性。Linux可以運行在多種硬件平臺上,如x86、x64、ARM、SPARC和Alpha等處理器的平臺。此外Linux還是一種嵌入式操作系統,可以運行在掌上電腦、機頂盒或游戲機上。2001年1月發布的Linux2.4版內核,已經能夠完全支持Intel64位芯片架構。同時Linux也支持多處理器技術。多個處理器同時工作,使系統性能大大提高。1.1.2Linux的特點1.1Linux簡介Linux的版本號分為兩部分:內核版本和發行版本。1.Linux的內核版本對于Linux的初學者來說,最初會經常分不清內核版本與發行版本之間的關系。實際上,操作系統的內核版本指的是在LinusTorvalds領導下的開發小組開發出的系統內核的版本號。2.Linux的發行版本一個完整的操作系統不僅只有內核,還包括一系列為用戶提供各種服務的外圍程序。所以,許多個人、組織和企業,開發了基于GNU/Linux的Linux發行版,他們將Linux系統的內核與外圍應用軟件和文檔包裝起來,并提供一些系統安裝界面和系統設置與管理工具,這樣就構成了一個發行版本(distribution)。實際上,Linux的發行版本就是Linux內核再加上外圍實用程序組成的一個大軟件包而已。相對于操作系統內核版本,發行版本的版本號是隨發布者的不同而不同,與Linux系統內核的版本號是相對獨立的。1.1.3Linux的版本1.1Linux簡介2.Linux的發行版本Linux的發行版本大體可以分為兩類,一類是商業公司維護的發行版本,一類是社區組織維護的發行版本,前者以著名的RedHatLinux為代表,后者以Debian為代表。注意:RedHat是全球最大的開源技術廠家,其產品RedHatLinux也是全世界應用最廣泛的Linux。紅帽公司總部位于美國北卡羅來納州。RedHat的培訓及認證被認為是Linux認證的標準。RHCE(RedHat認證工程師)認證被公認為總體質量最高的國際IT認證。注意:2018年10月,IBM以340億美元收購RedHat,RedHat成為IBM混合云分部的一個部門。1.1.3Linux的版本1.1Linux簡介2.Linux的發行版本下面簡要介紹一些目前比較知名的Linux發行版本:(1)RedHat系列RedHatLinux是最成熟的一種Linux發行版,無論在銷售還是裝機數量上都是市場上的第一。中國老一輩Linux愛好者中大多數都是RedHatLinux的使用者。目前RedHat系列的Linux操作系統包括:RHEL、Fedora、CentOS、OEL和SL。(2)SUSESUSE是德國最著名的Linux發行版,在全世界范圍中也享有較高的聲譽。SUSE自主開發的軟件包管理系統YaST也大受好評。SUSE于2003年年末被Novell收購。(3)DebianDebian系列,包括Debian和Ubuntu。Debian由IanMurdock于1993年創建,是迄今為止最遵循GNU規范的Linux系統,是100%非商業化的社區類Linux發行版,由黑客自愿者開發和維護。1.1.3Linux的版本1.1Linux簡介2.Linux的發行版本(4)UbuntuUbuntu(烏班圖)由開源廠商Canonical公司開發和維護。Ubuntu嚴格來說不能算一個獨立的發行版本,Ubuntu是基于Debian的unstable版本加強而來,擁有Debian所有的優點。(5)RedFlag/Deepin/中標麒麟RedFlag是北京中科紅旗軟件技術有限公司開發,該公司于2014年8月被五甲萬京信息產業集團收購,收購后的中科紅旗公司保持原有的業務和發展模式。Deepin、中標麒麟也是由我國公司研制的Linux發行版。(6)Slackware由PatrickVolkerding創建于1992年,是歷史最悠久的Linux發行版。(7)GentooGentoo最初由DanielRobbins創建。2002年發布首個穩定的版本,是Linux世界中最年輕的發行版本。(8)MandrivaMandriva的原名是Mandrake,最早由GalDuval創建并在1998年7月發布。早期的Mandrake是基于Redhat進行開發的。(9)AndroidAndroid是一種基于Linux的自由及開源的操作系統,主要用于移動設備,如智能手機和平板電腦,由Google公司和開放手機聯盟(OpenHandsetAlliance)領導開發。1.1.3Linux的版本1.2硬盤分區硬盤有兩種分區格式:MBR(MasterBootRecord,主引導記錄)和GPT(GloballyuniqueidentifierPartitionTable,全局唯一標識磁盤分區表)。MBR和GPT的區別:①MBR分區表最多只能識別2.2TB大小的硬盤空間,大于2.2TB的硬盤空間將無法識別;GPT分區表能夠識別2.2TB以上的硬盤空間。②MBR分區表最多支持4個主分區或三個主分區+1個擴展分區(擴展分區中的邏輯分區個數不限);默認情況GPT分區表最多支持128個主分區。③MBR分區表的大小是固定的;在GPT分區表頭中可自定義分區數量的最大值,也就是說GPT分區表的大小不是固定的。1.2硬盤分區MBR是硬盤的第一扇區,包含已安裝操作系統的啟動加載器和驅動器的邏輯分區信息。它由三部分組成:啟動加載器(bootcode)、DPT(DiskPartitionTable,硬盤分區表)和硬盤有效標志(Magicnumber)。在總共512字節的MBR里啟動加載器占446個字節,偏移地址0000H–0088H),負責從活動分區中裝載并運行系統引導程序;DPT占64個字節;硬盤有效標志占2個字節(55AA)。采用MBR的硬盤分區如圖1-1所示。1.2.1MBR分區1.2硬盤分區1.硬盤設備在Linux系統中,所有的一切都是以文件的方式存放于系統中,包括硬盤,這是與其它操作系統的本質區別之一。按硬盤的接口技術不同,硬盤種類有三種:(1)并口硬盤(IDE)在Linux系統中,它將接入IDE接口的硬盤文件命名為以hd開頭的設備文件。例如:第一塊IDE硬盤命名為hda,第二塊IDE硬盤就被命名為hdb,以此類推。系統將這些設備文件放在/dev目錄當中。例如/dev/hda、/dev/hdb、/dev/hdc。(2)微型計算機系統接口硬盤(SCSI)連接到SCSI接口的設備使用ID號進行區別,SCSI設備ID號為0~15,Linux對連接到SCSI接口卡的硬盤使用/dev/sdx的方式命名,x的值可以是a、b、c、d等,即ID號為0的SCSI硬盤名為/dev/sda,ID號為1的SCSI硬盤名為/dev/sdb,以此類推。(3)串口硬盤(SATA)在Linux系統中,串口硬盤的命名的方式與SCSI硬盤的命名的方式相同,都是以sd開頭。例如:第一塊串口硬盤被命名為/dev/sda,第二塊被命名為/dev/sdb。注意:分區是一個難點,在分區之前,建議讀者備份重要的數據。1.1.1Linux的起源1.2硬盤分區2.硬盤分區硬盤可以劃分為三種分區:主分區(PrimaryPartition)、擴展分區(ExtensionPartition)和邏輯分區(LogicalPartition)。一個硬盤最多有4個主分區,如果有擴展分區,那么擴展分區也算是一個主分區,只可以將一個主分區變成擴展分區,在擴展分區上,可以以鏈表方式建立邏輯分區。RedHatLinux對一塊IDE硬盤最多支持到63個分區,SCSI硬盤支持到15個。(1)Linux硬盤分區的命名Linux通過字母和數字的組合對硬盤分區命名,如:hda2、hdb6、sda1等。第1、2個字母表明設備類型,如:hd指IDE硬盤,sd指SCSI硬盤或串口硬盤。第3個字母表明分區屬于哪個設備上,如:hda是指第1個IDE硬盤,sdb是指第2個SCSI硬盤。第4個數字表示分區,前4個分區(主分區或擴展分區)用數字1到4表示。邏輯分區從5開始。如:hda2是指第1個IDE硬盤上的第2個主分區或擴展分區,hdb6是指第2個IDE硬盤上的第2個邏輯分區。1.1.1Linux的起源1.2硬盤分區GPT是可擴展固件接口(UEFI)標準的一部分,用來替代BIOS所對應的MBR分區表。采用GPT的硬盤分區如圖1-2所示。每個邏輯塊(LBA,LogicalBlockAddress)是512字節(一個扇區),每個分區的記錄為128字節。負數的LBA地址表示從最后的塊開始倒數,-1表示最后一個塊。1.2.2GPT分區1.2硬盤分區安裝好RHEL8后,進入系統,在命令行中執行如下命令可以查看分區的相關信息。#gdisk-l/dev/sda#fdisk-l/dev/sda#parted-l#blkid#[-d/sys/firmware/efi]&&echo"MachinebootedwithUEFI"||echo"MachinebootedwithBIOS"示例如下:#gdisk-l/dev/sdaNumberStart(sector)End(sector)SizeCode120481050623512.0MiBEF00 #/dev/sda1,boot,EFISystemPartition2105062452449272.0GiB8200 #/dev/sda2,Linuxswap352449286293503512.0MiB8300 #/dev/sda3,Linuxfilesystem,ext2462935047235379131.5GiB8300 #/dev/sda4,Linuxfilesystem,ext457235379213421567929.5GiB8300 #/dev/sda5,Linuxfilesystem,ext41.1.1Linux的起源1.3實例—U盤安裝RedHatEnterpriseLinux8第1步:硬盤分區Windows中,筆者使用DiskGenius按照下面方案對硬盤進行分區。C:7/8/10 100G NTFS ///dev/sda1D:
200G NTFS ///dev/sda5E:
160G NTFS ///dev/sda6F:
200G NTFS ///dev/sda7
500M FAT32 ///dev/sda8 //EFIpartition
100G ext4 ///dev/sda9 //RHEL根分區/boot
600M ext2 ///dev/sda10 //RHELboot分區/opt
180G ext4 ///dev/sda11 //RHELopt分區,存放ISO文件swap
2G swap ///dev/sda12 //RHEL交換分區1.3實例—U盤安裝RedHatEnterpriseLinux8第2步:準備8G以上的U盤,格式化為exFAT格式。假設U盤盤符是“U:”第3步:Windows中下載、安裝Grub2到Grub2官網/gnu/grub/下載grub-2.02-for-windows.zip,將其解壓至任意路徑,比如D:\。這樣Grub2的路徑是D:\grub-2.02-for-windows。以管理員身份運行CMD,輸入命令wmicdiskdrivelistbrief,記錄下U盤的DeviceID(比如:\\.\PHYSICALDRIVE1)。執行如下命令將當前路徑切換至Grub2的路徑。cd/dD:\grub-2.02-for-windows①為BIOS(i386-pc)安裝Grub2,用于傳統BIOS啟動,命令如下:grub-install.exe--boot-directory=U:\--target=i386-pc\\.\PHYSICALDRIVE1目標i386-pc包含在grub-pc包,如果系統使用BIOS+MBR安裝,這個包默認是存在的。②為UEFI64-bit(x86_64-efi)安裝Grub2,用于UEFI方式啟動,命令如下:grub-install.exe--boot-directory=U:\--efi-directory=U:--target=x86_64-efi--removable目標x86_64-efi包含在grub-efi包,只有系統使用UEFI+GPT方式安裝時該包才會存在。1.3實例—U盤安裝RedHatEnterpriseLinux8第4步:編輯grub.cfgmenuentry'Fedora-Workstation-Live-x86_64-29-1.2'{setroot=(hd0,msdos1)setisofile="/iso/Fedora-Workstation-Live-x86_64-29-1.2.iso"loopbackloop$isofile#isoinfo-d-iFedora-Workstation-Live-x86_64-29-1.2.iso#aimingtogettheCDLABELofFedora-Workstation-Live-x86_64-29-1.2.isolinux(loop)/isolinux/vmlinuziso-scan/filename=$isofileroot=live:CDLABEL=Fedora-WS-Live-29-1-2rd.live.imageinitrd(loop)/isolinux/initrd.img}menuentry'rhel-8.0-x86_64-dvd'{setroot=(hd0,msdos1)setisofile="/iso/rhel-8.0-x86_64-dvd.iso"loopbackloop$isofilelinux(loop)/isolinux/vmlinuznoejectinst.stage2=hd:/dev/sdb1:$isofile#對于U盤和移動硬盤,使用(hd0,msdos1)和hd:/dev/sdb1,不能使用(hd0,msdos1)和hd:/dev/sda1initrd(loop)/isolinux/initrd.img}1.3實例—U盤安裝RedHatEnterpriseLinux8第5步:存放光盤鏡像文件將rhel-8.0-x86_64-dvd.iso(6.5G左右)復制到U盤(exFAT分區)中的iso文件夾里,即U:\iso。第6步:重啟電腦重啟電腦,U盤(安裝盤)引導。啟動界面如圖1-3所示,此處選擇【InstallRedHatEnterpriseLinux8】,隨后出現語言選擇界面,依次選擇【中文】→【簡體中文】來設置安裝過程中的語言,然后單擊【繼續】按鈕出現安裝信息摘要界面,如圖1-4所示。注意:不是安裝的Linux系統所用語言,而是安裝過程中安裝界面上顯示的語言。第7步:本地化(系統時區、鍵盤、桌面語言選擇)在圖1-4中,單擊【本地化】中的【日期和時間】,修改系統時區。單擊【本地化】中的【鍵盤】,選擇【English(US)】鍵盤布局。單擊【本地化】中的【語言支持】,選擇【簡體中文(中國)】。圖1-4安裝信息摘要界面1.3實例—U盤安裝RedHatEnterpriseLinux8第8步:軟件(安裝源、軟件選擇)在圖1-4中,單擊【軟件】中的【安裝源】,可以選擇安裝介質。前面步驟設置好后,會自動檢測到iso文件,即rhel-8.0-x86_64-dvd.iso。在圖1-4中,單擊【軟件】中的【軟件選擇】,如圖1-5所示。在圖1-5中,可選的軟件組類型較多,而且默認安裝是一個非常小的甚至不完整的系統。根據自己的具體需求進行選擇。對于初學者,建議選擇“Workstation”。圖1-5軟件選擇1.3實例—U盤安裝RedHatEnterpriseLinux8第9步:存儲(硬盤分區、交換分區、根分區、/boot分區、/boot/efi分區)在圖1-4中,單擊【系統】中的【安裝目的地】,出現安裝目標位置界面,如圖1-6所示,選擇“硬盤”,單擊【自定義】。單擊【完成】按鈕,出現手動分區界面,如圖1-7所示。圖1-6指定磁盤創建分區1.3實例—U盤安裝RedHatEnterpriseLinux8在圖1-7中,以標準分區創建存儲。創建根分區,【掛載點】文本框中輸入/,【文件系統】選項中選擇ext4或xfs,指定【期望容量】大小為18G。再創建boot分區,【掛載點】文本框中輸入/boot,【文件系統】選項中選擇ext4,指定【期望容量】大小為500M。最后創建swap分區,【掛載點】文本框中輸入swap,【文件系統】選項中選擇swap,指定【期望容量】大小為2G。圖1-7創建分區完成創建分區后,單擊【完成】按鈕,在接下來彈出的窗口中單擊【接受更改】按鈕,對硬盤分區進行格式化操作。1.3實例—U盤安裝RedHatEnterpriseLinux8第10步:安裝軟件包完成以上操作后,單擊圖1-4中的【開始安裝】按鈕,進入安裝軟件包過程,這需要一段時間,請耐心等待。界面如圖1-8所示。在圖1-8中,單擊【根密碼】按鈕,為系統中的超級用戶root設一個密碼,root帳號具有最高權限,是Linux默認的系統管理員帳號。注意,該口令很重要。至少6個字符以上,含有特殊符號,并要記好。在圖1-8中,單擊【創建用戶】按鈕,可以創建普通用戶,建議創建一個。安裝過程完成后,點擊【重啟】按鈕。1.3實例—U盤安裝RedHatEnterpriseLinux8第11步:首次引導配置重新啟動后將進入GRUB2菜單模式,出現啟動選擇菜單,按【e】鍵進入菜單編輯模式,按【c】鍵進入命令行模式。選擇某個菜單后,編輯該菜單,按【Ctrl+x】鍵啟動該菜單指定的系統,按【Ctrl+c】鍵進入命令行模式,按【ESC】鍵取消當前的編輯操作,返回菜單模式。選擇RHEL8菜單項,啟動RHEL8操作系統。隨后,將進行首次引導配置(第一次啟動進入RHEL8),讀者可以根據提示進行相關的設置,多數是單擊【前進】按鈕。最后出現登錄界面,安裝后的初始化過程到此結束,登錄后進入GNOME桌面環境。注意:對于Fedora30,安裝好系統之后,首次進入登錄界面時要求創建普通用戶,比如筆者創建用戶ztg,然后用ztg帳號登錄系統,在命令行執行命令:sudopasswdroot,為root用戶設置密碼,注銷ztg,然后就可以使用root帳號登錄Fedora30系統了。1.3實例—U盤安裝RedHatEnterpriseLinux81.4引導工具GRUBLegacy的設置與應用引導程序是駐留在硬盤第0柱、第0面、第1扇區(MBR、主引導記錄)的程序。在啟動過程中,檢測系統之后,若系統被設置為從MBR引導的話,BIOS將控制權交給MBR,而駐留在MBR中的程序就是引導程序,它負責載入操作系統內核(Kernel)并把控制權轉交給Kernel,然后Kernel再進一步初始化剩余的操作,直到Linux顯示用戶登錄界面。有許多引導程序可以使用,包括GNUGRUB(GrandUnifiedBootLoader)、Bootmanager、LILO(LInuxLOader)、NTLDR(WindowsNT的引導程序)、bootmgr(Windows7的引導程序),本節主要介紹GRUB。1.4引導工具GRUBLegacy的設置與應用GRUB是一個功能強大的多系統引導程序,專門處理Linux與其它操作系統共存的問題。它可以引導的操作系統有Linux、OS/2、Windows系列、Solaris、FreeBSD和NetBSD等。它的優勢在于能夠支持大硬盤、支持開機畫面、支持菜單式選擇,并且分區位置改變后不必重新配置,使用非常方便。目前大多Linux發行版采用GRUB作為默認的引導程序。注意:在進行GRUB操作之前,最好先將MBR備份,備份工具建議使用DiskGen。1.GRUB的三種模式GRUB的用戶界面有三種:菜單模式、菜單編輯模式和命令行模式。(1)菜單模式當存在/boot/grub/menu.lst文件時,系統啟動后會自動進入該模式。菜單模式下用戶只需要用上下箭頭來選擇想啟動的系統或者執行某個命令,菜單定義在menu.lst文件中,也可以從菜單模式按【C】鍵進入命令行模式,并且可以按【ESC】鍵從命令行模式返回菜單模式。菜單模式下按【E】鍵將進入菜單編輯模式。(2)菜單編輯模式菜單編輯模式用來對菜單項進行編輯,其界面和菜單模式的界面十分類似,不同的是菜單中顯示的是對應某個菜單項的命令列表。如果在編輯模式下按【ESC】鍵,將取消所有當前對菜單的編輯,并回到菜單模式下。在編輯模式下選中一個命令行,就可以對它進行修改,修改完畢后按回車鍵,GRUB將會提示用戶確認。(3)命令行模式進入命令行模式后,GRUB會給出命令提示符“grub>”,此時就可以輸入命令,并按Enter鍵執行。執行help命令,可以顯示可用的命令。此模式下允許使用類似于Bashshell的命令行編輯功能。1.4.1GRUB的設置1.4引導工具GRUBLegacy的設置與應用2.設備名稱使用GRUB時,文件系統習慣上采用的命名方式為:(,)。在設備命名中,圓括號和逗號是很重要的。指出是一個硬盤(hd)還是一個軟盤(fd)。依照系統BIOS而確定的設備號,從0開始。第1個IDE硬盤被標為0,第2個IDE硬盤被標為1。這個排序大體上等同于linux內核用字母安排設備的順序,只是在hda中的a變成了0,hdb中的b變為了1,以此類推。系統的第1個硬盤驅動器被GRUB稱為(hd0)。在它上面的第一個分區被稱為(hd0,0),第2個硬盤驅動器上的第3個分區被稱為(hd1,2)。目前GRUB將SATA硬盤和scsi硬盤都認成hd。3.文件名稱當在GRUB中輸入包括文件的命令時,文件名必須直接在設備和分區后指定。一個絕對文件名的格式為:(,)/path/to/file。1.4.1GRUB的設置1.4引導工具GRUBLegacy的設置與應用4.GRUB的根文件系統GRUB的根文件系統與Linux的根文件系統是沒有關系的,GRUB的根文件系統是用于一個特定設備的根分區。GRUB使用這個信息來掛載這個設備并從它上面載入文件。在RedHatLinux中,一旦GRUB載入它自己的包含Linux內核的根分區,那么kernel命令就可以將內核文件的位置作為一個選項來執行。一旦Linux內核開始引導,它就設定自己的根文件系統,此時的根文件系統就是用戶用來與Linux聯系的那個根文件系統。然而最初的GRUB根文件系統以及它的掛載都將被去掉。1.4.1GRUB的設置1.4引導工具GRUBLegacy的設置與應用default=1default后加一個數字n,表示第n+1個“title”操作系統,0表示第一個“title”的操作系統,以此類推。default=1表示在用戶不選擇時,將自動載入第2個操作系統(WindowsXP)。timeout=5timeout表示默認的等待時間,如果超過5秒,用戶還沒有作出選擇,那么系統將自動載入默認的操作系統(default=1)。splashimage=(hd0,3)/boot/grub/splash.xpm.gz指定GRUB引導時使用的屏幕圖像文件存放的路徑。#hiddenmenu隱藏菜單選項titleRedHatEnterpriseLinuxServer(2.6.32-220.2.1.el6.x86_64)title定義啟動菜單項的名稱,title后面的字符串就是在菜單項上顯示的選項。root(hd0,3)設置GRUB的根分區,是/boot對應的分區或boot文件夾所在的分區。kernel/boot/vmlinuz-2.6.32-220.2.1.el6.x86_64roroot=UUID=a58f1941-c571-4db7-b51d-baf6f99f35a8rd_NO_LUKSrd_NO_LVMrd_NO_MDrd_NO_DMLANG=zh_CN.UTF-8KEYBOARDTYPE=pcKEYTABLE=uscrashkernel=autorhgbquiet指定內核文件(vmlinuz-2.6.32-220.2.1.el6.x86_64)與要掛載的根設備(root=UUID=a58f1941-c571-4db7-b51d-baf6f99f35a8)。vmlinuz-2.6.32-220.2.1.el6.x86_64后面的都是傳遞給內核的參數,ro是readonly的意思。1.4.1GRUB的設置1.4引導工具GRUBLegacy的設置與應用initrd/boot/initramfs-2.6.32-220.2.1.el6.x86_64.img指定初始化內存鏡像盤。titleWindowsXProotnoverify(hd0,0)做root命令同樣的事情,只是不掛入分區。chainloader+1加載(hd0,0)第一扇區(PBR,分區引導記錄)。titleWin7rootnoverify(hd0,2)做root命令同樣的事情,只是不掛入分區。makeactive將(hd0,2)設置為活動分區,只對主分區有效。主要用于Windows系統。chainloader/bootmgr加載(hd0,2)分區文件系統中的bootmgr。GRUB使用了鏈式裝入器(chainloader)。由于它創建了一個從引導裝入器到另一個引導裝入器的鏈,因此這種技術叫做鏈式裝入技術。這種鏈式裝入技術可用于引導任何版本的DOS或Windows操作系統。root與rootnoverify的區別:root指定根分區并掛載,rootnoverify指定根分區但不掛載。在系統安裝好后,默認的是rootnoverify(hdx,y)這樣的形式,但是有時候會出現Windows引導不起來的情況。這時,可以在grub中將引導Windows那段中的rootnoverify改為root。1.4.1GRUB的設置1.4引導工具GRUBLegacy的設置與應用實例1-1修復GRUB當硬盤上的MBR被修改過,Linux不能被正常引導時,就應該考慮修復GRUB了。要把GRUB引導裝載程序重新安裝到硬盤上的方法如下:首先,需要指出哪個硬盤分區將成為GRUB根分區,在這個分區上的/boot/grub目錄中要有stage1和stage2文件。該任務由root(hd0,7)命令完成。然后,要決定將GRUB安裝到哪里。如果安裝到MBR,則可以指定整個硬盤而不必指定分區,如:grub>setup(hd0)。如果要將GRUB安裝到/dev/hda5的PBR(分區引導記錄),應輸入:grub>setup(hd0,4)命令。最后,執行grub>quit命令退出GRUB控制臺。到此,已經修復好GRUB,現在可以用GRUB引導系統了。1.4.2實例—GRUB的應用1.4引導工具GRUBLegacy的設置與應用修復GRUB的詳細過程如下:第1步:把安裝盤的第一張放到光驅,然后重新啟動機器,在BIOS中把系統用光驅來引導。第2步:等安裝界面出來后,在boot后面輸入“linuxrescue”,敲回車鍵。第3步:然后會讓你配置語言和鍵盤,按需求繼續。第4步:然后會出現命令提示符:sh-3.2#第5步:執行#grub命令,會出現GRUB命令提示符:grub>,此時就進入了功能強大的GRUB控制臺。注意:root和(hd0,3)之間有一個空格,(hd0,3)是linuxboot分區。setup和(hd0)之間有空格,setup(hd0)就是把GRUB寫到第1塊硬盤的MBR上。GRUB控制臺同Shell一樣也具有命令行的自動補齊功能。注意:如果硬盤上的MBR被修改過,通過其它方法還能夠進入Linux命令行,則可以執行命令#/sbin/grub2-install/dev/hda或#/sbin/grub2-install/dev/sda修復GRUB。1.4.2實例—GRUB的應用1.4引導工具GRUBLegacy的設置與應用實例1-2重設root用戶密碼有時候會忘記root用戶的密碼,下面給出解決辦法。第1步:重啟系統,進入GRUB啟動界面(菜單模式),如圖1-4所示。選擇“RedHatEnterpriseLinux”菜單項,單擊【E】鍵,進入菜單編輯模式,如圖1-5所示。第2步:在圖1-5中,選擇“kernel”菜單項,單擊【E】鍵對該項進行編輯,將光標移動到最后,輸入字母s或1(是數字1),敲回車鍵,然后單擊【B】鍵啟動系統。注意:字母s和前面的單詞之間有空格。如果不是輸入字母s或1,而是“rwinit=/bin/sh”,則進入超級終端模式,一般用于“急救”,rw和前面的單詞之間有空格。第3步:在Linux的單用戶模式下,執行命令#passwd-droot。至此,root用戶的密碼已經被清除。第4步:執行命令#init3(或#init5)。第5步:進入Linux系統后,執行命令passwd為root用戶重新設置密碼。1.4.2實例—GRUB的應用1.5引導工具GRUB2的設置與應用###GRUB分區編號如下:(hd0,1):表示第1個硬盤的第1個分區(hd0,9)/boot/vmlinuz:表示的第1個硬盤的第5個邏輯分區中的boot目錄中的vmlinuz文件###GRUB2分區編號如下:(hd0,msdos2):表示第一塊硬盤的第二個mbr分區。grub2中分區從1開始編號,傳統的grub是從0開始編號的(hd0,msdos5):表示第一塊硬盤的第一個邏輯分區(hd0,gpt1):表示第一塊硬盤的第一個gpt分區/boot/vmlinuz:相對路徑,基于根目錄,表示根目錄下的boot目錄下的vmlinuz,:如果設置了根目錄變量root為(hd0,msdos1),則表示(hd0,msdos1)/boot/vmlinuz(hd0,msdos1)/boot/vmlinuz:絕對路徑,表示第一硬盤第一分區的boot目錄下的vmlinuz文件1.5.1GRUB2與GRUBLegacy的區別GRUB2是GNUGRUB(GRandUnifiedBootloader)的最新版本。GRUB2已經取代之前的GRUB(即0.9x版本,該版本目前被稱為GRUBLegacy)。1.5引導工具GRUB2的設置與應用GRUB2的配置文件為grub.cfg,GRUB2配置文件的關鍵字和GRUB不一樣,比如:title更改為menuentry、insmod可以加載所需要的模塊、root更改為setroot=、kernel更改為linux等。BIOS+MBR模式下,GRUB2的配置文件為/boot/grub2/grub.cfg。UEFI+GPT模式下,GRUB2的配置文件為/boot/efi/EFI/redhat/grub.cfg。為了便于閱讀grub.cfg配置文件中的菜單項,首先編輯文件/etc/default/grub,刪除GRUB_ENABLE_BLSCFG=true這一行,然后執行如下命令重新生成GRUB2的配置文件。grub2-mkconfig-o/boot/grub2/grub.cfg //BIOS+MBR模式下或grub2-mkconfig-o/boot/efi/EFI/redhat/grub.cfg //UEFI+GPT模式下BIOS+MBR模式下,GRUB2配置文件grub.cfg的部分內容如下。1.5.2GRUB2配置文件1.5引導工具GRUB2的設置與應用###BEGIN/etc/grub.d/00_header###setpager=1load_env #加載變量,如果在grubenv保存變量,則啟動時裝載setdefault="${saved_entry}" #設置默認引導項,默認值為0settimeout=5 #倒計時5秒后,按默認啟動項啟動###END/etc/grub.d/00_header######BEGIN/etc/grub.d/10_linux###menuentry'RedHatEnterpriseLinux(4.18.0-32.el8.x86_64)8.0(Ootpa)'--classred--classgnu-linux--classgnu--classos--unrestricted$menuentry_id_option'gnulinux-4.18.0-32.el8.x86_64-advanced-3972a63d-409b-42bd-9810-1df14b2fc531'{ load_video setgfxpayload=keep insmodgzio insmodpart_msdos #UEFI+GPT模式下,為:insmodpart_gpt insmodext2 setroot='hd0,msdos1' #UEFI+GPT模式下,為:setroot='hd0,gpt1' if[x$feature_platform_search_hint=xy];then search--no-floppy--fs-uuid--set=root--hint-bios=hd0,msdos1--hint-efi=hd0,msdos1--hint-baremetal=ahci0,msdos1--hint='hd0,msdos1'96cbabe7-a2f6-410c-a23b-3bacf4d888c8
#UEFI+GPT模式下,為如下一行 search--no-floppy--fs-uuid--set=root--hint-bios=hd0,gpt1--hint-efi=hd0,gpt1--hint-baremetal=ahci0,gpt196cbabe7-a2f6-410c-a23b-3bacf4d888c8 else search--no-floppy--fs-uuid--set=root96cbabe7-a2f6-410c-a23b-3bacf4d888c8 fi linux
/vmlinuz-4.18.0-32.el8.x86_64root=UUID=3972a63d-409b-42bd-9810-1df14b2fc531rocrashkernel=autoresume=UUID=b9b516bf-8ed4-440a-92fa-5731f2021849rhgbquiet initrd/initramfs-4.18.0-32.el8.x86_64.img}###END/etc/grub.d/10_linux###1.5.2GRUB2配置文件1.5引導工具GRUB2的設置與應用root變量指定根設備的名稱,使得后續使用從“/”開始的相對路徑引用文件時將從該root變量指定的路徑開始。注意:在Linux中,從根“/”開始的路徑表示絕對路徑,如/etc/fstab。但在GRUB2中,從“/”開始的表示相對路徑,其相對的基準是root變量設置的值,而使用“(dev_name)/”開始的路徑才表示絕對路徑。一般root變量都表示/boot所在的分區,但這不是絕對的,如果設置為根文件系統所在分區,如root=(hd0,gpt2),則后續可以使用/etc/fstab來引用“(hd0,gpt2)/etc/fstab”文件。另外,root變量還應該與linux或linux16命令所指定的內核啟動參數“root=”區分開來,內核啟動參數中的“root=”的意義是固定的,是指根文件系統所在分區。例如:一般情況下,/boot都會單獨分區,所以root變量指定的根設備和root啟動參數所指定的根分區不是同一個分區,除非/boot不是單獨的分區,而是在根分區下的一個目錄。1.5.2GRUB2配置文件1.5引導工具GRUB2的設置與應用GRUB2配置文件grub.cfg只有root權限才能修改,如果修改了grub.cfg文件,系統內核或grub升級時,會自動執行grub2-mkconfig,grub.cfg文件之前的配置會消失,為了保證修改后的配置信息能一直保留,不必直接修改grub.cfg,只要把個性化配置寫入/etc/default/grub和/etc/gurb.d/目錄下的腳本文件,以后不管升級內核或者執行grub2-mkconfig,都會按要求創建個性化的grub.cfg。1./etc/default/grub文件內容grub2-mkconfig是根據/etc/default/grub文件來創建配置文件grub.cfg的。該文件中定義的是grub的全局宏,修改內置的宏可以快速生成grub配置文件。在/etc/default/grub中,使用鍵值對格式:key=vaule,key全部為大小字母,如果vaule部分包含了空格或其它特殊字符,則需要使用引號引起來。注意:GRUB_DEFAULT將使用grub2-set-default和grub2-reboot命令來配置默認啟動項。首先,在/etc/default/grub中設置grub_default=saved;然后,運行如下命令:#grub2-mkconfig-o/boot/grub2/grub.cfg或#grub2-mkconfig-o/boot/efi/EFI/redhat/grub.cfg接著執行如下命令:#grub2-set-default0 //將會持續有效,直到下一次修改#grub2-reboot0 //在下一次啟動時生效#grub2-editenvlist //查看默認項#grepmenuentry/boot/grub2/grub.cfg //菜單項列表1.5.3GRUB2腳本修改1.5引導工具GRUB2的設置與應用2./etc/grub.d目錄下的腳本文件在/etc/grub.d/目錄下還有一些grub配置腳本,這些shell腳本讀取一些腳本配置文件(如/etc/default/grub),根據指定的邏輯生成grub配置文件。/etc/grub.d/下面的文件:00_header、10_linux、20_linux_xen、20_ppc_terminfo、30_os-prober、40_custom、41_custom這些腳本對應/boot/grub2/grub.cfg的各個部分,不同Linux發行版會有不同。00_header:配置初始的顯示項目,如默認選項、時間限制等,由/etc/default/grub導入,一般不需要配置。10_linux:定位當前操作系統使用的root設備內核的位置。30_os-prober:用來搜索linux和其它系統,此腳本中的變量用來指定在/boot/grub2/grub.cfg和grub2菜單中的名稱顯示方式。40_custom:用戶自定義的配置文件模板,用來加入用戶自定義的菜單模板,將會在執行grub2-mkconfig時更新至grub.cfg中。41_custom:判斷custom.cfg配置文件是否存在,如果存在就加載它。為了保證修改這些腳本文件后,不會破壞grub2-mkconfig的運行,又能讓生成的/boot/grub2/grub.cfg符合自己的要求1.5.3GRUB2腳本修改1.5引導工具GRUB2的設置與應用3.重新生成grub.cfg修改前述相關腳本文件并且保存后運行grub2-mkconfig命令重新生成grub.cfg文件,默認它會自動嘗試探測有效的操作系統內核,并生成對應的操作系統菜單項。4.改變系統的排列順序在/etc/grub.d目錄中的腳本文件的文件名都是以數字開頭,這確定了在執行grub2-mkconfig時各文件內容被執行的順序,只要把30_os-prober這個文件名的數字30改為05到10之間的數字即可,比如改為06_os-prober,這樣創建出來的grub.cfg內的菜單項,Windows的排序就會自動在RHEL之前。1.5.3GRUB2腳本修改1.5引導工具GRUB2的設置與應用GRUB2中沒有menu.lst,并且不允許直接編輯grub.cfg。刪除多余引導菜單項的方法:刪除/boot下的相關內核文件,以及與之相關的模塊文件。#cd/boot#rm-rf*4.18.16-300.fc29*#cd/lib/modules/#rm-rf4.18.16-300.fc29#grub2-mkconfig-o/boot/grub2/grub.cfg或#grub2-mkconfig-o/boot/efi/EFI/redhat/grub.cfg#reboot1.5.4GRUB2刪除多余引導項1.5引導工具GRUB2的設置與應用Fedora中刪除多余不用的內核,執行如下命令。1)查詢安裝的所有內核#rpm-qa|grepkernel2)查詢當前正在使用的內核#uname-r3)刪除多余的內核#dnfremovekernel-core-4.19.9*#dnfremovekernel-devel-4.19.9*#dnfremovekernel-debug-core-4.19.9*#dnfremovekernel-debug-devel-4.19.9*4)重啟計算機#reboot1.5.4GRUB2刪除多余引導項1.5引導工具GRUB2的設置與應用在傳統的GRUB上,可以直接在bash中輸入GRUB命令進入命令交互模式,但GRUB2只能在系統啟動前進入GRUB2交互命令行。GRUB2支持很多命令,有些命令只能在交互式命令行下使用,有些命令可用在配置文件中。無需掌握所有命令,下面列出一些GRUB2命令行環境或腳本文件中常用的命令。1.5.5GRUB2命令行環境的常用命令1.boot 2.set/unset3.default4.timeout5.root6.lsmod/insmod/rmmod7.ls8.search9.loopback10.linux/linux1611.initrd/initrd1612.chainloader13.cat14.configfile15.export16.halt和reboot17.save_env和list_env1.5引導工具GRUB2的設置與應用實例1-3修復GRUB2(MBR被修改)電腦先安裝Win7/10,然后安裝RHEL8,之后Win7/10出問題,又重新安裝Win7/10,此時GRUB2菜單消失,主要是因為MBR被微軟的引導代碼翻蓋。解決方法:在Win7/10中安裝、運行easyBCD,選擇“添加新條目”選項,右邊窗口選擇NeoGrub,之后點擊“安裝”。重啟進入grub,在grub命令行執行如下命令。grub>find--set-root/boot/grub/core.img ///boot如果是單獨分區,則去掉/bootgrub>kernel/boot/grub/core.img ///boot如果是單獨分區,則去掉/bootgrub>boot進入grub2菜單,進入RHEL8系統后,再執行如下命令:#grub2-install/dev/sda //把boot.img寫入MBR,core.img寫入保留扇區注意:在標準的MBR分區表上,第一個分區的起始位置是第63扇區,而MBR是第0扇區,中間有62個扇區的空間既不屬于任何分區,也不屬于MBR,這62個扇區就是保留扇區。1.5.6實例—GRUB2的應用1.5引導工具GRUB2的設置與應用實例1-4重設root用戶密碼有時候會忘記root用戶的密碼,下面給出解決辦法。重啟計算機,再次登錄到GRUB2菜單模式,按【e】鍵進入編輯模式,找到以linux開頭的行,在末尾加“rwinit=/bin/bash”,按【ctrl+x】鍵啟動系統。執行命令(vim/etc/passwd)編輯/etc/passwd文件的第一行:,刪除字母x,然后保存/etc/passwd文件。重啟計算機即可進入RHEL,然后重新設置root用戶密碼。實例1-5為GRUB2設置密碼在系統啟動時,用戶可以隨意修改系統內核啟動參數,這樣就顯得不安全了,因此為GRUB2設置密碼,可以防止惡意用戶非法修改內核參數登陸系統。在RHEL8終端中,執行命令:#grub2-mkpasswd-pbkdf2,然后輸入密碼,得到加密后的字符串,假如是“XXXXX”。然后,向/etc/grub.d/00_header末尾追加如下內容:cat<<EOFsetsuperusers="ztg"password_pbkdf2ztgXXXXXEOF接著,執行命令:#grub2-mkconfig-o/boot/grub2/grub.cfg。重啟計算機,再次登錄到GRUB2菜單模式,此時如果按【e】鍵編輯菜單,則會要求輸入正確的用戶名(ztg)和密碼。1.5.6實例—GRUB2的應用1.6RHEL8的啟動流程目前常見的電腦主板固件是BIOS和UEFI。在IBMPC兼容系統上,BIOS(BasicInputOutputSystem,基本輸入輸出系統)是一種業界標準的固件接口,是個人電腦啟動時加載的第一個軟件。EFI(ExtensibleFirmwareInterface,可擴展固件接口)是Intel為PC固件的體系結構、接口和服務提出的建議標準,其主要目的是為了提供一組在操作系統加載之前(啟動前)在所有平臺上一致的、正確指定的啟動服務,被看做是BIOS的繼任者。UEFI(UnifiedExtensibleFirmwareInterface,統一的可擴展固件接口)是一種詳細描述類型接口的標準,是由EFI1.10為基礎發展起來的,它的所有者已不再是Intel,而是一個稱作UnifiedEFIForm的國際組織。目前PC啟動類型可劃分為四種類:BIOS+MBR、BIOS+GPT、UEFI+MBR、UEFI+GPT。其中,BIOS+MBR和UEFI+GPT是標準引導類型,BIOS+GPT、UEFI+MBR是兼容性引導類型。下面介紹BIOS+MBR和UEFI+GPT模式下,RHEL8的啟動流程。1.6RHEL8的啟動流程BIOS+MBR模式下,RHEL8的大概啟動流程如下:1.第一階段:BIOS(BasicInputOutputSystem)初始化(如圖1-9所示)首先加載BIOS,并通過BIOS程序去加載CMOS的信息,并且根據CMOS內的設定值取得主機的各項硬件配置信息,如CPU與接口設備的溝通頻率、啟動設備(硬盤、光盤、網絡)的搜尋順序、硬盤的大小與類型、系統時間、各周邊總線是否啟動PlugandPlay(PnP,即插即用設備)、各接口設備的I/O地址以及與CPU溝通的IRQ(InterruptReQuest)中斷等。在取得這些信息后,BIOS還會進行自檢,即進行所謂的POST(Power-onSelfTest),然后依據BIOS內設置的引導順序從硬盤、USB或CDROM中讀入“引導塊”。如果BIOS中將硬盤設為第一引導設備,那么就把第一個IDE硬盤的MBR讀入內存,然后跳到那里開始執行。1.6.1RHEL8的啟動流程—BIOS+MBR1.6RHEL8的啟動流程1.6.1RHEL8的啟動流程—BIOS+MBR圖1-9BIOS初始化1.6RHEL8的啟動流程2.第二階段:GRUB/GRUB2啟動引導(如圖1-10、圖1-11所示)由于不同的操作系統,其文件系統格式不相同,因此需要一個開機管理程序來處理內核文件的加載問題。這個開機管理程序被稱為BootLoader,安裝在MBR。在使用Windows時,這里面放的代碼就把分區表里標記為Active的分區的第一個扇區(一般存放著操作系統的引導代碼)讀入內存并跳轉到那里開始執行,而在用GRUB引導Linux時,有兩種選擇:(1)把GRUB安裝在MBR這時就由BIOS直接把GRUB代碼調入內存,然后執行GRUB。即BIOS→GRUB(在MBR中)→Kernel。(2)把GRUB安裝在Linux分區把GRUB安裝在Linux分區的PBR(PartitionBootRecord),并把Linux分區設為Active。這時,BIOS調入的是Windows下的MBR代碼,然后由這段代碼來調入GRUB的代碼(位于活動分區的第1個扇區)。即BIOS→MBR→GRUB(在活動分區的第1個扇區)→Kernel。MBR分為廣義和狹義兩種:廣義的MBR包含整個扇區;狹義的MBR僅指引導程序。MBR由三部分組成:主引導程序、硬盤分區表DPT(DiskPartitiontable)和硬盤有效標志(55AA)。在總共512字節的MBR里,主引導程序(BootLoader)占446個字節,分區表占64個字節,硬盤有效標志占2個字節。注意:MBR雖然只有512B,但其中包含了十分重要的操作系統引導程序和硬盤分區表。MBR損壞將會造成無法引導操作系統的嚴重后果。1.6.1RHEL8的啟動流程—BIOS+MBR1.6RHEL8的啟動流程1.6.1RHEL8的啟動流程—BIOS+MBR圖1-10GRUB啟動引導、內核引導1.6RHEL8的啟動流程1.6.1RHEL8的啟動流程—BIOS+MBR圖1-11GRUB2啟動引導、內核引導1.6RHEL8的啟動流程3.第三階段:內核引導(vmlinuz、initramfs)(如圖1-10、圖1-11所示)(1)vmlinuzLinux內核鏡像文件(vmlinuz)是可引導的、壓縮的內核。Linux能夠使用硬盤空間作為虛擬內存,因此得名vm(VirtualMemory)。vmlinuz是可執行的Linux內核,它的解壓程序也在內核當中。內核映像文件一般存放在/boot目錄中。(2)initramfsinitramfs(初始化內存文件系統)又稱為初始化內存盤,為系統提供了內核鏡像文件(vmlinuz)無法提供的模塊,這些模塊對正確引導系統非常重要,通常和存儲設備及文件系統有關,但也可支持其它特性和外設。initramfs鏡像文件使用mkinitrd命令創建。(3)內核初始化由BootLoader讀取Linux內核文件后,將內核解壓到內存中,此時Linux內核重新檢測一次硬件,而不一定使用BIOS檢測的硬件信息,利用內核功能檢測硬件與加載驅動程序,測試并驅動各個周邊設備(CPU、儲存設備、網卡、聲卡等)。然后將根分區以只讀方式掛載,接著加載并執行1號進程systemd(/usr/lib/systemd/systemd)。1.6.1RHEL8的啟動流程—BIOS+MBR1.6RHEL8的啟動流程4.第四階段:systemd從RHEL7開始,sysvinit軟件包中的init已經由systemd(/usr/lib/systemd/systemd)替換。在內核加載完畢、進行完硬件檢測與驅動程序加載后,內核將啟動第一個進程,即1號進程systemd。systemd是所有進程的父進程,它負責將Linux主機帶到一個用戶可操作狀態(可以執行各種應用程序)。systemd的一些功能遠較舊式init程序更豐富,可以管理運行中的Linux系統的許多方面,包括掛載文件系統、開啟和管理Linux系統服務等。1.6.1RHEL8的啟動流程—BIOS+MBR1.6RHEL8的啟動流程除了圖形化界面,UEFI相比傳統BIOS,還提供了文件系統的支持,能夠直接讀取FAT、FAT32分區中的文件。UEFI還有一個重要特性就是在UEFI下運行應用程序,這類程序文件通常以efi結尾。UEFI控制系統的啟動過程,同時為操作系統和系統固件提供接口,與BIOS不同的是UEFI獨立于CPU有自己的架構,同時它擁有自己的驅動。x86架構的計算機以UEFI模式啟動的時候,UEFI接口在系統的存儲空間搜索EFI系統分區(ESP)。該分區包含了一些編譯好的應用,這些應用滿足EFI架構,包含操作系統的BootLoader(引導加載程序)以及相關的工具。UEFI系統包含了EFI啟動管理器,該管理器能夠按照默認配置啟動系統,或者提示使用者選擇需要的系統來進行啟動。但一個BootLoader被選中之后,UEFI將其讀取到內存中,然后將控制權交給BootLoader。1.6.2RHEL8的啟動流程—UEFI+GPT1.6RHEL8的啟動流程UEFI+GPT模式的啟動過程大致分為5個階段,如圖1-13所示,①電腦加電后,②UEFI從硬盤讀取分區表(GPT),掛載ESP分區,掛載目錄為/boot/efi/,ESP存放了操作系統啟動相關的信息,如操作系統所在的磁盤位置等,以及其它可以使用EFI應用,③執行EFI應用,RHEL8的EFI應用保存在/boot/efi/EFI/redhat中,包含了grubx64.efi、mmx64.efi、shimx64.efi、shimx64-redhat.efi等應用,并且還包含了GRUB2的配置文件grub.cfg,grubx64.efi讀取grub.cfg,④假如用戶選擇RHEL8菜單項,加載BOOT分區中的vmlinuz和initramfs,啟動RHEL8內核,⑤以只讀方式掛載ROOT分區中的根文件系統,接著啟動一號進程systemd(/usr/lib/systemd/systemd)。注意:grubx64.efi功能等價于前一小節介紹的boot.img&core.img,grubx64.efi包含常用的GRUB2模塊:normal.mod、boot.mod、linux.mod等。注意:許多UEFI固件實現了某種BIOS兼容模式,可以像BIOS固件一樣啟動系統,它們可以查找磁盤上的MBR,然后從MBR中執行BootLoader,然后將控制權交給BootLoader。1.6.2RHEL8的啟動流程—UEFI+GPT1.6RHEL8的啟動流程1.6.2RHEL8的啟動流程—UEFI+GPT圖1-13UEFI+GPT模式的啟動過程1.8習題1.填空題(1)GNU的含義是______________________________。(2)Linux的版本號分為:_________和_________。(3)目前RedHat系列的Linux操作系統包括:_____、_____和_____。(4)硬盤有兩種分區格式:_____和_____。(5)安裝Linux時建議至少建立3個分區,分別是_____、_____和_____。(6)Linux默認的系統管理員帳號是_________。(7)RHEL8默認的系統引導工具是________。(8)GRUB/GRUB2的用戶界面有三種:_________、_________和_________。(9)硬盤的第0柱、第0面、第1扇區,這個扇區叫做__________________。(10)MBR由三部分組成:_________、_________和_________。(11)__________________稱為初始化內存盤,為系統提供一系列內核鏡像無法提供的模塊,這些模塊對正確引導系統非常重要。(12)在內核加載完畢、進行完硬件檢測與驅動程序加載后,此時主機硬件已經準備就緒了,這時候內核會啟動一號進程_________。1.8習題2.選擇題(1)Linux最早是由一位名叫__________的計算機愛好者開發。A:RobertKoretskyB:LinusTorvalds C:BillBall D:LinusDuff(2)下列_________是自由軟件。A:Windows10 B:AIX C:Linux D:Solaris(3)Linux根分區的文件系統類型是__________。A:FAT16 B:FAT32 C:ext3/ext4/xfs D:NTFS(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 河南省濮陽市2022-2023學年高二下學期化學學業質量檢測試題(含答案)
- 倉山定向捐助活動方案
- 仙桃騎行活動策劃方案
- 代購加人活動方案
- 仲秋營銷活動方案
- 企業五四宣傳活動方案
- 企業世界閱讀日活動方案
- 企業促生產活動方案
- 企業公司宣傳舞蹈活動方案
- 企業創意元旦活動方案
- DZ 0141-1994地質勘查坑探規程
- 2024 - 2025學年浙美版一年級下冊美術期末考試試卷及答案
- 口腔合伙人合同協議書
- 2025年中國車載顯示行業市場前景預測及投資價值評估分析報告
- DB34T 1948-2013 建設工程造價咨詢檔案立卷標準
- 部編版小學道德與法治三年級下冊期末質量檢測試卷【含答案】5套
- 小學生勞動教育評價細則
- 籃球比賽計分表word版
- 手衛生依從性差魚骨分析
- 課程綜述(數電)
- 塔吊負荷試驗方案
評論
0/150
提交評論