磁盘的组成:盘片、磁头、机械臂、主轴马达。
盘片的组成:磁头划过的一个个同心圆称为磁道(track);从圆心向外画直线,可将磁道划分为若干的弧段,成为扇区(sector),是磁盘的最小组成单元,大小512byte。
盘片上下两面各有一个磁头,每张盘片同一位置的磁道,组成了柱面(cylinder ):
磁盘容量=磁头数*柱面(磁道)数*每柱面(磁道)扇区数*每扇区字节数
每个磁道和柱面又进行了编号,比如n磁道m柱面,在这里有一个非常重要的位置,即:0磁道0扇区。这是MBR的存放位置,即Master Boot Record,主引导记录,大小为512byte。
MBR的512byte中,446byte为bootloader占用,64byte为分区表占用(16byte表示一个分区,所以做多只能有4个主分区),以及2byte的结束标志(55AA)。
磁盘在Linux系统下是以什么形式存在的?
Linux哲学之一就是“一切皆文件”,同样,磁盘在Linux中也表现为文件,即/dev目录下:
IDE,ATA:/dev/hd[a-z]
SATA,SCSI,USB,SAS:sd[a-z]
1.分区
磁盘分区能够让我们安全有效的管理文件、在不同分区创建不同的文件系统,那么Linux下如何分区呢?
命令:fdisk
fdisk -l DEVICE : 显示DEVICE的分区信息;
fdisk DEVICE : 为DEVICE创建分区
有fdisk -l可以看到当前系统有一块硬盘没有分区:/dev/sdb。下面我们以/dev/sdb为例,进行分区:
fdisk是一个交互式命令,键入m,查看帮助信息:
键入n创建新的分区:
此处,我选择了创建primary主分区,选择分区号1,开始柱面(选择默认第一个柱面),结束柱面(以+Number K/M/G,此处+2G),由此可以看出分区的最小单位是“柱面”:
键入p,查看分区信息:
按照上述操作再次新建3个主分区,并查看分区表:
MBR中64byte记录分区表,每个分区占用16byte,最多4个主分区,理论上我们不能再新建任何分区:
果然不能新建任何分区了,并提示删除一些分区;
键入d,删除分区,选择4号分区:
如果我们需要大于4个分区,就需要新建扩展分区,并在扩展分区下新建逻辑分区了:
当然,扩展分区不能格式化,也就不能为用户所使用,这就需要在扩展分区下新建逻辑分区了:
第一个逻辑分区肯定是从第5个分区号开始的,如果磁盘空间够大,还可以继续划分逻辑分区,但是就命令fdisk来说,最好划分小于等于15个分区。
完成分区划分后,键入w保存分区设置,否则,前面所有的设置都无效了:
通过fdisk -l可以查看系统的分区情况:
同样,使用fdisk -l /dev/sdb查看设备分区信息:
分区完成后,内核并没有探测到新的分区,可以通过reboot或者命令手动让内核探测新的分区:
RHEL 5:partprobe
RHEL 6:partx -a /dev/[sh]d[a-z]
查看内核识别的分区信息:cat /proc/partitons
上述只是简单的分区操作,分区还有很多特殊的设置,在此只做简单的描述,以后用到时,再补充至此:
2.格式化
格式化就是创建文件系统的过程,分区后只有经过格式化才能有效的组织文件。
linux内核默认支持的文件系统有:ext,xfs。
下面我们以ext为例,进行格式化的讲解。
命令1:mkfs
mkfs [options] /dev/[sh]d[a-z]
option:
-t fstype :指定文件系统类型
命令blkid /dev/part查看指定分区的UUID,type,Label:
命令提示符下,键入mkfs,按两次下Tab,会列出包含mkfs的命令,如下:
还可以用mkfs.ext4格式化分区,效果和mkfs -t ext4一样,其实,mkfs -t 就是调用mkfs.fstype命令来实现的。
使用mkfs格式化的要点:
1、文件系统必须被内核支持,即该文件系统已经整合进系统
2、必须有相应的创建文件系统的命令,即mkfs.fstype。
所以存在哪种mkfs.fstype才能使用-t fstype创建相应的文件系统。
命令2:mke2fs
mke2fs [options] /dev/[sh]d[a-z]
option:
-t [ext2|ext3|ext4] 指定文件系统类型
-b [1024|2048|4096] 指定块大小
-L label 设置卷标
-m Num 预留给管理使用的空间占总空间的百分比,默认是预留5%
-r # 预留给管理使用的块的个数
查看fstype,label设置:
查看block size设置:
查看-m设置:
mke2fs不指定文件系统类型,默认创建ext2的文件系统:
mke2fs的配置文件:/etc/mke2fs.conf。可以通过修改其配置文件,实现mke2fs默认属性等设置。
mke2fs也是调用mkfs.fstype来实现其功能的,那么mkfs也可以实现指定选项来设置卷标、块大小、预留百分比等:
命令3:tune2fs
tune2fs [options] /dev/[sh]d[a-z]
option:
-l 显示文件系统超级块
-L label 修改卷标
-m Num 修改预留给管理使用的空间占总体空间的百分比
-r # 修改预留给管理使用的块个数
如果需要改变文件系统类型和块大小,只能通过重新格式化,指定相应参数即可。
大家有没有注意fstype=ext3,前面的SEC_TYPE=ext2:
或许,由下面两个例子,可以得出什么信息:
mount是用来挂在文件系统的,下篇会介绍。
使用mount -t fstype挂在文件系统并指定挂载类型时,ext4的文件系统挂载为ext3格式的文件系统是不能成功的,但是,反之则可以成功;而ext3的文件系统挂载为ext2格式的文件系统成功,但是,反之则不成功。
本文出自 “大灰狼” 博客,请务必保留此出处http://huifei1314.blog.51cto.com/4681402/1409297
Linux命令-磁盘分区及格式化,布布扣,bubuko.com
原文:http://huifei1314.blog.51cto.com/4681402/1409297