磁盘管理详解(01)

简介:

一、简介

    对Linux而言,其哲学思想之一就是一切皆文件,因此Linux之上的所有设备都是通过文件接口来实现的,也就是说在访问设备的时候就如同访问一个文件一样,因为它们使用的都是文件系统接口。

    那我们要向设备中写入数据是怎样操作的?首先硬件设备在系统上会映射成一个一个文件,那我们在向硬件中写入数据就相当于在文件中写入数据。

二、设备文件

    1.设备类型

        块设备:Block,其存取单位是“块”,如硬盘;

        字符设备:char,其存取单位是“字符”,如键盘;

    2.设备文件

        每一个设备都有一个文件作为它的访问入口,此文件称之为设备文件;该文件关联至一个设备驱动程序,进而能够跟与之对应的硬件设备进行通信。

    3.设备号码

        用来标识设备,不同类别的设备用不同的设备号,同一类别的设备有不同的设备或多个设备,因此就有了主设备号和次设备号。

        主设备号:major number,标识设备类型;

        次设备号:minor number,标识同一类型下的不同设备;

    可以通过ls -l /dev来查看设备文件的设备号码,主设备号和次设备号通过逗号隔开,前面为主设备号,后面为次设备号,如下图所示:

                wKiom1meSebwcfrOAAEyf6eM6iI362.png-wh_50

三、磁盘设备的设备文件命名

    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...

四、硬盘存储术语

    1.head:磁头

    2.track:磁道,存储数据的地方

    3.cylinder:柱面,一个柱面为8MB

    4.secotr:扇区,512bytes

五、磁盘分区

    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机制来进行分区

六、管理分区

    1.磁盘分区管理工具:fdisk、gdisk,parted

        fdisk:创建MBR分区,交互式操作

        gdisk:创建GPT分区,交互式操作

        parted:高级分区操作(创建、复制、调整大小等等),非交互式操作,谨慎使用;

七、使用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   

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
     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

八、同步分区表

    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];

九、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

        

            

            

              本文转自wzcLINUXER 51CTO博客,原文链接:http://blog.51cto.com/yacheng0316/1958976,如需转载请自行联系原作者


              

            


相关文章
|
5月前
|
Linux 开发工具
Linux操作系统6:文件系统及磁盘管理
Linux操作系统6:文件系统及磁盘管理
91 0
|
3月前
磁盘管理
磁盘管理 查看挂载情况 lsblk -f 挂载步骤 1.虚拟机增加硬盘 2.分区命令 fdisk /dev(设备文件)/sdb m 显示命令列表 p 显示磁盘分区 n 新增分区 d 删除分区 w 写入并退出 3.格式化磁盘,并挂载 mkfs -t ext4 /dev/sdb1 mount /dev/sdb1 文件路径
22 0
|
3月前
磁盘管理
磁盘管理 查看挂载情况 lsblk -f 挂载步骤 1.虚拟机增加硬盘 2.分区命令 fdisk /dev(设备文件)/sdb m 显示命令列表 p 显示磁盘分区 n 新增分区 d 删除分区 w 写入并退出 3.格式化磁盘,并挂载 mkfs -t ext4 /dev/sdb1 mount /dev/sdb1 文件路径
15 0
|
3月前
|
Linux
磁盘管理工具 - cfdisk
【1月更文挑战第9天】
40 0
|
4月前
|
存储 IDE Linux
回顾一下磁盘管理
回顾一下磁盘管理
103 0
|
5月前
|
Ubuntu Linux 开发工具
Linux操作系统7:文件系统及磁盘管理(二)
Linux操作系统7:文件系统及磁盘管理(二)
48 0
|
8月前
|
存储 算法 Linux
系统磁盘管理
文件系统 创建物理卷选项(PV) 创建卷组选项 (VG) 创建逻辑卷选项 (LV) 磁盘扩展 vg内存不足时扩展 LVM案例: 磁盘配额
|
8月前
|
Unix Linux
|
9月前
|
Linux 测试技术 CDN
Linux系统-【磁盘管理】lsblk命令 – 查看系统的磁盘使用情况
lsblk命令来自于英文词组”list block“的缩写,其功能是用于查看系统的磁盘使用情况。
161 0
|
10月前
|
Linux
【磁盘管理】fdisk命令 – 管理磁盘分区
fdisk命令来自于英文词组“Partition table manipulator for Linux”的缩写,其功能是用于管理磁盘的分区信息。如果一套几百平米的房子内部没有墙壁,虽然看起来会很敞亮,但是各种声音、气味、物品会随意充斥在整个房子内,让人极不舒适,因此需要用墙壁按照功能进行划分,例如卧室、厕所、厨房、阳台等等。
171 0