zoukankan      html  css  js  c++  java
  • 硬盘信息和磁盘分区管理

    硬盘信息和磁盘分区管理

    硬盘

    硬盘可分为机械硬盘和固态硬盘
    机械硬盘(HDD ):
    	Hard Disk Drive,即是传统普通硬盘,主要由:盘片,磁头,盘片转轴及控制电机,磁头控制器,数据转换器,接口,缓存等几个部分组成。机械硬盘中所有的盘片都装在一个旋转轴上,每张盘片之间是平行的,在每个盘片的存储面上有一个磁头,磁头与盘片之间的距离比头发丝的直径还小,所有的磁头联在一个磁头控制器上,由磁头控制器负责各个磁头的运动。磁头可沿盘片的半径方向运动,加上盘片每分钟几千转的高速旋转,磁头就可以定位在盘片的指定位置上进行数据的读写操作。数据通过磁头由电磁流来改变极性方式被电磁流写到磁盘上,也可以通过相反方式读取。硬盘为精密设备,进入硬盘的空气必须过滤。
        
    固态硬盘(SSD ):
    	Solid State Drive,用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH 芯片、DRAM芯片)组成。固态硬盘在接口的规范和定义、功能及使用方法上与普通硬盘的完全相同,在产品外形和尺寸上也与普通硬盘一致相较于HDD ,SSD在防震抗摔、传输速率、功耗、重量、噪音上有明显优势,SSD 传输速率性能是HDD 的2倍。
    
    相较于SSD ,HDD 在价格、容量、使用寿命上占有绝对优势。
    硬盘有价,数据无价,目前SSD 不能完全取代HHD。
    

    硬盘接口类型

    并行接口:
    	IDE :133MB/s
    	SCSI :640MB/s
    串口接口:(B为字节,b为位,1字节=8位)
    	SATA :6Gbps
    	SAS :6Gbps(服务器上用)
    	USB :480MB/s
    

    Linux中磁盘的命名方式

    命名:/dev/DEV_FILE
    	Sd :表示SCSI硬盘
    	Sda:表示SCSI硬盘中第一块硬盘,b表示第二块,以此类推
    

    磁盘分区方式

    磁盘分区可以优化I/O 性能,实现磁盘空间配额限制,提高修复速度,隔离系统和程序,安装多个OS,采用不同文件系统。
    分区表有两份,一个在内存中(是从磁盘上复制的),一个是在磁盘上。
    磁盘有两种分区方式:MBR和GPT。
    
    MRB分区
    	MBR分区格式最多有4个分区,可以是4个主分区,或者3个主分区和1个扩展分区,第一个逻辑分区必须从5开始。
    	例如:/dev/sda1:表示第一块磁盘的第一个主分区,/dev/sda5:表示第一块磁盘的第一个逻辑分区。
    	MBR分区特点:使用32位表示分区数,分区的大小不能超过2T。
        MBR分区结构
    
             ![](http://images2017.cnblogs.com/blog/1250974/201801/1250974-20180126202133162-1677424066.png)
    
        	第一点,磁道0号扇区有512btyes,其中446btyes为boot loader(引导加载器);64btyes为存储分区表,此表只记录4个主分区或者3个主分区和1个扩展分区,这1个扩展分区可以包含N个逻辑分区,其中16bytes就标识一个分区;2bytes为55AA,这是个结束标志,是个表明前面信息的有效性标识。
    		第二点,MBR使用32位表示扇区数,分区不能超过2T当磁盘容量超过2T的时候,现在的MBR机制是没办法识别2T以后的磁盘空间的,此时就需要使用另一个分区机制GTP来进行分区。
    	MBR结构
    
             ![](http://images2017.cnblogs.com/blog/1250974/201801/1250974-20180126202146834-1330124506.png)
    
        MBR的DPT结构
    
            ![](http://images2017.cnblogs.com/blog/1250974/201801/1250974-20180126202156506-106212638.png)
    
    
    GPT分区
    
    	![](http://images2017.cnblogs.com/blog/1250974/201801/1250974-20180126202208444-70833671.png)
    
            EFI部分又可以分为4个区域:EFI信息区(GPT头)、分区表、GPT分区、备份区域
    	GPT是使用64为表示扇区数,打破了MBR的仅嫩共有4个主分区缺点,能支持128分区且是由UUID来表示的。GPT分区表是自动备份在头尾两份,并有CRC校验未,且统一扩展固件接口UEFI支持GPT分区。
    

    交换分区

    交换分区是系统RAM的补充。
    基本设置包括:
    	创建交换分区或者文件
    	使用mkswap 写入特殊签名
    	在/etc/fstab 文件中添加适当的条目
    	使用swapon -a 激活交换空间
    文件也可以创建为swap分区:
    	先创建分区,然后创建文件系统,然后在文件系统中创建swap 分区。
    SWAP的优先级:
    	可以指定swap分区0到32767的优先级,值越大优先级越高。
    	如果用户没有指定,那么核心会自动给swap指定一个优先级,这个优先级从-1开始,每加入一个新的没有用户指定优先级的swap ,会给这个优先级减一
    	先添加的swap的缺省优先级比较高,除非用户自己指定一个优先级,而用户指定的优先级( 是正数)永远高于核心缺省指定的优先级( 是负数)
    	优化性能:分布存放,高性能磁盘存放。
    

    分区创建过程

    1.创建分区
    	fdisk ;
    	gdisk 
    2.创建分区后查看分区情况
    	查看内存中的
    		lsblk ; 
    		ll /dev/sd* ; 
    		cat /proc/paritions
    	查看磁盘上的
    		fdisk -l ;
    		gdisk -l /dev/DEVICE
    3.若内容中和磁盘上的不相同就需同步
    	centos5和7上使用partprobe
    	centos6上使用partx
    

    分区管理命令

    fdisk
    	fdisk - manipulate disk partition table
    	创建MBR分区。
    	注:
    		3主分区+1 扩展(N 个逻辑分区)或4个主分区。
    		扩展分区包含逻辑分区,扩展分区应该占用所有剩下的空间,然后逻辑分区从扩展分区中分。
    	1)
            fdisk [options] <disk>    	change partition table
            fdisk [options] -l <disk> 	list partition table(s)
            fdisk -s <partition>      	give partition size(s) in blocks
            options:
    			-b <size>             	扇区尺寸 (512, 1024, 2048 or 4096)
    			-c[=<mode>]           	兼容模式: 'dos' or 'nondos' (default)
                -h                    	显示帮助
                -u[=<unit>]           	显示单元: 'cylinders' or 'sectors' (default)
                -v                    	显示版本信息
                -C <number>           	指定 the number of cylinders
                -H <number>           	指定 the number of heads
                -S <number>           	指定the number of sectors per track
    
    	2)
            fdisk也是一个交互命令
            fdisk /dev/device_name
            子命令:
                a   	toggle a bootable flag
                b   	edit bsd disklabel
                c   	toggle the dos compatibility flag
                d   	删除分区
                g   	创建一个新的空白的GPT分区表
                G   	create an IRIX (SGI) partition table
                l   	列出系统id
                m   	显示菜单
                n   	创建新分区
                o   	创建一个新的空白的DOS分区表
                p   	查看现有分区列表
                q   	不保存退出
                s   	create a new empty Sun disklabel
                t   	更改分区的系统id
                u   	转换单位
                v   	校验分区
                w   	保存并退出
                x   	extra functionality (experts only)
                
                
    gdisk
    	gdisk - Interactive GUID partition table (GPT) manipulator
        创建GPT分区。
        gdisk [ -l ] device
        gdisk是交互命令
            子命令:
            b		备份GPT数据到一个文件中
            c		更改分区名
            d		删除一个分区
            i		在一个分区上显示详细信息
            l		显示已知的分区类型
            n		添加新的分区
            o		传教一个新的空白的GUID分区表(GPT)
            p		显示分区表
            q		不保存退出
            r		recovery and transformation options (experts only)
            s		分区分类
            t		更改分区类型码
            v		校验磁盘
            w		把表写到磁盘上并退出
            x		extra functionality (experts only)
            ?		显示本目录
            
            
    lsblk
    	lsblk - list block devices,列出块设备。
    	lsblk [options] [device...]
    	-a, --all            	显示所有设备
    	-b, --bytes          	显示bytes类型的大小尺寸
    	-d, --nodeps         	不显示 slaves or holders
    	-D, --discard        	显示discard capabilities
    	-e, --exclude <list> 	通过指定号排除设备 (default: RAM disks)
    	-I, --include <list> 	仅显示指定号的设备
    	-f, --fs             	显示有关文件系统的信息
    	-h, --help           	帮助信息
    	-i, --ascii         	仅使用ascii 字符
    	-m, --perms          	显示有关权限的信息
    	-l, --list           	使用列表格式显示输出
    	-n, --noheadings     	不显示头部信息
    	-o, --output <list>  	显示输出列
    	-p, --paths          	显示设备绝对路径
    	-P, --pairs          	使用key="value"的输出格式
    	-r, --raw            	使用raw输出格式
    	-s, --inverse        	反响依赖
    	-t, --topology       	显示有关拓扑结构的信息
    	-S, --scsi           	显示有关 SCSI 设备的信息
    	可用的列 (for --output):
    		NAME  	device name
    		KNAME  	internal kernel device name
    		MAJ:MIN  	major:minor device number
    		FSTYPE 	filesystem type
    		MOUNTPOINT  	where the device is mounted
    		LABEL 	 filesystem LABEL
    		UUID  	filesystem UUID
    		RA  	read-ahead of the device
    		RO  	read-only device
    		RM  	removable device
    		MODEL  	device identifier
    		SIZE  	size of the device
    		STATE  	state of the device
    		OWNER  	user name
    		GROUP  	group name
    		MODE  	device node permissions
    		ALIGNMENT  	alignment offset
    		MIN-IO  	minimum I/O size
    		OPT-IO  	optimal I/O size
    		PHY-SEC  	physical sector size
    		LOG-SEC  	logical sector size
    		ROTA  	rotational device
    		SCHED  I/O 	scheduler name
    		RQ-SIZE  	request queue size
    		TYPE  	device type
    		DISC-ALN  	discard alignment offset
    		DISC-GRAN  	discard granularity
    		DISC-MAX  	discard max bytes
    		DISC-ZERO  	discard zeroes data
            
            
    parted
    	parted - a partition manipulation program
    		高级分区操作,是个交互命令,操作是实时生效的,所以要谨慎使用。
    	parted [options] [device [command [options...]...]]
    		OPTIONs:
    			-h, --help                      	显示帮助信息
    			-l, --list                      	在所有块设备上列出分区的布局
    			-m, --machine                   	显示存放机器可解析的输出
    			-s, --script                    	不提示用户干预
    			-v, --version                   	显示版本信息
    			-a, --align=[none|cyl|min|opt]  	新分区alignment
    		COMMANDs,也是子命令:
    			align-check TYPE N                       	check partition N for TYPE(min|opt) alignment
    			help [COMMAND]                           	print general help, or help on COMMAND
    			mklabel,mktable LABEL-TYPE               	create a new disklabel (partition table)
    			mkpart PART-TYPE [FS-TYPE] START END    	make a partition
    			name NUMBER NAME                         	name partition NUMBER as NAME
    			print [devices|free|list,all|NUMBER]     	显示
    			quit                                     	exit program
    			rescue START END                         	rescue a lost partition near START and END
    			rm NUMBER                                	delete partition NUMBER
    			select DEVICE                            	choose the device to edit
    			disk_set FLAG STATE                      	change the FLAG on selected device
    			disk_toggle [FLAG]                       	toggle the state of FLAG on selected device
    			set NUMBER FLAG STATE                    	change the FLAG on partition NUMBER
    			toggle [NUMBER [FLAG]]                   	toggle the state of FLAG on partition NUMBER
    			unit UNIT                                	set the default unit to UNIT
    			version                                  	显示版本
    		例如
    			parted /dev/sdb  
    				会进入命令模式,且这个操作是实时的,小心!
    			
                
    partx
    	partx - tell the Linux kernel about the presence and numbering of on-disk partitions
    		一般是centos6用于通知内核重新读取硬盘分区表,也就是同步分区信息。
    		centos5和7上同样可用
    	partx [-a|-d|-s|-u] [--nr <n:m> | <partition>] <disk>
    		-a, --add            	添加指定的分区
    		-d, --delete         	删除指定分区
    		-s, --show           	列出分区
    		-u, --update        	更新指定分区
    		-b, --bytes          	使用bytes的格式来显示大小尺寸
    		-g, --noheadings     	不显示表头信息
    		-n, --nr <n:m>       	指定分区范围(e.g. --nr 2:4)
    		-o, --output <type>  	定义使用那列来输出
    		-P, --pairs          	使用key="value"的格式输出
    		-r, --raw            	使用原始格式输出
    		-t, --type <type>    	指定分区类型 (dos, bsd, solaris, etc.)
    		-v, --verbose        	显示详细信息
    		-l,--list	列出分区
    		可用的列(for --show, --raw or --pairs):
    			NR  partition number
    			START  start of the partition in sectors
    			END  end of the partition in sectors
    			SECTORS  number of sectors
    			SIZE  human readable size
    			NAME  partition name
    			UUID  partition UUID
    			TYPE  partition type hex or uuid
    			FLAGS  partition flags
    			SCHEME  partition table type (dos, gpt, ...)
    		例子:
    			实际上专用于centos6
    			新增分区,同步:
    				partx -a /dev/DEVICE 
    			删除分区,同步:
    				partx -d --nr M-N /dev/DEVICE
    partprobe
    	partprobe - inform the OS of partition table changes
    		在centos5和7上重新设置内存中的内核分区表,也就是同步分区信息。
    		centos6上不好用。
    	partprobe [-d] [-s] [devices...]
    		-d     	不更新内核
    		-s     	显示设备和分区的概述
    		例子:
    			在centos5和7上直接使用,就可直接同步分区
    			partprobe [/dev/DEVICE] 
    			
                
    mkswap
    	mkswap - set up a Linux swap area,建立Linux swap分区
    	mkswap [options] device [size]
    		-c, --check               	在创建swap分区前,检查坏的块设备
    		-f, --force               	允许swap分区大小比设备本身大小大
    		-p, --pagesize SIZE       	采用bytes指定页的尺寸
    		-L, --label LABEL         	指定标签
    		-v, --swapversion NUM     	指定swap-space版本号
    		-U, --uuid UUID           	指定使用的uuid
    
    
    

    分区与文件系统

    当你创建了分区后,分区是有了,你可以通过lsblk查看分区。
    但是现在的分区仍然不能用,要想使用必须得给对应的分区创建文件系统。
    文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构,即在存储设备上组织文件的方法。
    操作系统中负责管理和存储文件信息的软件结构称为文件管理系统,简称文件系统
    从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。
    具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,安全控制,日志,压缩,加密等 。
    所以说要想使用分区得给分区建立文件系统,文件系统的创建另外在说
    

    注:图片显示可能存在文件,可以直接复制图片地址,在新的页面打开显示。

  • 相关阅读:
    WordPress研究心得
    Java之生成Pdf并对Pdf内容操作
    Java之生成条形码、PDF、HTML
    Redis口令设置
    Redis启动问题解决方案
    网狐6603手机棋牌游戏源码.rar
    LNK1179 无效或损坏的文件: 重复的 COMDAT“_IID_IDispatchEx”
    c++转C#
    error LNK1281: 无法生成 SAFESEH 映像 LNK2026 模块对于 SAFESEH 映像是不安全的 VS2015 /win10
    当两行的数据一样时,要删除一行的正则表达式解决办法。
  • 原文地址:https://www.cnblogs.com/shenxm/p/7616229.html
Copyright © 2011-2022 走看看