Linux MBR和GPT分區類型

来源:https://www.cnblogs.com/heyongshen/archive/2022/06/30/16428376.html
-Advertisement-
Play Games

磁碟分區的好處: 優化IO性能、實現磁碟配額、隔離系統和程式、可以採用多個文件系統 分區的方式: MBR 比較傳統的分區 GPT MBR分區: MBR:Master Boot Record(主引導記錄),1982年開發而來,使用32位表示扇區數,分區不超過2T 特點:支持的分區空間有限 0磁軌0扇區 ...


磁碟分區的好處:

優化IO性能、實現磁碟配額、隔離系統和程式、可以採用多個文件系統

分區的方式:

  • MBR --- 比較傳統的分區

  • GPT

MBR分區:

MBR:Master Boot Record(主引導記錄),1982年開發而來,使用32位表示扇區數,分區不超過2T
特點:支持的分區空間有限

0磁軌0扇區:

MBR的分區是按照分區類型來進行組織的。把整個硬碟的分區信息放在0磁軌0扇區這個512位元組大小的空間中。這個扇區分為三部分:

  • 446bytes: boot loader 啟動相關(存放啟動相關的文件)

  • 64bytes:分區表(記錄每個硬碟有幾個分區,每個分區的開始和結束位置),其中每16bytes用來標識一個分區信息(起始位置和結束位置等信息)

  • 2bytes: 55AA(兩個位元組的標誌位)

MBR分區中一塊硬碟最多有4個主分區,也可以3主分區+1擴展(N個邏輯分區)

MBR分區類型:

  • 主分區:可以存放數據也可以裝系統

  • 擴展分區:不能直接存數據,需要在裡面劃分邏輯分區才能存放數據(相當於一個容器)

  • 邏輯分區:
    主分區和擴展分區對應數字1--4,/dev/sda3,邏輯分區從數字5開始,/dev/sda5

MBR分區結構

image

  • 主引導程式(偏移地址0000H--0088H),它負責從活動分區中裝載,並運行系統引導程式

  • 出錯信息數據區,偏移地址0089H--00E1H為出錯信息,00E2H--01BDH全為0位元組

  • 分區表(DPT,Disk Partition Table)含4個分區項,偏移地址01BEH--01FDH,每個分區表項長1個位元組,共64位元組為分區項1、分區項2、分區項3、分區項4(分區表不是一個文件,而是直接以二進位的形式存放在0扇區)

  • 結束標誌字,偏移地址01FE--01FF的2個位元組值為結束標誌55AA

備份MBR分區表:

#dd命令:直接以二進位的形式來訪問磁碟數據
dd if(input file)=/dev/sda of(out file)=/data/mbr bs=1(一次讀一個位元組) count=64(讀64次) skip=446(跳過硬碟的前446個位元組)

dd命令:按照指定大小的數據塊來拷貝文件,併在拷貝的過程中對內容進行轉換

選項:

  • if:源文件(輸入文件)

  • of:目標文件(目的文件)

  • bs:每一塊的大小

  • count:拷貝多少個

  • skip:從輸入文件跳過開頭多少個塊後開始複製

  • seek:從輸出文件開頭跳過多少個塊開始複製

範例: 備份MBR的分區表,並破壞後恢復

查看二進位文件的十六進位編碼:hexdump -C filename
選項:
-C:輸出十六進位對應的字元
-n:顯示前多少個位元組
如果不加選項: hexdump filename -- 已兩個位元組為一組的十六進位倒敘顯示
鏈接:https://www.linuxprobe.com/linux-hexdump.html
備份的這個分區表文件不能放在本地,因為如果分區表壞了,這個文件也找不到了。


GPT分區

GPT:GUID(Globals Unique Identifiers) partition table。支持128個分區,支持很大的硬碟很大的分區容量。取消了擴展分區這些概念,全是主分區(MBR使用擴展分區的目的是彌補只能分四個分區的缺陷)。

BIOS和UEFI

BIOS(Basic Input Output System 基本輸入輸出系統):電腦主板上內置的程式代碼
作用:開機自檢、引導操作系統。操作系統開始啟動之後,BIOS的任務就完成了
BIOS只能識別到主引導記錄(MBR)初始化的硬碟,最大支持2T的硬碟,4個主分區(邏輯分區中的擴展分區除外)。
EFI(Extensible Firmware Interface)可擴展固件介面。是因特爾首先發佈出來的,後來各大公司就加入,形成了一個
UEFI的國際組織。
EFI:相當於新版BIOS
UEFI(Unified Extensible Firmware Interface)統一的可擴展固件介面:支持更大的記憶體、支持gpt分區和圖形界面等

常用組合方式:

  • BIOS+MBR

  • UEFI+GPT

運行流程:
image

硬碟分區的管理

列出塊設備:lsblk

lsblk: list block --- 列出所有的塊設備文件
塊設備也就是存儲以“塊”為單位數據的設備,比較典型的如磁碟設備、光碟或者優盤

設備類型:
塊設備:block,存取單位“塊”,磁碟
字元設備:char,存取單位“字元”,鍵盤

創建分區:

  • fdisk --- 一個老牌工具,一般用來管理MBR分區

  • gdisk --- 管理GPT分區

把硬碟上的分區信息同步到內核中:

  • partprobe命令

  • 重啟電腦

分區工具fdisk和gdiskd的使用

fdisk -l [-u] [device...]     查看分區
fdisk [device...]             管理MBR分區
gdisk [device...]             類fdisk 的GPT分區工具

子命令:

  • p 分區列表

  • t 更改分區類型

  • n 創建新分區

  • d 刪除分區

  • v 校驗分區

  • u 轉換單位

  • w 保存並退出

  • q 不保存並退出

查看內核是否已經識別新的分區:cat /proc/partations


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Hi,大家好,我是Mic。 一個工作5年的粉絲,在簡歷上寫精通Kafka。 結果在面試的時候直接打臉。 面試官問他:“什麼是ISR,為什麼需要設計ISR” 然後他一臉懵逼的看著面試官. 下麵看看普通人和高手的回答。 普通人: ISR好像是Kafka裡面的一個機制吧。 為什麼要引入,應該是跟數據同步有 ...
  • runAsync 和 supplyAsync runAsync接受一個Runable的實現,無返回值 CompletableFuture.runAsync(()->System.out.println("無返回結果的運行")); supplyAsync接受一個Supplier的實現,有返回值 Com ...
  • 前言 🗯 嗨嘍,大家好呀~這裡是愛看美女的茜茜吶 水印這個詞相信大家已經不陌生了,畢竟現今天, 視頻有水印,圖片有水印,甚至一些電商平臺的展示圖也有水印 🍬 於是今天我就來分享一個python添加水印的方法~學會後你就不用自己去添加水印了, 只需要點一下運行~ python它自己自己給你弄好啦! ...
  • Sorted Set (ZSet) 數據結構 Sorted Set (ZSet), 即有序集合, 底層使用 壓縮列表(ziplist) 或者 跳躍表(skiplist) 使用 壓縮列表(ziplist) 當同時滿足下麵兩個條件時,使用 ziplist 存儲數據 元素個數少於128個 (zset-ma ...
  • 在程式開發過程中,我們一般會用到配置文件來設定一些參數。常見的配置文件格式為 **ini**, **xml**, **config**等。 ...
  • 在各種群里經常討論的一個事情是.NET 如何調用 Java 的實現,最常見的場景之一就是在加解密方面Java提供的密鑰,C#無法解密, C#中byte範圍是[0,255],而Java中的byte範圍是[-128,127],由於密碼生成器是java所獨有的,其它語言都不支持(IOS,ANDROID,C ...
  • MediaWPF 基於 .NET 6 實現視頻硬解碼渲染Demo(無空域問題) 代碼實現僅供學習參考 本項目視頻渲染通過顯卡進行視頻解碼,CPU幾乎不參與工作,並且不存在令人煩躁的空域問題。 在播放攝像頭多路視頻或高解析度、高幀率視頻時可以極大發揮顯卡性能(我認為該項目做到了這一點)。 支持各類網路 ...
  • 一、簡介 LVM(Logical Volume Manager)邏輯捲管理,是在硬碟分區和文件系統之間添加的一個邏輯層,為文件系統屏蔽下層硬碟分區佈局,並提供一個抽象的盤捲,在盤捲上建立文件系統。管理員利用LVM可以在硬碟不用重新分區的情況下動態調整文件系統的大小,並且利用LVM管理的文件系統可以跨 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...