磁盤管理詳解(01)

1、簡介centos

    對Linux而言,其哲學思想之一就是一切皆文件,所以Linux之上的全部設備都是經過文件接口來實現的,也就是說在訪問設備的時候就如同訪問一個文件同樣,由於它們使用的都是文件系統接口。bash

    那咱們要向設備中寫入數據是怎樣操做的?首先硬件設備在系統上會映射成一個一個文件,那咱們在向硬件中寫入數據就至關於在文件中寫入數據。ide

2、設備文件工具

    1.設備類型
centos7

        塊設備:Block,其存取單位是「塊」,如硬盤;
spa

        字符設備:char,其存取單位是「字符」,如鍵盤;
3d

    2.設備文件
blog

        每個設備都有一個文件做爲它的訪問入口,此文件稱之爲設備文件;該文件關聯至一個設備驅動程序,進而可以跟與之對應的硬件設備進行通訊。
接口

    3.設備號碼
ip

        用來標識設備,不一樣類別的設備用不一樣的設備號,同一類別的設備有不一樣的設備或多個設備,所以就有了主設備號和次設備號。

        主設備號:major number,標識設備類型;

        次設備號:minor number,標識同一類型下的不一樣設備;

    能夠經過ls -l /dev來查看設備文件的設備號碼,主設備號和次設備號經過逗號隔開,前面爲主設備號,後面爲次設備號,以下圖所示:

                wKiom1meSebwcfrOAAEyf6eM6iI362.png-wh_50

3、磁盤設備的設備文件命名

    1.硬盤接口類型

        並行:數據傳輸有n根線並行傳輸

            IDE:133MB/s

            SCSI:640MB/s

        串口:數據傳輸有一根線按照順序傳輸

            SATA:6Gbps

            SAS:6Gbps

            USB:480MB/s

    2.磁盤設備的設備文件命名:/dev/DEV_FILE

        IDE:/dev/hd

        SCSI,SATA,SAS,USB:/dev/sd 

    2.1.不一樣設備表示方法:在設備文件名後面追加一些字母a-z來表示:

        /dev/sda,/dev/sdb,/dev/sdc

    2.2.同一設備上的不一樣分區:採用數字遞增方式,如1,2...

        /dev/sda1,/dev/sda2,/dev/sda3...

4、硬盤存儲術語

    1.head:磁頭

    2.track:磁道,存儲數據的地方

    3.cylinder:柱面,一個柱面爲8MB

    4.secotr:扇區,512bytes

5、磁盤分區

    1.磁盤兩種分區方式:

        MBR:

            Master Boot Record,主引導記錄,使用32位表示扇區數,分區不超過2T。

        GPT:

            GPT:GUID patition table 支持128個分區,使用64位,支 持8Z( 512Byte/block )64Z ( 4096Byte/block);

            使用128位UUID 表示磁盤和分區 GPT分區表自動備份在頭和尾兩份,並有CRC校驗位;

            UEFI (統一擴展固件接口)硬件支持GPT;

    2.0磁道0扇區

        該扇區大小爲512bytes,專門用來存儲MBR,MBR即主引導記錄,MBR又分爲三部分:

            446bytes:存儲boot loader,引導加載器;

            64bytes:存儲分區表,有多少個分區,每一個分區從哪裏開始到哪裏結束;其中每16bytes標識一個分區,所以一塊硬盤最多隻能用4個主分區;

            2bytes:前面信息的有效性標識(或者叫作結束標誌),用四個16進制數來表示55AA,表示前面510bytes是有效的;

    注:①一塊磁盤要麼最多劃分4個主分區,要麼劃分紅3個主分區+1個擴展分區(N個邏輯分區);

        ②當磁盤容量超過2T的時候,如今的MBR機制是沒辦法識別2T之後的磁盤空間的,此時就是要使用GPT機制來進行分區

6、管理分區

    1.磁盤分區管理工具:fdisk、gdisk,parted

        fdisk:建立MBR分區,交互式操做

        gdisk:建立GPT分區,交互式操做

        parted:高級分區操做(建立、複製、調整大小等等),非交互式操做,謹慎使用;

7、使用fdisk劃分分區

    1.查看:fdisk -l [DEVICE]...,例如:fdisk -l /dev/sda;

    2.建立分區:fdisk [DIVICE]...,例如:fdisk /dev/sda;

    3.fdisk建立分區是一個交互式界面,有許多子命令:

        p:顯示磁盤分區表;

        n:建立新分區;

        d:刪除分區; 

        t:修改分區的系統ID;

        l:查看支持哪些分區ID;

        w:保存並退出

        q:不保存退出

    注:centos6劃分分區是按柱面來劃分的;centos7是按扇區劃分的,在centos7上要以柱面方式顯示則可使用fdisk -l -u=cylinder   

    4.在Linux系統上增長硬盤後默認不會生效,使用如下命令使其生效:
            echo "- - -" > /sys/class/scsi_host/host2/scan ;
            
    5.查看/dev/sda硬盤512bytes的內容
    
            hexdump -C -v -n 512 /dev/sda;
    6.備份MBR
            dd if=/dev/sda of=/root/mbr bs=1 count=512;
            
    7.用mbr恢復分區信息
            dd if=mbr of=/dev/sdb;
            fdisk -l /dev/sdb;
            
    8.清零引導加載器
            dd if=/dev/zero of=/dev/sdb bs=1 count=446;
            hexdump -C -v -n 512 /dev/sdb;
            
    9.清零分區表
            dd if=/dev/zero of=/dev/sdb bs=1 count=64 skip=446 seek=446;
            hexdump -C -v -n 512 /dev/sdb;

8、同步分區表

    1.查看內核是否識別新的分區:

        (1)cat /proc/partitions;

        (2)lsblk;

        (3)ll /dev/sd*  

    2.對於已經有分區處於使用狀態的磁盤來說,新建分區後須要讓內核從新讀其分區表;

       2.1新增分區:

            格式: partx -a -n M:N /dev/DEVICE ;

                   kpartx -a /dev/DEVICE -f: force ;

               centos6系列:partx -a /dev/DEVICE;例如:partx -a /dev/sda;

               centos5,7系列:partprobe [/dev/DEVICE];


        2.2刪除分區:

        格式:partx -d -n M:N /dev/DEVICE;

             centos6系列:partx -d --nr 7-8 /dev/DEVICE;

             centos5,7系列:partprobe [/dev/DEVICE];

9、parted命令

    parted的操做都是實時生效的,當心使用 

    用法:parted [選項]... [設備 [命令 [參數]...]...]

    parted /dev/sdb mklabel gpt|msdos

    parted /dev/sdb print

    parted /dev/sdb mkpart primary 1 200

    parted /dev/sdb rm 1 

    parted -l

相關文章
相關標籤/搜索