Linux磁盘管理

面对一块硬盘,我们该如何使用它呢?本文从机械硬盘结构,分区,格式化,和挂载四个层次进行介绍。

一、机械硬盘结构

现在服务器使用机械式硬盘是主流,因为其造价低,容量大,和固态硬盘相比读写性能要差很多。机械硬盘主要由以下几个部件构成:转轴Spindle,盘片Platter,机械臂Boom,磁头Head。工作机制是马达带动盘片高速旋转,磁头对盘片进行擦写数据或读取其上存储的数据。

e5675f11jw1esonqhcw53j20ei084t9q.jpg

基于这种工作机制有如下几个存储术语

1.磁道Track:盘片上狭窄的同心圆环,最外侧为0磁道

2.扇区Sector:磁道上一小块弧段称为扇区,硬盘存储单位,大小为512字节

        对每个扇区进行编号,称为逻辑块地址LBA

3.柱面Clinder:编号相同的磁道构成柱面

二、分区

了解硬盘结构后,接着讲一下分区。一块新硬盘使用,首先要进行分区操作,分区起到隔离的效果,方便管理。分区有两种方式:

  1. MBR(Master Boot Record),传统分区方式

  2. GPT(GUID Partition Table),较新分区方式

(1)MBR分区

使用32位表示扇区数,最大支持2T空间。在0磁道0扇区记录启动代码(前446字节)和分区表信息,如下图所示

225748114.jpg

由分区表可以看出MBR分区方式只能划分四个主分区,如果要划分四个以上分区,需要划分一个扩展分区,在扩展分区下继续划分逻辑分区。

分区工具fdisk

fdisk是一款交互式工具,可以用来创建和管理磁盘分区。

fdisk [-uc] device 进入分区工具界面

输入m查看帮助,常用指令有

n:新建分区

t:改变分区类型编号

d:删除分区

p:查看分区列表

q:不保存退出

w:保存并退出

    注意:操作完成之后,要使用w退出,才会生效

blob.png

如果退出报同步错误,则需要手动同步分区信息

增加分区同步

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磁盘管理软件误认为未分区硬盘,以防止分区表及硬盘数据遭到破坏。在尾部备份了分区表信息,保证分区信息不易丢失。

112519312.jpg

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%

blob.png


扩展内容

1.卷标查看与设定工具:

e2label device [newlabel]

2.修改ext文件系统某些属性工具

tune2fs  [options] device

[options]选项

-l    查看超级块内容

-L    修改卷标

-m    修改预留空间百分比

-O    文件系统属性启用或禁用,^表示禁用

-o    调整文件系统默认挂载选项,^表示禁用

-c    调整最大挂载次数。当挂载次数超过此数值时,进行文件系统检查

3.显示超级块信息和组信息工具

dumpe2fs  [options] device

4.文件系统检测与修复工具

常常用于非正常关机或死机之后

文件系统状态标识为dirty时使用

blob.png

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 文件中

文件格式:

  1. 要挂载的设备或伪文件系统

      –建议使用uuid指定设备,设备名容易变更

  2. 挂载点

  3. 文件系统类型

  4. 选项

  5. 转储频率

      –0:不转储 1:每天转储 2:隔天转储

  6. 自检次序

      –0:不自检 1:首先自检,一般是根目录 2:次序自检

blob.png

2.卸载设备

umount device|dir

如果卸载某设备,显示挂载点正忙无法卸载,则采取如下办法

1)查看挂载点被哪些程序占用,然后杀掉

lsof  dir
fuser -v dir

2)终止所有正在访问挂载点的所有进程


fuser -km dir

五、交换分区swap创建

当内存空间不足时,内核会将内存中一些缓存数据存放到swap分区上。交换分区最好划分在磁盘外道,达到最高存储性能。

1、交换分区必须指定分区类型为swap

blob.png

blob.png

即在分区时,使用t改变分区类型编号

2、对指定的分区或者一个文件设定为交换空间

mkswap /dev/sda7

blob.png

3、启用交换分区

swapon -s         #查看交换分区启用情况

blob.png

swapon  /dev/sda7   #启用交换分区或者 swapon -a 启用所有交换分区

blob.png

至此添加成功。

扩展内容

关闭交换分区

swapoff /dev/sda7

交换分区可指定优先级,创建不指定优先级则依次减少1,最开始为-1

命令指定优先级 swapon -p {0-32767} device|file

交换分区在/etc/fstab 文件中格式,优先级指定pri=

blob.png

六、各种查看命令补充

lsblk [dev] #查看分区情况

blob.png

blkid  [dev]  #打印块设备属性,可查看分区类型

blob.png

findmnt    #查看所有已挂载设备

blob.png

原创文章,作者:cutemsyu,如若转载,请注明出处:http://www.178linux.com/41405

(1)
上一篇 2016-09-01 08:49
下一篇 2016-09-01 08:49

相关推荐

  • 使用keepalive实现nginx反向代理高可用

    简介: 在网站架构中,为了分散客户端对服务器的访问压力,可以使用nginx作为反向代理。但是使用一个nginx作为代理服务器必定会面对单点故障的情况,所以一般使用多台nginx反代服务器,而使用多台nginx服务器还要面对如何协调调度的问题。在此,我给大家介绍使用keepalive协调调度nginx反代服务器的方法。   keepalive简介 说…

    2017-05-15
  • shell脚本编程的执行语句

    顺序执行     从上到下逐条执行命令,执行完所有命令及退出。 选择执行     (1)&&,||     &&:代表and,&&左侧为真右侧则执行     ||:代表or…

    Linux干货 2016-08-24
  • 马哥教育网络班21期+第11周课程练习

    1、详细描述一次加密通讯的过程,结合图示最佳。 单向加密:只能加密,不能解密,提取数据指纹(特征码),来保证数据的完整性,如上图的第二步,单向加密的协议有MD5,SHA等 非对称加密:公钥和私钥成对出现,私钥必须本机器保存,用公钥加密的数据,只能使用与之配对儿的私钥解密;反之亦然,数字签名是私钥加密特征码,如上图的第三步;实现对称秘钥交换,如上图第五步 对称…

    Linux干货 2016-08-15
  • bash脚本编程之select语句、函数

    概述     承接上篇,继续介绍一下另一个循环语句select,还有脚本中函数的相关内容,分为三个部分:         1、select语句的介绍和效果演示       &nbs…

    Linux干货 2016-08-21
  • 脚本之循环的特殊用法及函数的使用

    一、本文主要时针对while for select循环结果的特殊用法进行讲解。     1、while循环的特殊用法                 while read…

    Linux干货 2016-08-21
  • linux用户权限管理

    用户: 管理员–root= 0 普通用户–(1-65535) 系统用户–(1-499),(1-999) 登录用户–(500+),(1000+) 用户和组的配置文件位置: /etc/passwd– 存储系统用户所有信息 /etc/group– 存储用户组的所有信息 /etc/shadow&…

    2017-04-02

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-02 10:07

    文章内容很完整,图文并貌,整篇博客能让人看到很多专业性所在,也能看出很用心的地方,革命尚未成功,同志仍需努力啊,加油!