磁碟管理

来源:https://www.cnblogs.com/fengciaimei/archive/2020/04/20/12735509.html
-Advertisement-
Play Games

簡單介紹了磁碟類型,MBR分區、gpt分區、創建文件系統、掛載、RAID、LVM一些相關的命令。本文只是筆記,沒有教學,還是怕誤人子弟,見諒。 ...


磁碟管理

懶惰的文字搬運工。

一、磁碟基礎概念

  對文件操作指令

    open() read() write() close()

 

  設備號碼:

    主設備號:major     標識設備類型

    次設備號:minor     在同一設備類型設備下區分不同設備

    如果主設備號和次設備號一致,說明兩者就是同一個設備。即使文件的INODE不一樣也是同一個設備

  硬碟介面及速率

    IDE        133MB/S          並口

    SCSI      640MB/S          並口

    STAT     6Gbps等同於768MB/S    串口

    SAS       6Gbps等同於768MB/S    串口

    USB       480MB/S

    M.2     450MB/s

      NVME  3200 MB/s

    註意,速度不單單是由介面決定了。

    並口介面:同一線纜可以接多個設備

    串口介面:同一線纜只能接一個設備

 

  伺服器硬碟大小:

    LFF 3.5寸,早期都是這種。和普通家用電腦一樣

    SFF 2.5寸,不同與2.5英寸的筆記本硬碟

 

  機械硬碟:

    生產中一般都是用機械硬碟。容量大,性價比高。由磁頭、機械臂、碟片組成

        磁頭: header     磁頭數=盤面數

        磁軌: cylinder      磁軌數=柱面數  

        扇區: secotr 512位元組

    在centos7及以後版本就不在按照柱面劃分分區了,而以扇區作為劃分分區的單位,更加精細化。

    centos5\6還是以柱面為單位進行劃分分區

    機械硬碟轉速 5400 7200 10000 15000 RPM 每分鐘轉多少圈

 

  定址方式:

    CHS: 早先方式,已經淘汰

      CHS的意思就是先確認柱面(Cylinder),再確認磁頭(Header),最後確認扇區(Sector)。先柱面再磁頭再扇區

      CHS採用24位定址

        其中前10位表示磁軌,中間8位表示磁頭,後6位表示扇區

             2^10*2^8*2^6=1024*256*64=16,777,216

      磁碟最大容量:

            16,777,216*512=8,589,934,592‬=8,388,608‬K=8,192M=8G

 

    LBA:

      LBA是一個整數,通過轉換成CHS格式繼續完成磁碟具體定址

        ATA-1規範採用28位LBA,同樣每個扇區512位元組。最大128GB

        ATA-6規範採用48位LBA,同樣每個扇區512位元組。最大128PB

      最大定址個數:2^48

      磁碟最大容量:2^48*512=131,072‬T=128P

 

    磁軌號越小,速度越快。磁軌號越大,速度越快。

    訪問數據的時間=尋道的時間 + 碟片轉圈的時間 + 起頭讀數據的時間

          也可以把碟片轉圈的時間算到尋道的時間內

 

  硬碟的命名

    centos5中: IDE 稱為 hd## hda1 hda2 hdb1 hdc1...

          STAT稱為 sd## sda1 sda2 sdb1 sdb2...

          USB 稱為 sd## sda1 sda2 sdb1 sdb2...

          SAS 稱為 sd## sda1 sda2 sdb1 sdb2...

          SCSI稱為 sd## sda1 sda2 sdb1 sdb2...

    centos6\7\8中: 無論IDE還是STAT SCSI SAS都稱為sd##

 

二、磁碟分區:

(一)、添加硬碟

  查看硬碟的方式:

    cat  /proc/partitions     查看記憶體中的分區表信息

    ll  /dev/sd*          查看記憶體中的設備信息

    lsblk             查看記憶體中的設備分區信息

    fdisk  -l           查看硬碟中的分區信息

 

  在不關機重啟的下識別硬碟

    echo '---' > /sys/class/scsi_host/host0/scan

        其中host0可以改成host1 host2 host3 host4

        其中scsi_host標識是scsi介面類型的磁碟

    小技巧:可以定義成別名

        alias scandisk='echo '\''- - -'\'' > /sys/class/scsi_host/host2/scan;echo '\''- - -'\'' > /sys/class/scsi_host/host0/scan' #表示數字0-n

 

  判斷硬碟類型:

    lsblk -d -o name,rota 1  表示機械硬碟 0表示固態硬碟

        -f   可以顯示對應的文件系統

    cat /sys/block 1  表示機械硬碟 0表示固態硬碟

 

(二)、分區介紹

  磁碟分區格式化分為低級格式化和高級格式化。

    低級格式化主要是磁碟生產廠商再磁碟出廠時進行的,主要時劃分磁軌,生成簇。

    高級格式化主要是用來創建文件系統。

 

  分區的優勢:

      優化I/O性能

      實現磁碟空間配額限制

      提高修複速度

      隔離系統和程式

      安裝多個OS

      採用不同文件系統

 

  查看分區信息

      cat /proc/partitions     查看記憶體中的分區表信息

      ll /dev/sd*          查看記憶體中的設備信息

      lsblk            查看記憶體中的設備分區信息

      fdisk -l           查看硬碟中的分區信息

 

  現在磁碟分區格式有兩種類型,一種是早期的MBR類型,一種是現在較為流行的GPT類型。

  MBR類型:

    MBR,又稱為主引導記錄(Master Boot Record),位於0柱面,0磁頭,0扇區當中。使用了32位二進位來表示扇區數。也就是最大隻能支持2TB大小的磁碟。

    該扇區共計512位元組,分成三個部分。

    第一部分:前446位元組,用來存放操作系統引導程式(bootloader),這是引導某個分區上的操作系統起來的第一段程式。

    第二部分:後64位元組,用來存放分區表。每16個位元組標識一個主分區,一共可以標識4個主分區。

      其中每個分區16個位元組介紹:

          第1個位元組:引導標誌,十六進位80表示活動分區,00表示非活動分區。在一個硬碟上只能由一個活動分區,標識此分區上存在操作系統。

            第2~4個位元組:描述了分區起始位置的磁頭號,柱面號,扇區號。其中第2個位元組的8位標識起始磁頭號,第3個位元組低6位標識起始扇區號,第3個位元組高2位和第4個位元組的8位標識起始柱面號。這3個位元組也就是分區起始位置的CHS描述方法

          第5個位元組:分區類型,0標識分區未使用。83表示linux類型分區,82表示swap分區,8e表示LVM邏輯捲,05表示擴展分區

          第6~8個位元組:描述了分區結束位置的磁頭好,柱面號,扇區號。其中第6個位元組的8位標識結束磁頭號,第7個位元組低6位標識結束扇區號,低7個位元組高2位和第8個位元組的8位標識結束柱面號。這3個位元組也就是分區結束位置的CHS描述方法

          第9~12個位元組:使用LBA方式描述了分區的起始位置。

          第13~16個位元組,使用LBA方式描述了分區的結束位置。

     

    第三部分:最後2個位元組,有效標識位,55AA表示分區表有效。

 

    如果4個分區不夠使用,可以拿出一個主分區來擴展使用,變成擴展分區。擴展分區的16個位元組裡面記錄了另外一段磁碟空間,利用另外一段磁碟空間的EBR(前512位元組)記錄分區信息,

    其中EBR的前446位元組未使用,中間64位元組,最後2位元組的結束表示。

    而中間64位元組中,

        第一個16個位元組記錄了當前邏輯分區的起始位置、結束位置、磁碟類型等等,同MBR類型;

        第二個16個位元組記錄了下一個邏輯分區的起始位置、結束位置、磁碟類型等,同MBR

        第三個16個位元組,未使用

        第四個16個位元組,未使用

    這樣就可以突破只能記錄4個分區的限制了。同時也就解釋了邏輯分區不允許中間有間隔,如果刪了sda5後,後面的sda6就會自動變成sda5的原因,因為邏輯分區是靠前一個邏輯分區中的EBR記錄下一個邏輯分區的起始位置的。

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

 

    例如,  我們想劃分出6個分區,就有下麵幾種可行方案

        一個主分區和五個擴展分區:1P + 5L

            sda1 + sda5 + sda6 + sda7 + sda8 + sda9

        兩個主分區和四個擴展分區:2P + 4L

            sda1 + sda2 + sda5 + sda6 + sda7 + sda8

        三個主分區和三個擴展分區:3P + 3L

            sda1 + sda2 + sda3 + sda5 + sda6 + sda7

    備註:所有的邏輯分區一定是從5號開始的,前1~4可以是主分區和擴展分區。

 

 

 

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

-Advertisement-
Play Games
更多相關文章
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...