1. 程式人生 > >對硬碟進行分割槽時,GPT和MBR有什麼區別?

對硬碟進行分割槽時,GPT和MBR有什麼區別?

在Windows 8或8.1中設定新磁碟時,系統會詢問你是想要使用MBR還是GPT分割槽。GPT是一種新的標準,並在逐漸取代MBR。

GPT帶來了很多新特性,但MBR仍然擁有最好的相容性。GPT並不是Windows專用的新標準—— Mac OS X,Linux,及其他作業系統同樣使用GPT。
在使用新磁碟之前,你必須對其進行分割槽。MBR(Master Boot Record)和GPT(GUID Partition Table)是在磁碟上儲存分割槽資訊的兩種不同方式。這些分割槽資訊包含了分割槽從哪裡開始的資訊,這樣作業系統才知道哪個扇區是屬於哪個分割槽的,以及哪個分割槽是可以啟動的。在磁碟上建立分割槽時,你必須在MBR和GPT之間做出選擇。

MBR的侷限性
MBR的意思是“主引導記錄”,最早在1983年在IBM PC DOS 2.0中提出。
之所以叫“主引導記錄”,是因為它是存在於驅動器開始部分的一個特殊的啟動扇區。這個扇區包含了已安裝的作業系統的啟動載入器和驅動器的邏輯分割槽資訊。所謂啟動載入器,是一小段程式碼,用於載入驅動器上其他分割槽上更大的載入器。如果你安裝了Windows,Windows啟動載入器的初始資訊就放在這個區域裡——如果MBR的資訊被覆蓋導致Windows不能啟動,你就需要使用Windows的MBR修復功能來使其恢復正常。如果你安裝了Linux,則位於MBR裡的通常會是GRUB載入器。
MBR支援最大2TB磁碟,它無法處理大於2TB容量的磁碟。MBR還只支援最多4個主分割槽——如果你想要更多分割槽,你需要建立所謂“擴充套件分割槽”,並在其中建立邏輯分割槽。
MBR已經成為磁碟分割槽和啟動的工業標準。

GPT的優勢
GPT意為GUID分割槽表。(GUID意為全域性唯一識別符號)。這是一個正逐漸取代MBR的新標準。它和UEFI相輔相成——UEFI用於取代老舊的BIOS,而GPT則取代老舊的MBR。之所以叫作“GUID分割槽表”,是因為你的驅動器上的每個分割槽都有一個全域性唯一的識別符號(globally unique identifier,GUID)——這是一個隨機生成的字串,可以保證為地球上的每一個GPT分割槽都分配完全唯一的識別符號。
這個標準沒有MBR的那些限制。磁碟驅動器容量可以大得多,大到作業系統和檔案系統都沒法支援。它同時還支援幾乎無限個分割槽數量,限制只在於作業系統——Windows支援最多128個GPT分割槽,而且你還不需要建立擴充套件分割槽。
在MBR磁碟上,分割槽和啟動資訊是儲存在一起的。如果這部分資料被覆蓋或破壞,事情就麻煩了。相對的,GPT在整個磁碟上儲存多個這部分資訊的副本,因此它更為健壯,並可以恢復被破壞的這部分資訊。GPT還為這些資訊儲存了迴圈冗餘校驗碼(CRC)以保證其完整和正確——如果資料被破壞,GPT會發覺這些破壞,並從磁碟上的其他地方進行恢復。而MBR則對這些問題無能為力——只有在問題出現後,你才會發現計算機無法啟動,或者磁碟分割槽都不翼而飛了。

相容性
使用GPT的驅動器會包含一個“保護性MBR”。這種MBR會認為GPT驅動器有一個佔據了整個磁碟的分割槽。如果你使用老實的MBR磁碟工具對GPT磁碟進行管理,你只會看見一個佔據整個磁碟的分割槽。這種保護性MBR保證老式磁碟工具不會把GPT磁碟當作沒有分割槽的空磁碟處理而用MBR覆蓋掉本來存在的GPT資訊。

在基於UEFI的計算機系統上,所有64位版本的Windows 8.1、8、7和Vista,以及其對應的伺服器版本,都只能從GPT分割槽啟動。所有版本的Windows 8.1、8、7和Vista都可以讀取和使用GPT分割槽。
其他現代作業系統也同樣支援GPT。Linux內建了GPT支援。蘋果公司基於Intel晶片的MAC電腦也不再使用自家的APT(Apple Partition Table),轉而使用GPT。

我們推薦你使用GPT對磁碟進行分割槽。它更先進,更健壯,所有計算機系統都在向其轉移。如果你需要保持對舊系統的相容性——比如在使用傳統BIOS的計算機上啟動Windows,你需要使用MBR。

相關推薦

硬碟進行分割槽GPTMBR什麼區別

在Windows 8或8.1中設定新磁碟時,系統會詢問你是想要使用MBR還是GPT分割槽。GPT是一種新的標準,並在逐漸取代MBR。 GPT帶來了很多新特性,但MBR仍然擁有最好的相容性。GPT並不是Windows專用的新標準—— Mac OS X,Linux,及其他作業系

null或!null進行判斷null放前後的區別

Java中對null進行判斷放在前後沒有什麼區別,只是為了程式碼規範,為了避免寫程式碼時書寫錯誤。下面面兩個測試Demo都沒有報錯。null放在前面是為了避免少寫一個"=","null="書寫會報錯,防止筆誤寫成"=null"時檢查不出來。    @Test publ

建立物件=null new的區別

1.=null只是宣告一個物件,並不實際佔用空間。 如:HBPWDto hbpwDto = null; 相當於HBPWDto hbpwDto ; 2.new,把物件例項化了,這個物件會一直佔用空間(雖然不一定使用),直到被回收。 如果只是做賦值操作,只需要宣告就行了 ,在需要的時候再賦予

Lua中泛型for迴圈遍歷tableipairspairs的區別

為了看出兩者的區別,首先定義一個table: a={"Hello","World";a=1,b=2,z=3,x=10,y=20;"Good","Bye"}使用ipairs對其進行遍歷: for i, v in ipairs(a) do print(v) end輸出的結果是

tomcat設定https埠8443443的區別

1. 8443埠在訪問時需要加埠號,相當於http的8080,不可通過域名直接訪問,需要加上埠號;https://xiangye.com:8443。 2. 443埠在訪問時不需要加埠號,相當於htt

移植U-BOOT之裁剪修改預設引數(易用性)啟動核心以及uboot進行分割槽

今天我們來裁剪U-BOOT,使其更加易用,修改預設引數,以及製作最終修改好得補丁檔案方便以後的快速移植。 那麼如果想看之前的關於網絡卡以及flash等的移植,請點選連結檢視:點選連結檢視 在裁剪修改之前呢,我們先來了解一下U-BOOT的環境引數(環境變數):

imx6 通過SD卡啟動後emmc進行分割槽程式更新

1.執行的前提是,sd卡上的系統包含sfdisk工具 2.sd啟動後,執行指令碼分割槽  目前是分了3個區(EMMC-4G大小,可用空間大約3.9G,本次分割槽並全部使用) 150M   --mmcblk0p1 ,偏移量為10M開始 2G       --mmcblk

MySQL可重復讀采坑記錄-事務B進行更新事務A提交的更新會不會影響到事務B

但是 start clas 行數 通過 基礎上 transacti 隔離 delete 之前線上出現數據重復插入的問題,通過對問題進行排查發現該問題和MySQL的默認隔離級別-Repeatable Read(可重讀)有關系,可重復讀確保同一事務的多個實例在並發讀取數據時,會

如何在 Linux 上驅動器進行分割槽格式化

這裡有所有你想知道的關於設定儲存器而又不敢問的一切。 在大多數的計算機系統上,Linux 或者是其它,當你插入一個 USB 裝置時,你會注意到一個提示驅動器存在的警告。如果該驅動器已經按你想要的進行分割槽和格式化,你只需要你的計算機在檔案管理器或桌面上的某個地方列出驅動器。這是一個簡單的要求,而且通常計算機

linux4T硬碟進行分割槽

使用parted工具: yum install parted parted /dev/sdb //選擇硬碟 GNUParted 2.3Using /dev/sdbWelcome to GNU Parted! Type 'help' to view a lis ofcommands。 (p

JS:txt檔案進行讀寫替換新增

親測必須將程式碼放在記事本中,改成html格式,在用IE執行(必須) <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/h

使用手勢UIImageView進行縮放、旋轉移動

nbsp boa use itl ans self. iges comm title [cpp] view plain copy // 添加所有的手勢 - (void) addGestureRecognizerToView:(UIView *)view

python面向象( item系列__enter__ __exit____call__方法元類)

屬性 eba callable 好處 繼承方式 類的創建 完成 __weak 依次 python面向對象進階(下) item系列 __slots__方法 __next__ 和 __iter__實現叠代器 析構函數 上下文管理協議 元類一

.NET XML 進行創建增加刪除修改操作整理

res add post 做了 引用 nbsp order protected png 前言:   最近做了一個項目,程序A在一個服務器程序B在另一臺服務器,然而主程序A需要訪問程序B的圖片集文件夾下載到本服務器上,為了防止多次對Web Services進行調用,在主

VS 嘗試從數據庫進行更新遇到類型為“Microsoft.VSDesigner.Data.Local.ConnectionStringConverterServiceException”的異常。異常消息為:“”;

design 運行 oca sig cee 模型 新的 安裝完成 exc 最近,由於更換機器,在新機器上運行更新數據庫模型,報錯: 嘗試從數據庫進行更新時,遇到類型為“Microsoft.VSDesigner.Data.Local.ConnectionStringConve

NBU恢復oracleRACHA不同的恢復設置

描述 文檔 若是 服務器 服務 而在 註意 相同 網上 之前恢復RAC和HA的時候,註意到了兩者在恢復過程中設置的不同,但是沒有記錄下來,今天在恢復的時候竟然有點忘了,趕緊記錄,用於以後恢復測試的時候幫助回憶。RAC和HA的區別和共同點可以在網上有許多文檔敘述,這裏就不贅述

Python讀取文件使用split進行分割出現ufeff

lin replace little 讀取文件 get txt ace tty 連續 1.問題 使用python3.6對文件讀取時,按照正常套路處理,文件內容類似以下: 啊啊啊 || AAA 不不不 || BBB 當使用utf-8讀取文檔並且使用split函數分割時,發現第

正確生成浮點型的方法解決sqlachemy Float浮點型的坑生成float類型長度精度均為0導致查詢不到結果!

依然 tab 圖片 control 選擇 分享 ice mod ble 問題描述 在使用flask_sqlachemy時,給price字段選擇了Float類型,數據庫用的mysql,生成數據庫表後,發現 from sqlalchemy import Float

使用maven構建專案SSMspringboot專案的打包與雲伺服器部署

下面講講如何打包SSM和springboot專案,並部署到雲伺服器上。   由於使用的IDE不同,有的使用eclipse,有的使用idea,所以如果在IDE中按照 maven clean 再 maven install的方式打包會稍有不同,下面介紹一種通用的方式,不論SS

正確生成浮點型的方法解決sqlachemy Float浮點型的坑生成float型別長度精度均為0導致查詢不到結果!

問題描述 在使用flask_sqlachemy時,給price欄位選擇了Float型別,資料庫用的mysql,生成資料庫表後,發現   from sqlalchemy import Float,Column price = Column(Float,default=0.00) &