害!!安装电脑系统 分区就那么点事
前話
最近想在一臺09年的x32的xp筆記本上安裝個linux系統,不過這臺筆記本雖然bios中是有usb選項的,但在boot menu里面沒能識別到u盤,就嘗試不使用u盤安裝系統,到底也沒有成功。參考了網上許多人的回答,大多直接用u盤的。所以最后還是搗鼓起啟動盤,發現是老電腦上的usb接口的問題,費了點時間裝上了系統。
裝系統并不需要知道多少,不過總歸沒弄懂分區,系統這些知識,所以就花了些時間來學習,整理了一下。
1 .為什么要安裝操作系統
2.打開電源后電腦的運行過程
3.Bios/UEFI把工作轉到哪
4.知道在哪,又要怎么讀取
5.bios和uefi
6.windows系統與linux系統分區
7.個性化設置
注:本文中將磁盤與硬盤混為一談,凡出現磁盤即為硬盤
1 .為什么要安裝操作系統
計算機并不是一開始就裝好操作系統的,畢竟有很多類型計算機,類似于嵌入式有它自己的那一套系統。我們使用的個人計算機是一種微型計算機,面向我們絕大多數用戶,用以完成,編輯,上網之類的工作。但不同人有不同喜好,需求,對應的不同系統在偏向的方向上也會有所不同,也就是說對于底層硬件軟件上的管理形式上不太一樣。(不同需求,就有不同系統,主流的是有windos,linux,mac os)
安裝電腦操作系統從個人理解簡單來看就是讓用戶不用直面機器語言,甚至于可以通過圖像化界面來操作只有01的機器(當然實際上比這復雜得多,圖形化的界面可以省去很多時間)
如果要讓我們自己用0101告訴電腦要使用什么硬件啥的,總是很頭疼的,但這些碼農已經幫我們寫好了,我們根本不用理會底層。一般使用的計算機也朝著智能化,簡便化的方向發展。win10系統的安裝已經是下一步大法輕松搞定了。
系統其實和普通軟件差不多都是打包好的程序。先說明一下,系統并不僅僅是一個文件,不是直接把整個系統拷貝過來就能用的,就當它要和cpu一起工作,得先彼此了解認識一下。所以要有個安裝的過程。再者系統也不能說是一個軟件,因為它是和電腦直接硬件進行溝通,并且規定了相應的規則,給相應的軟件提供一個運行環境。
2.打開電源后電腦的運行過程
普通計算機是你告訴它什么,它就做什么,而且是一步步做下去的,所以開機給它供電的那一刻開始,計算機就開始找指令(跳過運行的具體內容):
1.給計算機的起始命令
第一個發出指令(在系統這一層面可以這么說吧)的是bios/uefi,基本輸入輸出系統,比我們的操作系統簡單很多,是一個預處理環境。它的主要任務是初始化一些硬件設備,啟動一些驅動,把千奇百態的硬件都抽象封裝起來。
這里主要是因為不同的主板配置都不一樣,我們要把同一個win10系統裝在不同的主板上,這中間就需要有一個翻譯bios/uefi,從而操作系統就可以忽略過多硬件層面的問題。(就像我們簡簡單單得看世界名著,其實并不需要所有語言都懂,我們完全可以借助翻譯,只需要一種語言就能看各國的書)
2.預處理環境初始化讀取硬盤(磁盤)
我們的操作系統就是寫在磁盤里的,不過偌大的磁盤從哪里開始讀取,怎么讀這是一個問題。在沒有指令的情況下,電腦是不會干活的,所以在裝系統的時候在:寫入了系統引導文件(引導記錄)。引導文件算是一塊指路牌,明確得告訴CPU關于系統的正確打開方式。引導文件主要就是會把操作系統從哪里讀起,咋樣咋樣跟cpu說。
3.預啟動操作環境(Bios/uefi)忙完它的事情以后,就把工作任務交給操作系統,操作系統在接收到bios/uefi的召喚以后才開始工作。之后就可以通過簡明易懂的圖形界面操作控制絕大多數的復雜電路。
3.Bios/UEFI把工作轉到哪
很顯然bios/uei只是"翻譯"一下主板的一些硬件內容什么的,和用戶交流,更多地還是得靠操作系統,究竟如何轉交工作,是一個問題。
打開電源的時候以后的預處理工作我們并不需要過多了解,不過我們得知道是什么力量使得bios/uefi找到操作系統在哪。我們操作系統在磁盤里。但計算機并不那么認為。
確實系統并不一定在磁盤里,比如一臺沒有裝過系統的計算機必然在磁盤里找不出結果。基于此,在bios/uefi界面有啟動項。再這就隨便舉幾種可能:
1.計算機有不止一個硬盤,得知道從哪個硬盤里讀系統;
2.或許是第一次裝機得從光盤里面讀(裝有iso鏡像的移動設備,例如U盤相當于光盤);
3.再者系統不是本地的,得從網上讀取。
諸如此類,計算機也不用一個個去試,得用戶告訴它(一般默認是直接找第一塊磁盤,找不到就報錯,開不了機)啟動項,計算機才知道下一步是到哪。
4.知道在哪,又要怎么讀取
怎么讓biso/uefi知道磁盤咋讀?畢竟系統不止一種,寫法也不一樣(當然也是符合某一種規范的)。再者系統在磁盤的位置并不是固定,是可以自由選擇從第幾個分區到第幾個分區,這樣bios/uefi又怎么知道應該從哪開始讀?
再這兒,我們姑且把磁盤看成是橫條,從一段到另一端。那么既然要讀取這塊磁盤,我們總是從一個端點開始讀取(磁盤實際儲存并不是一長條的),為此在磁盤的最開始劃出一塊 引導分區 就很有必要了,這塊引導分區大概幾百MB的大小或者更小。總之這塊分區一定要有的。
這一塊引導分區mbr/gpt,寫的就是整一塊磁盤的儲存情況。當bios/uefi看到這個引導的命令就知道在磁盤這一條路上怎么走了。第一個系統的門牌號是* * *,第二個系統的門牌號是xxx,照著這個分區號就能找到系統位置,啟動系統,轉交任務。
5.mbr和gpt
具體怎么看一大串01001的分區表,是計算機的事情。不過還是要稍微得說一下,方便理解mbr,gpt。mbr/gpt前面說差不多就是引導分區的不同形式,可以說是給bios/uefi看的門牌號。就先把mbr/gpt理解成書的目錄好了,我們看書只要瞄一眼目錄就能找到我們要看的東西,bios/uefi只要瞄一眼mbr/gpt也能找到系統在哪。
把整一個磁盤看成一條路,兩邊都是房子,而且還是均勻分布的房子,這些房子都長得差不多。怕認不出來,所以磁盤就開始分扇區,相當于發門牌號,從第一棟房子開始一直到最后一棟房子都有一個門牌號。但這還不夠,這么多房子還要給他劃區,第一街區,第二街區,相當于第一分區C盤,第二分區D盤(實際上盤符的名字不是固定的,不要較真),操作系統是個大佬,所以就把第一分區劃給他管理吧,從今往后在第一分區上有事就找系統。bios/uefi知道了這件事,趕忙把自己的工作做完,就去找系統,仔細得讀一遍mbr/gpt,知道操作系統在第一分區,就跑到第一分區去找系統,轉交任務。*
注意!!!bios一直實際上一直都在工作,這里說把任務轉交,只不過是在用戶看來只要操作系統就夠了,但從硬件層面抽象到操作系統,中間又要有它來‘’‘翻譯”
那至于mbr/gpt兩個名字不太一樣,是不是有很大不同?其實書的目錄寫怎么樣,大概得我們都能看得懂。只不過有時候目錄不那么詳細,我們翻得比較累。mbr和gpt就是兩種目錄,mbr目錄比較短(512個字節),只能管2T的樣子,也不是那么細致,只能劃分第一分區到第四分區(第四分區是可以劃擴展分區的,不多說)。gpt目錄就比較長(比mbr大不知道多少),管18EB(也不知道大了多少),比較細致,能有128個分區。
(其實兩者在設計風格是不同的,但這里方便理解就不去闡述這方面問題)
gpt目錄其實在開頭包含一個mbr目錄,但具體意義不太一樣。(這意味著它某種程度上能夠兼容mbr,但并不意味著可以混用,自行體會)
總之mbr和gpt是目錄的形式,需要怎樣子的形式主要還是看磁盤的大小。(雖然mbr/gpt選哪一個一般都可以,但一般習慣是biso+mbr,uefi+gpt,這樣不容易出問題)
對于早期的系統,gpt分區是不支持的。(這里就不列舉是哪些系統了)。之前說mbr/gpt分區的選擇主要看磁盤,但實際上還有主板,系統的限制因素在里面。一般目前的個人計算機使用mrb還是gpt都差不多。倘若你喜歡分區多一點,是得注意:mbr只支持(單個磁盤上)四個主分區,或者三主分區+一擴展分區。實際上我uefi+mbr+一個分區也用的好好得,沒有特殊需求不用太在意。
***以上所說的目錄,街區都只是打比方,不要當真。***5.bios和uefi
電腦打開電源到進入系統的過程,有一個大概的思路
啟動找到打開電源Bios/UEFIMBR/gpt系統從打開電源到系統啟動具體命令細節不在這深究。思路理清以后,我們就回過去看看之前沒有細講的bios和uefi。
BIOS就是"Basic Input Output System",一直干著啟動識別一下硬件,抽象包裝一下硬件的任務。這咋理解呢,下面就隨便扯一點,也是很不準確:
(這里其實應該把硬件理解為固件,bios并不能直接和某個特定的硬件交流,而是讀取硬件上特定的代碼。這段代碼是可以控制硬件的,我們稱為固件,于是乎原本是電路之間的交際就變成了代碼之間的交流)
1.把硬件看做五花八門的兵種,什么拿槍的,拿刀的,開坦克的,電磁的都有。平日里啥事不干就干站在那,就跟斷電的時候屏幕不亮顯卡不工作,小風扇也不吹CPU不工作一樣,啥事都沒有。現在開電源了,總得先檢查檢查,看看顯卡CPU好不好啥的(通過讀取固件)。對應得要開打前,總得先聚集一下兵力檢查一下有沒有少人,是不是有幾個大兵在地圖的另一邊摸魚之類的。差不多bios就是啟動識別硬件的這塊事情。
2.等把兵力都聚集準備好,正真要打起來打起來的時候總不能一哄而上吧,我們得編一個隊,拿槍的編第一隊,開坦克的編第二隊,開飛機的編成第三隊諸如此類,這樣打起來要啥就按一個編號,人就來了,不用一個個框起來,才能把人叫過來。bios想了想,也只有我熟悉這些硬件啊,到時候一轉交任務,操作系統可不是知道顯卡是啥,內存是啥,索性給這些硬件去個標號,操作系統也就不用整天認人了,報編號就好,這也差不多就是抽象硬件了,本來是一堆硬件電路,抽象成了編碼。
就這樣bios一直作為底層護肩與操作系統之間的“翻譯官”。只有它能完成這項工作。幾十年來,縱然操作系統更新換代,但它依舊沒有改。
問題來了,為什么bios這么經久不衰,不就是檢查檢查,編個號的事,換誰不是都一樣么?
1.其實吧完成這項工作要求還是比較苛刻的:想想以前的能存儲幾MB空間都寶貴得要死,現在隨便幾個GB不在話下,想當年要完成bios的工作,是要求多少字節以內完成的事,長篇大段的裝不下,本來010101排列組合也就20種可能性,現在只能0101,6種可能性。好了這只是在開玩笑,主要是想說明存儲空間帶來的影響;
2.再來,我們算算,假如裝一個bios要50塊錢(不是盜版總是要錢的,但這個數字是我瞎編的別在意),每臺電腦都得裝這個bios,這就很賺錢了,你賣一臺電腦就得給我一筆版權費,豈不是美滋滋的賺錢渠道,有這種好生意,大家肯定都搶著做,但不是人人都能搶到,搶到的幾個人說:“只有我們是正版的”。這下好了,能像bios這樣的代碼,就很難寫了,稍微改動一下,說你盜版。改動大了,制造商業不同意,“我們辛辛苦苦按著那個bios做出來的硬件,用你這個亂編碼識別不出來,要你的有何用。”寫bios這種吃力不討好的事情沒人做。bios也不會有太多改變。
諸如此類有很多這樣的因素,導致bios的地位一直不可撼動。
直到有一天uefi站出來說,“bios您老了不行了,還是換我上吧,你干的事情我都會,一定能繼承您的衣缽的。”你說uefi是何許人,能對老牌bios說出這番話。
為此我們得從bios自身的一些 弊端 說起。在這我們也不會去討論bios編碼,端口,中斷這些具體的問題。就粗粗糙糙得說一些空泛的東西。
之前說了bios這杯羹其實就幾個人能分,其他人想要玩,沒門。這就導致bios這潭水沒有點生氣,缺少創新。看看隔壁的操作系統,固件(硬件內部驅動程序)每天在變,日新月異,bios是愈發跟不上潮流。秉承不進則退的原則,bios不變總歸落伍。
在這問題很明顯,bios本來就是要識別固件、系統的,但這兩家伙天天在變,bios不怎么變(也還是是有些變化的),總歸有一天有一些固件難以識別。
bios也是有幾家在做,不同的主板硬件廠商還有做軟件不可能滿足每一家bios的要求,只能選擇其中一種的bios作為規范來做,不能兼顧其他的了,這樣一臺電腦上能用的,到另一臺就可能不成,用戶體驗感極差。(就像王者榮耀如果蘋果上也安卓上永遠不能聯機,兩個好朋友永遠不能在線開黑,體驗感不差么)
總而言之,言而總之兼容性這種東西還是蠻重要的。藍屏,死機這種東西,如果早些年用的時候是時常發生,我個人是深惡痛絕,但現在電腦出現這種狀況幾率少很多,使用起來舒服很多。
uefi要想把“翻譯官”當好,的的確確在這一方面花了很大的功夫(當然另一方面講當年bios的設計,在現在的uefi看來確實不怎么樣,但總歸是不同時期的不同產物)。uefi和bios中間是一條難以跨越的鴻溝,但跨過了發現其實uefi才更加有現實意義。
現在我們換一種視角來看,bios在做的工作主要就是在硬件與操作系統之間,那真正要干活的是硬件。操作系統下達一個指令,最終目的還是讓硬件去執行。但是:它(操作系統)永遠不懂“它”電路,就像硬件不懂軟件的碼。(操作系統面對的也不是說是電路,而是寫在硬件上的固件(內部‘驅動程序’)。操作系統有很多,硬件設備各式各樣也多的夠嗆,不同的代碼交鋒,又能誰懂誰?)
有一天,操作系統給硬件xx分派了一個任務。硬件xx不知道要咋做,就讀取《操作系統》這本書,想從里面找出要咋樣干活的指導,,讀不懂《操作系統》上面的文字咋辦,幸好有bios/mbr寫的《一分鐘教會如何讀懂操作系統的心》的參考書,硬件瞄一眼參考書后就知道自己要找的東西在《操作系統》的哪一面,也知道怎么理解上面的話。但問題是要是硬件蠢一點,沒辦法懂軟件的心咋辦?很顯然,再怎么看參考書也沒用了,沒辦法執行命令(也就是如果硬件與bios之間出現不兼容的情況,反之操作系統沒辦法讀懂bios)。
相比之下uefi就比較“人性化”,它規定了硬件的固件如果要讓uefi讀懂要怎么寫,操作系統要想能跟上uefi的speed就得按著這種規范來。這樣硬件就不需要擔憂看不懂《幾分鐘xxx》的書了。大家都方便懂總是最好的。
以上和uefi的實際工作還是相距甚遠,但這樣子表述起碼說明了一個問題uefi制定了一種規范。同樣在這種規范下,最主要的兼容性問題似乎能夠解決。解決的基礎是都需要按著規范寫。
反過來講,只要按著規范來,uefi都是認可的。uefi規范只有一個,只要遵循這個規范,設計的硬件不管怎樣,在uefi啟動的系統上或者什么的都能夠使用,不至于出現讀取出問題的狀況。況且在代碼長度上,uefi的規范上也沒有作出特別的規定,不論是在uefi的編寫上還是在其他硬件的開發上們都給了很大的自由。一改原本bios的神秘。uefi的開源使得它能比bios更勝一籌。
之前扯得和啟動并沒有什么關系,所以還是更實際得比較一下,bios和uefi兩種啟動不同:
bios只是運行裝載程序。bios其實做的事情遠比我們之前想想得還要簡單,開機先要初始化(這個是bios和uefi都要做的初始化,也是有不一樣的地方,這里便不多說明)硬件啥的。初始化結束就要找操作系統,我們已經告訴bios啟動項,所以bios就執行一段代碼去找的操作系統在哪,知道就好。實際上做的就是運行一段代碼。而且這段代碼并不是bios本身的,而是從mbr上的(之前我們想象mbr是一本書的目錄,實際上它除了目錄以外,在它的開頭還有一段代碼,也就是bios要執行的)
可以說bios并沒有什么識別能力,它只是負責運行一段代碼。不管系統咋樣或者其他咋樣就不是他的工作范疇了。
bios+mbr(常規的搭配),從mbr的角度講會有讀寫處理不便,空間小對于裝載某些配置會出現問題。從bios角度講,要啟動系統只能運行那一段代碼來實現,對于多系統或者想對除磁盤啟動以外的啟動會比較煩惱。
實際上uefi在中間起到的作用是:
1.讀取分區表(讀取gpt)
2.訪問特定系統中的文件
3.執行特定格式代碼
我們不去深究具體的處理方式,但uefi不僅僅只運行一段代碼那么簡單,它將能夠識別特別的文件,執行特定的代碼。對于實現多重目標等方面會有比較大的意義,但可能我們并不太關心這些。
不論怎樣如果要深入了解不同,還是得從它們的根本原理入手,就不做多的解釋。簡單舉幾個普遍的不同的例子:
1.uefi有不錯的圖形界面,用鼠標控制,而bios經典的藍屏就很老套。這得益于內存的增大。
2.uefi主C,而bios主要以匯編來編寫。
3.uefi對新硬件支持好,bios相對差
這里就大概說了一下uefi的開源,長江后浪推前浪,xxxx,uefi必然取代bios的趨勢。當然也會uefi也算是一種加強版的bios至少它負責的內容差不多,本質上沒有改變,但思路上改變了,然后一切就都不一樣了(uefi也存在缺點,現在它替代bios,在將來它的缺點將由什么來彌補,也是值得期待)。然后說了一下兩者實際在引導到操作系統的時候有什么不同。最后舉了幾個能說明不同的例子。
當然這一切都是極為粗鄙的解釋,我個人的見解也必然是有錯誤的,能力有限,還望見諒。
6.windows系統與linux系統分區
解釋一下mbr分區:黃色,橙色,紅色三個部分:
黃色:主引導程序+出錯信息數據區,說明書,告訴你怎么讀這個目錄;
橙色:分區表,就是一個目錄,分區1從哪到哪,分區2從哪到哪……
紅色:結束標志字,寫完了劃個隔頁。
很明顯可以看到橙色部分DPT(分區表)只能容納4個主分區。因為空間只有那么大,所以mbr有分區的限制。
相比之下gpt要長得多,gpt包含一個mbr,mbr只占了極小的一部分(這張圖片從哪搬來的就不說了,圖上注明了)
以下兩張圖片是描述在MBR分區表下,windows和linux的不同分區方式,來源于:http://www.178linux.com/81285
在windows里面很明顯就是每一個主分區在分區表里面占一個位置,給人的感覺就是每個分區就是獨立的;
在分區最多的情況下mbr是分了三個主分區+一個擴展分區。在擴展分區里面,你還可以再做一個分拓展分區表(結構和DPT分區表差不多),分出多個邏輯分區。(主要就是DPT分區表里面空間不夠了,如果想要更多的分區就必須在mbr外面做一個分區表,就成了分區表套分區表的樣子)
在linux下面我們看到也是可以分出4個主分區,但不一樣的是,似乎linux只要一個 / 分區(根分區),一個swap分區,兩個主分區就好了。
其實最主要的還是根分區。swap分區只是一個交換區,和windows的虛擬內存差不多。虛擬內存顧名思義就不是真正的內存。這里說得內存計算機運算的時候臨時儲存數據的地方,和磁盤的寫入存儲不太一樣。我們的系統是寫在磁盤里的。那現在swap是在磁盤里的必然不是內存。簡單說它的作用就是當內存不夠用的時候,可以拿來當做內存用,所以類似于虛擬內存。
最主要的還是根分區,所以就拿根分區的目錄和windous的目錄作比較
windows里每個分區的目錄都是分開來的,C盤下面有一個Program Files目錄,D盤也可以有這樣一個目錄,而且兩個運行起來還互不干擾(如果找C盤下面的Program Files,路徑是C://Program Files,如果找D下面的,路徑就是D://Program Files,你可以很容易去翻開來),總之就是兩個相互獨立的目錄。
但linux下面所有的目錄你發現都是在根分區下的,就算是你把一個主分區直接分給boot,就是出現 / 分區(根分區),和boot分區同樣是屬于主分區,看起來他們倆可以平起平坐,但實際上boot還是在根分區下面。打一個不恰當的比方,我是技術一流的工人,你是管理層面的人,咱倆拿著一樣多的工資,但我就是你的下級聽你管。現在boot和根分區也是一樣,根分區是最大的老大,如果你想找根分區路徑上直接打“ \ ”就能找到,但是如果你想找boot分區,就得打“ \ boot”,意思就是根分區下面的boot目錄
總之windows和linux簡單的不同點就在目錄,分區上面,至于其他什么不同便不在這里贅述。
7.個性化設置
加入光驅,點擊同意xx協議,在簡單得下一步大法處理完分區。到這而按理來說系統干就完事了,畢竟處理完分區,讀取的形式什么都已經確定下來。
可實際上是,還有一大堆的系統配置,選擇怎樣的協議,著實讓人頭疼(如果沒有什么基礎認識)。但最為一款人性化的操作系統,直接默認幫我們選擇好基礎配置。這也是算是操作系統的優勢吧,普通用戶不用苦逼得直面底層,計算機大眾化的先決條件。
不同用戶不同的需求,可能大多數人在基礎配置方面并不會過多在意不論什么協議,什么環境,用著舒暢,才是硬道理。為了更好得滿足心理需求,個性化的設置成了必不可少的一部分。選擇合適的操作界面,操作方式,使個人有不同于他人的差異,更能滿足用戶需求。
不多說,個性化設置只是讓人愉悅的某種的東西。裝系統也就是這么回事。
8.結尾
電腦只是使用的工具,程序設計者總是盡可能得滿足用戶的需求,但是不免用戶總是會做一些超出預期的操作,所以在安裝系統上,如果只是想讓電腦成為一個可靠的工具,遵循主流的配置與操作將會是比較理想的。(總是面對報錯,又永遠不能理解其實質內涵,我想并不是一個令人愉悅的選擇)
主要參考(無序)
1.UEFI 引導與 BIOS 引導在原理上有什么區別?
2.硬盤分區不求人:秒懂MBR和GPT分區表
3.讓傳統BIOS啟動GPT磁盤的操作系統;讓UEFI啟動MBR磁盤的操作系統。
4. MBR與GPT分區/傳統BIOS與UEFI啟動原理
5.Windows與linux分區的區別
6.(譯)UEFI 啟動:實際工作原理
7.文件系統類型(ext4、xfs、fat32、vfat、ntfs、…)
本文,純手打,無抄襲;參考了網上較多 的文本,在這就不了一一列舉,僅將其中部分的鏈接發放在文末,可供參考
僅僅只是個人的學習總結,如有錯處,還望批評指正
總結
以上是生活随笔為你收集整理的害!!安装电脑系统 分区就那么点事的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于VISSIM和Python的二次开发
- 下一篇: java信息管理系统总结_java实现科