玩轉雙系統安裝,這10個知識盲區要掃除

如果你打算在電腦上安裝雙系統,三系統或更多系統(Windows/Linux/macOS),那麼你可能會遇到許多以前從未聽說過的術語。

這篇文章的目的就是幫你掃清這個障礙, 在安裝雙系統時就不會那麼慌了。

  1. 分區和硬盤
  2. 主分區、擴展分區和邏輯分區
  3. 磁盤分區VS掛載點
  4. 交換分區(swap分區)
  5. 文件系統
  6. BIOS 和 MBR
  7. UEFI 和 GPT
  8. 引導加載程序 Bootloader
  9. UEFI Secure Boot
  10. fstab

01、分區和硬盤

大多數計算機都自帶一個或多個分區的磁盤

把電腦上存數據的地方想象成一個巨大的披薩。整個披薩就是一個"磁盤",一小塊就是一個"分區"。如果披薩沒有被切開,它就只有一個"分區"。大多數情況下,此分區通常就是"Windows"味的。。

如果披薩足夠大,你可以將此分成若干塊以上,並賦予其他部分自己的風味(如 Linux)。你可以用多種方式切披薩。可以根據需要調整大小。

玩轉雙系統安裝,這10個知識盲區要掃除

將磁盤比喻成披薩,感覺怪怪的?那麼怎麼在系統查看分區情況呢?

在Windows系統的電腦上,打開磁盤管理器,就可以看到磁盤以及其分區情況。

玩轉雙系統安裝,這10個知識盲區要掃除

在Linux系統中, 使用命令 fdisk -l 查看磁盤分區情況。

玩轉雙系統安裝,這10個知識盲區要掃除

使用Gparted等第三方工具也可以在Linux下查看磁盤分區情況。

玩轉雙系統安裝,這10個知識盲區要掃除

在macOS中,通過命令 diskutil 以及“磁盤工具” 同樣能看到磁盤的情況。

玩轉雙系統安裝,這10個知識盲區要掃除

為什麼需要多個分區?

有很多原因。當然要想安裝雙系統,同時使用Windows和Linux, 或者像是PS的素材需要存放在一個非系統分區上,或者像是傲梅輕鬆備份傻瓜版一樣的一鍵式還原系統的軟件,需要另外一個分區來存放備份鏡像。

同樣,對於雙系統來說,創建一個多個操作系統兼容的exFAT文件系統格式的分區,也會免去一些不必要的麻煩。

02、主分區、擴展分區和邏輯分區

主分區是硬盤上的"主要"分區。由於 BIOS/MBR 系統框架設計上的缺陷,

引入了擴展分區和邏輯分區的概念, BIOS/MBR 磁盤僅允許創建 4 個主分區。如果需要 4 個以上分區,則必須將一個主分區轉換為"擴展分區"。在"擴展分區"中,就可以創建許多較小的分區,這些分區就是"邏輯分區"。在Windows磁盤管理器中,可以通過分區的顏色來判斷分區類型。邏輯分區在使用中和主分區沒區別,但是如果想要在邏輯分區中單獨安裝Windows的話,是沒法引導的,需要在主分區中有一個引導分區(System Reserved),用來引導邏輯分區裡的系統。

玩轉雙系統安裝,這10個知識盲區要掃除

與BIOS/MBR對應的 UEFI/GPT的,在設計上就彌補了早起的設計的缺陷,就沒有了4個主分區的限制(能達到128個分區大小)。

基本上來說,擴展分區以及邏輯分區在GPT磁盤上就沒有存在的必要了,而且磁盤也沒有2TB容量的限制。

近年來的主板(2012年後),基本都是UEFI兼容的主板。

玩轉雙系統安裝,這10個知識盲區要掃除

03、磁盤分區 VS 掛載點

才接觸Linux的話,可能對Linux系統是怎麼訪問分區感到迷惑,在Windows系統下,訪問一個分區很簡單,每個盤符對應的就是一個分區,直接訪問盤符(比如,C,D,E,F)就行。

而在Linux的世界,處理分區的方式就是完全的不同了。主要的區別在於, 分區是通過“掛載”到一個“目錄”來實現的,而一個目錄的子目錄又可以掛載其他的分區。

也就是說:如果將分區 /dev/sda2 掛載到/home/,通過Linux文件管理器訪問/home/目錄下的文件,就是訪問物理存放在/dev/sda2這個分區的數據。

將/dev/sda3掛載到/home/bruce, 訪問/bruce下的文件就是訪問/dev/sda3裡存放的數據。而Linux系統分區默認是掛載到根目錄 “/” 下的。

04、交換分區(Swap分區)

交換分區是 Linux 在系統需要的內存超過實際可用內存時使用的硬盤區域。Linux 內核將能夠交換使用較少的頁面,並將它們移動到"交換空間",以便當前運行的程序可以使用釋放的內存。

系統將這些頁面移動到交換空間,以便電腦可以將更多資源用於處理當前任務,而不是佔用 RAM 中的所有內存。

但是,交換分區中移動信息的速度和內存RAM相比還是會慢很多。

如果你的電腦內存RAM充足,有個16GB,32GB, 那麼其實交換空間不是必需的,但是如果沒有它,當內存已滿時,系統將開始終止"低優先級進程"。(您正在使用的程序,這意味著未保存的工作崩潰和內容。您可以配置系統,以便根據需要優先選擇要終止的程序。否則,您可能應該有一個小的交換空間來提供幫助)。

在Windows系統中,也有類似和交換分區差不多的概念,在Windows中,是通過虛擬內存這個功能實現的, 區別在於,Windows是默認開啟,而Linux在安裝的時候需要指定是否創建交換分區。

05、文件系統

玩轉雙系統安裝,這10個知識盲區要掃除

創建好了分區,如果沒有文件系統,那麼可能就無法存儲文件,視頻等,因為系統需要按照一種定義好了的方式在這個分區。來存儲和查找數據。

下面是常見的文件系統:

  • NTFS = (新技術文件系統) 用於基於微軟 Windows Windows NT 的操作系統
  • Ext4 Linux默認的文件系統格式。
  • HFS+ – 早期蘋果系統的默認文件系統。
  • APFS - 蘋果系統從10.13時期開始出現的一種新的文件系統。
  • FAT32 – 常見於U盤中
  • exFAT – FAT32的升級版,macOS,linux和Windows都能實現讀寫操作。
  • 其他

對於有些不同文件系統之間,可能是沒法直接傳數據,像是在Linux系統中,默認是不能直接往NTFS系統寫入數據,只能通過工具像是ntfs-3g才能正常寫入。

同樣Windows系統不能直接識別蘋果的APFS系統,蘋果系統也不能直接向NTFS中寫入數據,要通過第三方軟件解決。

06、BIOS和MBR

BIOS (Basic Input and Output System)"基本輸入-輸出系統",簡單來說就是是一小段嵌入到主板芯片ROM上的代碼,他也是一個系統。

當電腦插上電,首先運行的第一個系統就是BIOS。

BIOS的運行過程大概如下:

運行POST(系統自檢),找基本顯卡,找磁盤,將BIOS信息顯示到顯示器上,內存計數檢查,找啟動盤,將啟動權交給Bootloader,執行磁盤上的系統。

在這個過程中,每個環節出錯,都可能會影響系統的正常運行。

拋開硬件上導致的問題,MBR以及Bootloader在引導磁盤上系統過程中及其重要的兩個部分。

MBR:主引導記錄(Master Boot Record),又叫主引導扇區,一種特殊的引導扇區(boot sector),存在磁盤上的第一個扇區,是開機BIOS訪問硬盤所必需的扇區。

扇區: 在磁盤中,一個扇區(sector)是其上面的一個磁道的分區。每個扇區存儲固定數量用戶可訪問的數據,目前其大小主要分為512字節,以及4096字節,後者就是所謂的高級格式(AF)磁盤,操作系統最小的存儲單位是簇,由多個磁道扇區組成。

玩轉雙系統安裝,這10個知識盲區要掃除

MBR有啥作用?

  • MBR中含有第一階段引導代碼,主要作用是檢查分區表是否正確,然後將控制權交給硬盤(活動分區)上的引導加載程序Bootloader,實現系統引導啟動。
  • MBR有磁盤分區表,記錄每個磁盤的基本信息,分區大小,分區的位置。

所以,MBR損壞的後果,就可能導致沒法進入第二階段引導加載Bootloader。

開機可能遇到這樣的報錯:

玩轉雙系統安裝,這10個知識盲區要掃除

或者這樣:

玩轉雙系統安裝,這10個知識盲區要掃除

分區表損壞,可能是這樣的報錯:

玩轉雙系統安裝,這10個知識盲區要掃除

除了以上常見的錯誤提示,損壞的MBR,可能還有其他表現。

由於MBR是存放在磁盤的第一扇區,並不是嵌入到ROM中的,所以修復起來相對容易一些。

關於如何備份,在Linux下可以使用dd命令備份 磁盤前512個字節就行。比如:

dd if=/dev/sdb of=/mbr-backup bs=512 count=1

修復MBR, 可以在Windows下(PE)下使用bootrec.exe 或者使用傲梅分區助手及其他第三方軟件。

當然,啟動引導的失敗,除了在第一階段MBR除了問題外,第二階段bootloader加載失敗,同樣也會導致啟動失敗。

MBR的缺點在磁盤與分區小結中也說過,分區表的結構導致只能有4 個主分區而且最多使用2TB。如果硬盤較大,2TB的空間便沒法使用。

隨著大容量磁盤的出現,MBR已經不再適應, 新的框架UEFI+GPT正在逐漸幹掉BIOS+MBR。

07、UEFI和GPT

GPT:"GUID分區表",它是 MBR 的替代品,和MBR相比沒有 2Tb 磁盤大小限制,也沒有4個主分區的限制。

UEFI代表"統一擴展固件接口",它取代了有缺陷的"BIOS"框架。在UEFI設計中,有一個用於存儲所有重要引導數據的FAT文件類型的分區,稱為"EFI 系統分區"(ESP),所有引導加載程序和一大堆其他重要的引導相關內容都應該放在 EFI 分區上。

與傳統的BIOS不同,UEFI不依賴於引導扇區,而是將引導管理器(Boot Manager)定義為UEFI規範的一部分。當計算機通電時,引導管理器會檢查啟動配置,並根據其設置加載到內存中,然後執行指定操作系統。

這就是為什麼在UEFI設置中,啟動選項中會出現 Windows Boot Manager這一項,和磁盤是獨立的選項。

在Windows系統中,可以通過工具,像是Bootice,查看引導管理器中有多少個啟動項。

玩轉雙系統安裝,這10個知識盲區要掃除

同時,UEFI支持在某路徑下自動查找是否有引導程序,路徑會因計算機體系結構而異。例如,在x86-64系統上的引導加載程序的文件路徑為/efi/BOOT/BOOTX64.efi。 這就是為什麼支持UEFI啟動的USB設備,不需要手動向啟動管理器中添加路徑。啟動Windows時,你不選擇Windows Boot Manager, 選擇磁盤為第一啟動項,它也能引導啟動。

在GPT上安裝雙系統時,引導加載程序建議就安裝在同一個EFI 分區上,並且應將"引導條目"添加到指向與系統對應的引導加載程序的"啟動管理器"中。

這樣啟動GPT 系統時,計算機就可以根據引導條目的順序加載第一順序的引導加載程序以實現引導系統。

08、引導加載程序Bootloader

Bootloader是用來實際啟動磁盤上的操作系統的一個程序,是整個啟動過程的第二階段。

Windows有自己的引導加載程序,Linux 和其他系統也有自己的引導加載程序,要達到雙系統的啟動,有時就需要"鏈式加載"(Chainloader),這意味著一個引導加載程序加載另一個引導加載程序。

目前來說,PC端常見的Booloader有以下幾種:

NTLDR: Windows XP 和Windows Server 2003 等Windows NT系統使用的Bootloader。

Winloader.exe/Winloader.efi : Windows Vista+ 系統使用的引導加載程序, BIOS模式中使用的Winloader.exe, UEFI模式中使用Winloader.efi。

Grub2:大多數Linux系統使用的引導加載程序。

Clover: 第三方引導加載程序,主要用來在非蘋果系統上實現蘋果系統的引導。

當你在計算機上啟動時有兩個或多個系統可供選擇時,你可以選擇使用不同的引導加載程序啟動哪個系統。

從GRUB2(Linux 引導加載程序)啟動,選擇 Linux 發行版,它將選擇 Linux 內核,然後啟動該過程以啟動 Linux。如果選擇 Windows,GRUB2 引導加載程序將加載 Windows 引導加載程序,該加載程序將繼續執行其所有 Windows 內容以啟動 Windows。(因此稱為"鏈加載")

有時引導加載程序將安裝在自己的分區上(通常/啟動)。其他時候,它們將只駐留在分區與相應的操作系統。

長話短說。。。引導加載程序就是用來加載你選擇的操作系統。

09、UEFI Secure Boot

安全啟動(Secure Boot)是一種技術,它是用來在UEFI固件中檢查系統引導加載程序是否使用固件中包含的數據庫授權的加密密鑰進行簽名。在下一階段引導加載程序、內核以及潛在的用戶空間中,通過適當的簽名驗證,可以阻止未簽名代碼的執行。也就是說,安全啟動功能的作用就是確保系統的引導文件是沒有被修改過的,而且在開啟了Secure boot的主板上啟動一個系統,那麼該系統的引導就必須是簽名了的。如果是使用第三方PE工具製作的PE,引導文件是修改過,或者沒有簽名,那麼在開啟了Secure boot的電腦上,就是沒法啟的動,這時需要在主板中關閉Secure boot才能正常從U盤啟動。

玩轉雙系統安裝,這10個知識盲區要掃除

玩轉雙系統安裝,這10個知識盲區要掃除

10、fstab

fstab(File System Tab)是Unix和類Unix系統(Linux)中的一個文件系統配置文件,可用於定義磁盤分區,各種其他塊設備或遠程文件系統應如何裝入文件系統,通常位於/dev/fstab

fstab是Windows系統中沒有的概念,在Windows系統中,通常情況下磁盤上的分區是默認掛載的,但是在Linux系統,啟動的時候分區不會自動掛載, 需要查找fstab文件中定義的掛載點,以便決定是否掛載某個分區,所以如果在Linux啟動出現問題,有可能就是是Linux的系統分區沒有被掛載,這時就可以考慮去查看fstab。

玩轉雙系統安裝,這10個知識盲區要掃除



分享到:


相關文章: