磁碟管理

来源: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
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...