偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

IT斷魂槍--閑聊Linux系統(tǒng)啟動過程

系統(tǒng) Linux 服務(wù)器
云計算大潮到來了,我把IT技術(shù)像五虎斷魂槍一樣收起來了。我不會將它壓到箱底,偶爾我也會練練聊聊,紀念一下那個搞技術(shù)的黃金時代。

前言

沙子龍的鑣局已改成客棧。東方的大夢沒法子不醒了。---- 老舍《斷魂槍》

云計算大潮到來了,我把IT技術(shù)像五虎斷魂槍一樣收起來了。我不會將它壓到箱底,偶爾我也會練練聊聊,紀念一下那個搞技術(shù)的黃金時代。

本文聊個很有嚼頭的技術(shù)問題,Linux系統(tǒng)的啟動過程,當(dāng)我們不用自己安裝系統(tǒng)以后,喪失了這么多樂趣。

[[246650]]

正文

主板加電和硬件自檢,就是開機第一屏啟動界面。

CPU和內(nèi)存插得有問題服務(wù)器會滴滴亂叫,而網(wǎng)卡和硬盤插不插都無所謂,因為這些外設(shè)都不屬于經(jīng)典的計算機系統(tǒng)。

早期小內(nèi)存服務(wù)器一般有內(nèi)存檢測的功能,但256G內(nèi)存的服務(wù)器啟動的速度也太慢了,重啟一分鐘能啟動的服務(wù)還能恢復(fù),重啟三分鐘可能群集性狀就變了,所以我們經(jīng)常順手就把他關(guān)掉了。

 

2. 讀取主板引導(dǎo)配置,現(xiàn)在終于要從外部設(shè)備讀取數(shù)據(jù)了。

主板大都是BIOS引導(dǎo),也有是UEFI引導(dǎo),但從服務(wù)器用戶看區(qū)別也不大。

主板可選從USB/SATA/NIC這幾類接口上獲取引導(dǎo)數(shù)據(jù),而且可以排隊式加載,第一個加載不成功就嘗試第二個。系統(tǒng)安裝鏡像都有個防止誤操作的倒計時,而網(wǎng)絡(luò)引導(dǎo)一般是排在末位,硬盤引導(dǎo)就是通用的系統(tǒng)啟動的方式。

愛折騰桌面電腦的朋友從這一步開始就玩雙系統(tǒng)/WINPE/U盤版Ubuntu/無盤工作站了,還好服務(wù)器維護人員比較單純專一。

 

3. 讀取MBR(可略過)。

如果是BIOS啟動,做為一個老古董它只能會去讀MBR,MBR去讀取GRUB;而UEFI略過MBR,直接讀取GRUB。

BIOS將啟動權(quán)限交給MBR的446字節(jié),而446字節(jié)連Linux啟動界面的logo都裝不下,MBR也只是個搬運工,會將啟動權(quán)限交給GRUB。

遇到過幾次倒霉事以后,我習(xí)慣用dd備份每臺服務(wù)器的前512字節(jié),但自從我做完備份以后,就再也沒倒霉過。

##不好意思沒圖

4. GRUB引導(dǎo)啟動vmlinuz內(nèi)核。

GRUB2如果細說有stage1、stage1.5、stage2多個步驟,我們可以簡單認為前面兩步是為了茍到stage2加載為止。

我們用GRUB來選定要加載的內(nèi)核,并向其傳遞大量啟動參數(shù),這樣就可以在多OS、多Kernel、多runlevel之間來回切換。網(wǎng)上的GRUB調(diào)試教程都集中在這一步,我們還可以直接傳參以單用戶模式啟動,直接無密碼登陸服務(wù)器。

有些人習(xí)慣給/boot一個128M的小分區(qū),可能是老師的老師說過這樣比較“安全”。那是在更早的版本GRUB程序讀不了GB級磁盤分區(qū),沒辦法加載vmlinuz內(nèi)核,現(xiàn)在已經(jīng)只是一個迷信而已。

 

5. 內(nèi)核啟動加載驅(qū)動,但這還沒觸及任何業(yè)務(wù)。

不同硬件同一個版本的vmlinuz內(nèi)核hash值是相同的,因為驅(qū)動信息放在initrd*.img里。Initrd*.img是一個精簡但帶了所有驅(qū)動的linux鏡像,一般系統(tǒng)安裝完之后自動生成,也可以事后手動生成。

曾經(jīng)某偏門軟件推薦用集成鏡像安裝,裝完了就是起不來,我把同內(nèi)核版本、同硬件配置的init*.img替換以后系統(tǒng)就正常啟動。

Kernel加載了所有驅(qū)動后就會卸載initrd*.img,早期linux版本在系統(tǒng)啟動過程中還能看到很多“umount filesystem”的提示,那不是卸載正式文件系統(tǒng),而是卸載了initrd*.img這個迷你系統(tǒng),

##不好意思沒圖

6. Init進程啟動,服務(wù)正式啟動。

從看到“Welcome use CentOS”的彩色歡迎文字開始,init服務(wù)已經(jīng)啟動了。

在這之前的啟動過程也就讀取BIOS/MBR/GRUB和/boot分區(qū),現(xiàn)在終于開始讀/etc目錄的配置文件了。

首先被讀取到的是/etc/fstab,各個磁盤都掛載就位。這個文件注釋很簡單但水很深,我們該用標簽還是UUID來標識磁盤,文件系統(tǒng)自檢功能要不要開,這都可以聊好幾個小時。

看看各服務(wù)的啟動優(yōu)先級也是一個講究多多的過程,iptables會比network先啟動這類依存關(guān)系很好理解;但我也遇到過云平臺的DHCP獲取太慢,而云主機操作系統(tǒng)啟動快、Network還沒從DHCP那里獲取到IP地址,然后Mysqld等需要監(jiān)聽端口的服務(wù)啟動失敗。

 

后記

以上內(nèi)容只能算精簡科普版的Linux系統(tǒng)啟動過程,正式版的啟動過程可以寫十萬字,有興趣的朋友可以自己查維基百科,或拿我說的關(guān)鍵字去百度搜索。

曾經(jīng)我把這些技能當(dāng)做資歷,但現(xiàn)在大家都上云了,它們就只是閑聊的談資了。但客戶上云就能少招一個研究這事的工程師,上云確實也很有意義啊。

夜靜人稀,沙子龍關(guān)好了小門,一氣把六十四槍刺下來;而后,拄著槍,望著天上的群星,想起當(dāng)年在野店荒林的威風(fēng)。嘆一口氣,用手指慢慢摸著涼滑的槍身,又微微一笑,“不傳!不傳!” ---- 老舍《斷魂槍》

責(zé)任編輯:武曉燕 來源: 云算計
相關(guān)推薦

2009-12-03 10:00:46

Linux系統(tǒng)啟動

2018-03-13 13:00:03

Linux運維啟動分析

2025-06-18 09:01:27

Linux系統(tǒng)啟動系統(tǒng)

2010-05-06 14:05:15

Unix系統(tǒng)

2009-08-11 09:03:45

Windows 7系統(tǒng)啟動

2023-09-02 21:39:47

2011-06-28 13:27:13

ARM Linux

2011-08-22 08:53:17

Android啟動過程李洋

2021-02-09 08:23:02

Linux操作系統(tǒng)

2010-03-02 16:13:50

Linux系統(tǒng)啟動過程

2010-03-02 15:45:57

Linux系統(tǒng)啟動過程

2011-07-28 10:34:38

Cocoa 程序 啟動

2014-06-23 10:31:09

Android啟動過程

2011-09-05 17:35:18

MTK啟動過程RTOS

2021-08-03 07:59:37

Linux系統(tǒng)地址

2018-12-06 09:00:06

LinuxWindows雙系統(tǒng)

2010-01-12 13:47:18

Linux grub

2021-09-28 15:03:06

Linux內(nèi)核arm

2017-03-03 09:10:41

2012-02-20 14:47:08

JavaPlay
點贊
收藏

51CTO技術(shù)棧公眾號