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

相关推荐

  • 防火墙原理以及iptables重要实践

    防火墙 主机间通信大致过程: 请求报文由客户端IP+PORT和服务器端IP+PORT构成。当客户端网络地址和服务端地址在同一网段时,不需要经由路由转发,可以直接到目标服务器,再经由服务器端口请求道所需资源; 当服务器端和客户端不在同一网段时。目标IP和源IP是不会改变的,会经由互联网中的路由器,按照其的路由表,指向该路由器的下一跳主机,知道找到服务器端所在网…

    2017-06-18
  • echo显示闪烁,screen用法及显示时间的前后

    我们这门今天学习的一些主要内容 标准的命令的格式 命令(COMMAND)  [选项(OPTIONS)….[参数(ARGUMENTS…)] 选项:启用或者关闭命令的某个或某些功能 参数:命令作用的对象,比如文件名,用户名等 首先我们来统计一下学习到的linux的一些基础的命令 who  查询当前用户 hostname 显…

    Linux干货 2016-08-04
  • 马哥linux运维26期开班感悟

         今天的收获,有以下几点      1.自己的公众演说能力很弱,要多多练习,给自己更多的机会。     2.自己想提升自己的心很强,但是自己却不知道该怎么做?     3.即便学完了也只是一个开始,希望自己有一颗归零的心态。

    Linux干货 2017-07-10
  • Ip 地址 及 网络配置

    Ip 地址 及 网络配置 IP地址  它们可唯一标识 IP 网络中的每台设备  每台主机(计算机、网络设备、外围设备)必须具有唯 一的地址 IP地址由两部分组成:       网络ID:  标识网络  每个网段分配一个网络ID       主机 ID:  标识单个主…

    Linux干货 2016-09-05
  • 马哥教育网络班21期-第5周课程练习

    第5周课程练习 1、 显示/boot/grub/grub.conf中以至少一个空白字符开头的行; # grep "^[[:space:]]\+" /boot/grub/grub.conf 2、 显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行; # egrep "…

    Linux干货 2016-08-02
  • N25-第15周博客作业

    1、总结sed和awk的详细用法; sed [OPTION]…  ‘script’  [input-file] … script: 地址定界编辑命令 常用选项: -n:不输出模式空间中的内容至屏幕; -e script, –expression=script:多点编辑;…

    Linux干货 2017-05-21

评论列表(1条)

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

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