面对一块硬盘,我们该如何使用它呢?本文从机械硬盘结构,分区,格式化,和挂载四个层次进行介绍。
一、机械硬盘结构
现在服务器使用机械式硬盘是主流,因为其造价低,容量大,和固态硬盘相比读写性能要差很多。机械硬盘主要由以下几个部件构成:转轴Spindle,盘片Platter,机械臂Boom,磁头Head。工作机制是马达带动盘片高速旋转,磁头对盘片进行擦写数据或读取其上存储的数据。
基于这种工作机制有如下几个存储术语
1.磁道Track:盘片上狭窄的同心圆环,最外侧为0磁道
2.扇区Sector:磁道上一小块弧段称为扇区,硬盘存储单位,大小为512字节
对每个扇区进行编号,称为逻辑块地址LBA
3.柱面Clinder:编号相同的磁道构成柱面
二、分区
了解硬盘结构后,接着讲一下分区。一块新硬盘使用,首先要进行分区操作,分区起到隔离的效果,方便管理。分区有两种方式:
-
MBR(Master Boot Record),传统分区方式
-
GPT(GUID Partition Table),较新分区方式
(1)MBR分区
使用32位表示扇区数,最大支持2T空间。在0磁道0扇区记录启动代码(前446字节)和分区表信息,如下图所示
由分区表可以看出MBR分区方式只能划分四个主分区,如果要划分四个以上分区,需要划分一个扩展分区,在扩展分区下继续划分逻辑分区。
分区工具fdisk
fdisk是一款交互式工具,可以用来创建和管理磁盘分区。
fdisk [-uc] device 进入分区工具界面
输入m查看帮助,常用指令有
n:新建分区
t:改变分区类型编号
d:删除分区
p:查看分区列表
q:不保存退出
w:保存并退出
注意:操作完成之后,要使用w退出,才会生效
如果退出报同步错误,则需要手动同步分区信息
增加分区同步
Centos6:partx -a device Centos7:partprobe
删除分区同步
Centos6:partx -d device Centos7:partprobe
可使用如下命令查看内核识别的分区情况
cat /proc/partitions lsblk
fdisk -l [devices…] 查看分区情况
[root@centos6 ~]$ fdisk -l /dev/sda Disk /dev/sda: 107.4 GB, 107374182400 bytes 255 heads, 63 sectors/track, 13054 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0005aba0 Device Boot Start End Blocks Id System /dev/sda1 * 1 64 512000 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 64 2614 20480000 83 Linux /dev/sda3 2614 3889 10240000 83 Linux /dev/sda4 3889 13055 73624576 5 Extended /dev/sda5 3889 4411 4194304 82 Linux swap / Solaris /dev/sda6 4411 5716 10484362+ 83 Linux
(2)GPT分区
使用64位表示扇区数,最大支持容量18EB,GPT明显优点在于可以划分128个分区。
0扇区称为MBR保护扇区,防止MBR磁盘管理软件误认为未分区硬盘,以防止分区表及硬盘数据遭到破坏。在尾部备份了分区表信息,保证分区信息不易丢失。
GPT方式分区工具:gdisk
用法与fdisk类似,也是交互式工具,不再详述。
三、格式化
对硬盘进行分区后,接着对分区进行格式化。格式化操作是在分区上创建文件系统,所谓文件系统,即一种存储和组织计算机数据的方法,文件系统使用文件和树形目录的抽象逻辑概念来替代硬盘物理设备使用数据块的概念,负责文件的存储并对存入的文件进行保护和检索。
Linux常用文件系统:
ext2,ext3,ext4
xfs(SGI)
btrfs(Oracle)还未正式商用,处于测试阶段
swap(交换分区)
vfat 对应windows的fat32文件系统
其中支持日志功能的文件系统有:
ext4,xfs,btrfs
命令部分:
注意,执行格式化操作会擦除分区上原有的数据
创建文件系统工具:mkfs.fs_type
mkfs.ext4 /dev/sda1 #简单地在sda1分区上创建ext4文件系统
ext文件系统创建专用工具:
mke2fs [options] device
options选项
-t 指定文件系统类型
-L 设定一个卷标
-b {1024|2048|4096} 指定块大小
-N 指定明创建inode数量
-i 指定多少字节创建一个inode,一般要大于block大小
-m 指定预留空间的百分比,默认是5%,此部分空间供管理员在分区存满数据时维护使用
-O [^]FEATURES 以指定特性创建文件系统,特性前加^表示关闭该特性
默认参数配置文件:/etc/mke2fs.conf
mke2fs -t ext4 -L mydata -b 2048 -N 20000 -m 1 /dev/sda7 #创建了一个 ext4文件系统,指定卷标mydata,块大小2048,20000个inode,预留空间1%
扩展内容
1.卷标查看与设定工具:
e2label device [newlabel]
2.修改ext文件系统某些属性工具
tune2fs [options] device
[options]选项
-l 查看超级块内容
-L 修改卷标
-m 修改预留空间百分比
-O 文件系统属性启用或禁用,^表示禁用
-o 调整文件系统默认挂载选项,^表示禁用
-c 调整最大挂载次数。当挂载次数超过此数值时,进行文件系统检查
3.显示超级块信息和组信息工具
dumpe2fs [options] device
4.文件系统检测与修复工具
常常用于非正常关机或死机之后
文件系统状态标识为dirty时使用
fsck.fs_type #例如fsck.ext4 e2fsck #ext系列文件系统检测工具 -y 自动回答yes -f 强制检查,即使没有问题也进行检查
四、挂载
创建好一个文件系统之后,接着需要将该设备挂载到根下某一目录。即将一个文件系统关联到Linux上目录树结构上,该目录为此文件系统的入口。
命令部分:
mount [options] device dir
options介绍
–a 挂载所有有自动挂载选项的设备
-r 只读挂载
-n 禁止向/etc/mtab 同步mount操作
-L 指定卷标来挂载
-U 指定uuid的设备挂载
-o 挂载选项
挂载选项说明,有些选项在/etc/fstab 里指定才会生效
remount 重新挂载
loop 指定挂载回环类型设备
noatime 禁止atime更新
noexec 禁止程序执行
auto/noauto 是否可被-a选项自动挂载
user 可指定一个用户可挂载此设备
default 默认选项代表rw, suid, dev, exec, auto, nouser, async, and relatime
扩展内容
1.如果设备需要开机自动挂载,则需要写在/etc/fstab 文件中
文件格式:
-
要挂载的设备或伪文件系统
–建议使用uuid指定设备,设备名容易变更
-
挂载点
-
文件系统类型
-
选项
-
转储频率
–0:不转储 1:每天转储 2:隔天转储
-
自检次序
–0:不自检 1:首先自检,一般是根目录 2:次序自检
2.卸载设备
umount device|dir
如果卸载某设备,显示挂载点正忙无法卸载,则采取如下办法
1)查看挂载点被哪些程序占用,然后杀掉
lsof dir fuser -v dir
2)终止所有正在访问挂载点的所有进程
fuser -km dir
五、交换分区swap创建
当内存空间不足时,内核会将内存中一些缓存数据存放到swap分区上。交换分区最好划分在磁盘外道,达到最高存储性能。
1、交换分区必须指定分区类型为swap
即在分区时,使用t改变分区类型编号
2、对指定的分区或者一个文件设定为交换空间
mkswap /dev/sda7
3、启用交换分区
swapon -s #查看交换分区启用情况
swapon /dev/sda7 #启用交换分区或者 swapon -a 启用所有交换分区
至此添加成功。
扩展内容
关闭交换分区
swapoff /dev/sda7
交换分区可指定优先级,创建不指定优先级则依次减少1,最开始为-1
命令指定优先级 swapon -p {0-32767} device|file
交换分区在/etc/fstab 文件中格式,优先级指定pri=
六、各种查看命令补充
lsblk [dev] #查看分区情况
blkid [dev] #打印块设备属性,可查看分区类型
findmnt #查看所有已挂载设备
原创文章,作者:cutemsyu,如若转载,请注明出处:http://www.178linux.com/41405
评论列表(1条)
文章内容很完整,图文并貌,整篇博客能让人看到很多专业性所在,也能看出很用心的地方,革命尚未成功,同志仍需努力啊,加油!