電腦如何知道要啟動哪個作業系統?

電腦如何知道要啟動哪個作業系統?

當我打開電腦時,選擇啟動哪個作業系統的軟體是什麼?

更具體地說,如果我的電腦的同一磁碟上有多個作業系統怎麼辦?如果我有外部驅動器,它會在所有儲存設備的每個分割區中搜尋它識別的格式嗎?

據我了解,每個磁碟都有自己的開機磁區,其中包含電腦應引導哪個分割區的資訊。但是,如果我連接了多個磁碟,其中每個磁碟都有不同的開機磁區,那麼會載入哪一個呢?

當嘗試研究這個主題時,我遇到了一些困惑,因為並非所有技術的行為都相同(例如,有些人說可啟動標誌很重要,而另一些人說它被忽略)。如果能夠清楚地了解不同系統的工作原理,我們將不勝感激。

答案1

不幸的是,隨著計算機的發展,這變得更加複雜。

最初(即第一台 PC)有一個固定的順序(取決於佈線)。

幾乎所有電腦仍然具有可由 BIOS 控制/影響的預設啟動順序。較新的電腦透過 UEFI 補充了此功能,UEFI 在某些方面取代了 BIOS。

BIOS 啟動有一個首選順序。 BIOS 會查看每個磁碟機上的可開機磁區,並嘗試載入這些磁區,沿著選項清單向下查找,直到有一個開機磁區能夠引導為止。

對於UEFI,磁碟上有一個檔案系統(標記為UEFI 的小胖分割區,其中包含第一階段開機載入程式和指令。在某些情況下,透過程式設計到UEFI 中的指令進行補充(即儲存在nvram 中的設置,類似BIOS) )

一旦找到引導程式/UEFI 分割區,程式就會接管開機過程,這可能會提供引導到不同模式或作業系統的能力。

答案2

正如其他人所說,它變得有點複雜,但我的理解方式是:

當電腦首次啟動時,硬碟根本不重要。主機板上的晶片中有一個特殊的軟體,它首先被加載,然後 CPU 開始執行它。這稱為 BIOS 或 UEFI(UEFI 實際上是 BIOS 的後繼者)。

這段程式碼做了一些初始化硬體各個部分的工作,然後開始尋找下一個將控制權傳遞給的物件。現在,具體是什麼取決於許多因素。有許多可能的選項 - 您的內部硬碟、外部硬碟、網路適配器、RAID 控制器、附加​​卡等。

BIOS/UEFI 還具有確定檢查這些選項的順序的設定。它將按照配置的順序遍歷每一個並詢問 - “您可以繼續啟動嗎?”設備會說“是”或“不”。第一個說「耶」的人可以繼續。然後該裝置向 BIOS 提供一段程式碼,該程式碼被載入到記憶體中,CPU 繼續執行該程式碼。

在硬碟的特殊情況下,磁碟本身並不真正知道它是否可以啟動。因此,BIOS 的作用是讀取磁碟機的第一個磁區(通常為 512 位元組),並檢查該磁區的某個位置是否有特殊的幾個位元組。如果它們包含值 55 AA(十六進位),則該磁區將作為代碼執行。否則它會繼續檢查下一個磁碟。

現在,512 位元組並不是很多空間,但足以做一些簡單的事情。例如,經典的 DOS 會在其中放置一些程式碼,找到一個標記為「可引導」的分割區,然後載入該分割區的第一個磁區分區然後執行。下一個磁區包含足夠的程式碼來載入更多磁區,然後開始解析檔案系統,並從中載入文件,依此類推。

但實際上,沒有任何內容說明這段程式碼必須做什麼。它也可能無法載入活動分割區,但可以載入磁碟上駐留更多程式碼的其他一些磁區。然後,該程式碼可以為您提供一個選單,允許在多個可啟動分割區或作業系統或其他任何內容中進行選擇。

無論如何,磁碟機第一個磁區中的程式碼被稱為「引導程式」。那裡有不同的引導程式。如今的 Linux 世界嚴重依賴 grub,Windows 有自己的東西等等。作業系統,但它確實需要知道如何將作業系統載入到記憶體中並對其進行控制。

這樣是不是更清楚了?

答案3

啟動時,您的主機板將為連接到其上的所有(或大多數)電子組件供電。其中之一是您的硬碟或 SSD,稱為系統驅動器,因為主要作業系統位於其上。除非您已將 BIOS 或 (U)EFI 設定為從不同的外部驅動器(無論是 USB、FireWire 還是網路)啟動,否則將首先使用該驅動器。

在此磁碟機上,有一個主引導記錄分割區(為了簡化)通常是唯讀的(不過可以透過 bcdedit.exe 命令集進行編輯),並且它將檢查磁碟機上的所有可用作業系統。其中一個已被設定為預設值,無論是由您設置,還是在安裝時、在工廠中或在您重新安裝/升級主作​​業系統時自行設定。

Windows 不允許從 USB 啟動硬碟或SSD。您可以透過 USB 啟動鑰匙,它承載特定的 USB 控制器,但 Windows 不允許從透過電纜連接的 USB 隨身碟啟動。直到第一個 Windows 服務和進程(smss.exe 和 crss.exe)已經載入(這表示 Windows 本身已經啟動)之後,才會載入必要的驅動程式。

答案4

電腦內建有軟體,您可以設定該軟體來指示哪個磁碟應該排在第一、第二(如果第一個不可用)、第三等。

這曾經是“BIOS”,儲存在 eeprom 中(由電池供電)。但目前它已經變得更加複雜,甚至內建了基於Linux的作業系統(這可能使您的電腦容易受到外部攻擊)。

每個磁碟都有一個分割區表,不一定有開機磁區。

相關內容