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)
cutemsyucutemsyu
上一篇 2016-09-01
下一篇 2016-09-01

相关推荐

  • 8月5日作业

    课堂练习: 1、找出ifconfig命令结果中本机的所有IPv4地址 [root@localhost ~]# ifconfig | tr -s " " |head -2 | tail -1 |cut …

    Linux干货 2016-08-15
  • linux程序包管理

         首先linux软件程序包和windows中的程序包是不兼容的,所以要在linux上使用windows上的程序,需要使用虚拟化工具。 库级别的虚拟化:     linux : WinE     windows: Cywin 而程序开发语言有多…

    Linux干货 2016-08-24
  • corosync v2 + pacemaker + crmsh 实现mariadb高可用

    高可用mariadb拓扑图 一、设计前提     1、时间同步 # ntpdate 172.16.0.1 或者 # chronyc sources     2、所有的主机对应的IP地址解析可以正常工作, 主机名要与命令#uname -n 所得的结果一致   &…

    Linux干货 2016-08-28
  • N22-妙手-第九周课程练习

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现;: #!/bin/bash # declare -i numberOfLoginUser=0 declare -i numberOfUnloginUs…

    Linux干货 2016-10-19
  • GNU awk

    awk -> gawk – 模式扫描和输出语言文件, pattern scanning and processing language 基本用法: gawk [options] 'program' FILE … program: PATTERN{ACTION ATATEMENTS} ACTION ATATEM…

    Linux干货 2016-09-22
  • 第一周作业

    一、计算机的基本组成和功能   cpu包括运算器、控制器、寄存器、缓存       运算器:计算功能,对数据进行加工处理的的部件;       控制器:负责从存储器取出指令,控制cpu计算器之间的运行结果和状态;       寄存器:暂存指令和数据的地方,存储…

    Linux干货 2016-12-04

评论列表(1条)

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

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