磁盘运作方式及分区,挂载等操作

磁盘运作方式及分区,挂载等操作

磁盘是我们存储数据的空间,而为了方便我们对数据的管理,我们需要对磁盘进行分区。而在我们创建过分区之后 ,我们为了能

够访问磁盘 ,需要对磁盘进行挂载 。文件系统通过为每个文件在分区上分配文件块的方式把数据存储在硬盘上。所以,就是使用文件系统在

硬盘分区上对数据块的各种信息的操作。这样就需要我们了解磁盘的运作方式,学会磁盘的分区,挂载,格式化等。

硬盘,分区,文件系统,块的关系.png

1.什么是硬盘分区?

分区其实就是硬盘的段落,如果用户希望在计算机上安装多个的操作系统,那么将需要更多的分区。原因是不同的操作系统原则上采用

不同的文件系统。如果几个操作系统都支持相同的文件系统,通常为了避免在一个分区下有相同的目录,也将它们安装在不同的磁盘分区。

2.分区类型

硬盘的分区有三种情况:主分区,扩展分区,逻辑分区。扩展分区只是逻辑分区的容器,实际上只有主分区还有逻辑分区才能够进行数据的存储。

在一块硬盘上最多只能有4个主分区,另外可以建立一个扩展分区来代替一个主分区。也就是说扩展分区必须小于等于一个;主分区+扩展分区必须小于

等于四个;然后可以在扩展分区下建立多个的逻辑分区。

3.分区和格式化

不同的操作系统具有不同的硬盘分区工具,windows下非常有名的分区工具是fdisk,在linux系统下进行分区可以使用fdisk,或者使用相同功能的图形

界面程序。

每个主分区和逻辑分区都会被存储为一个识别文件系统的附加信息,草制品系统能通过这些信息非常容易地识别和确认应该使用那个分区,不能识别的

操作系统将会被忽略。通过分区当然不能产生任何的文件系统,在分区之后只是对硬盘上的磁盘空间进行了保留,还不能直接使用。在此之后分区必须

要进行格式化在windows下可以是通过资源管理器下的文件菜单或者format程序来执行,在linux下通常使用mkfs命令来完成,linux支持不同的文件系统。

格式化是指对磁盘或磁盘中的分区(partition)进行初始化的一种操作,这种操作通常会导致现有的磁盘或分区中所有的文件被清除。简单说,就是把

一张空白的盘划分成一个个小区域并编号,供计算机储存,读取数据。没有这个工作,计算机就不知在哪写,从哪读。格式化是在磁盘中建立磁道和扇区,

磁道和扇区建立好之后,电脑才可以使用磁盘来储存数据。

4.文件系统

文件系统定义了把文件存储与磁盘时所必须的数据结构以及磁盘数据的管理方式。我们知道,磁盘是由很多个扇区组成的,如果扇区之间不建立任何的联

系,写入其中的文件就无法访问,因为无法知道文件是从哪个扇区开始,文件占多少个扇区,文件是什么属性。为了访问磁盘中的数据,就必须在扇区之

间建立联系,也就是需要一种逻辑上的数据存储结构,建立这种逻辑结构就是文件系统要做的事情,在磁盘上建立文件系统的过程通常称为格式化。

一般来说,文件系统和操作系统是紧密联系在一起的,不同的操作系统也使用不同的文件系统,但是有为了兼容,不同操作系统也使用相同的文件系统。

# 进行任何磁盘分区或者大小的改动,都会丢失之前的数据,因此,在分区之前一定要对重要的数据进行备份。

使用fdisk进行磁盘的分区

linux系统使用fdisk命令能将磁盘划分为若干个分区,同时也能为每个分区指定分区的文件系统,比如ext3,ext4,FAT32 ,SWAP,FAT 16以及其他类UNIX

操作系统的文件系统等。使用fdisk命令进行磁盘的分区一种交互式的创建,我们可以根据系统的提示信息进行创建。

fdisk命令可以对磁盘进行分区:

命令语法:

fdisk [-b<分区大小>][-uv][磁盘设备名]

fdisk [-l][-b<分区大小>][-uv][磁盘设备名]

fdisk [-s <分区编号>]

命令中各选项的含义如下:

-b :制定每个分区的大小

-l :列出制定硬盘的分区表信息

-s :将制定的分区大小输出到便准输出上,单位为区块

-u :搭配“-l”参数列表,用分区数目取代柱面数目,表示每个分区的起始地址。

-v :显示版本信息。

在fdisk的交互式操作方式下有许多的子命令:

说几种其中比较常用的参数:p:显示硬盘分区信息;n :创建新的分区;e:创建扩展分区

p:创建主分区(使用n创建分区会显示是创建主分区还是扩展分区);t:更改分区文件系统;

d:删除硬盘分区;q:推出fdisk,不保存硬盘分区设置;w:保存硬盘分区设置并推出fdisk。

fdisk1.png

对磁盘进行分区之后,使用fdisk -l查看的话会显示出来,但是在mount 或者/proc/partition上面查看

是没有显示出来的。用过的磁盘如果再分区就需要重启系统才会显示出来。而服务器是不能来回重启的,

这时候,我们需要进行手动的更新加载,通知内核强制重读磁盘分区表,使用partx -a [device]  ;partprobe也可以强制内核读取磁盘分区表,但是在centos 6版本上会出现错误,这个bug是一直没有修复的,在7版本和5以下的版本是没有问题的。

2.使用mkfs创建文件系统

对一个新的硬盘进行分区以后,还要对这些分区进行格式化并创建文件系统。一个分区只有创建了

某种文件系统之后才能被使用。建立文件系统的过程就是用相应格式化工具格式化分区的过程。

如果需要使用某个文件系统存放数据,一般需要经过以下操作步骤:

1.)使用fdisk命令进行在硬盘上创建分区

2.)使用mkfs命令在分区上创建文件系统

3.)使用mount命令挂载文件系统,或是修改/etc/fstab文件使得开机自动挂载文件系统。

4.)使用unmount卸载文件系统。

  1. 使用mkfs命令创建文件系统

    命令语法:

    mkfs -t [文件系统类型(ext3,etx4,fat 32等)] [磁盘设备名]

   说明:mkfs命令本身并不执行建立文件系统的工作,而是调用相关的程序来执行。这里的文件系统

类型是需要指定具体的类型的。磁盘设备可以是一个硬盘的分区,软盘,和光驱。

    命令中选项的含义如下:

    -t:指定要建立哪一种文件系统。

1)查看当前磁盘上的分区情况,该磁盘的设备是/dev/sda

fdisk2.png

2)格式化/dev/sda3分区,创建ext4文件系统

使用mkfs -text 4 /dev/sda3  或者mkfs.ext4 /dev/sda3 或者mke2fs -t ext3 /dev/sda3  

这三种写法是等价的。

mkfs1.png

当然也可以把分区格式化为其他的文件系统,比如可以把/dev/sda2格式化为ext3,vfat等,使用mkfs. tab键进行补全可以查看当前支持的文件系统。

mke2fs: ext系列文件系统专用管理工具

-t {ext2|ext3|ext4}
-b {1024|2048|4096}
-L 'LABEL'

-j: 相当于 -t ext3
mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3 

-i #: 为数据空间中每多少个字节创建一个inode;此大
小不应该小于block的大小 

-N #:为数据空间创建个多少个inode
-I 一个inode记录大小128—4096 

-m #: 默认5%,为管理人员预留空间占总空间的百分比 

-O FEATURE[,…]:启用指定特性
-O ^FEATURE:关闭指定特性

说明:-o参数里的codepage选项指定文件系统的代码页,简体中文中文代码是:936;iocharset指定字符集,简体中文一般用cp936或gb2312.

blkid:块设备属性信息查看
blkid [OPTION]… [DEVICE] 

    -U UUID: 根据指定的UUID来查找对应的设备 

    -L LABEL:根据指定的LABEL来查找对应的设备
 

    e2label:管理ext系列文件系统的LABEL
# e2label DEVICE [LABEL]
 

    findfs :查找分区
findfs [options] LABEL=

tune2fs:重新设定ext系列文件系统可调整参数的值 

    -l:查看指定文件系统超级块信息;

    super block
-L 'LABEL':修改卷标
-m #:修预留给管理员的空间百分比 

    -j: 将ext2升级为ext3 

    -O: 文件系统属性启用或禁用, –O ^has_journal 

    -o: 调整文件系统的默认挂载选项,–o ^acl 

    -U UUID: 修改UUID号
 dumpe2fs: 

    -h:查看超级块信息(分组信息),分区用分组管理

3.在我们创建完成文件系统之后,我们需要对文件系统进行挂载,这样用户可以使用相应的设备存储数据。

mount 挂载 ,unmount 卸载

命令语法:

mount [选项][设备名称][挂载点]

命令中各个选项的含义:

-t :制定设备的文件系统类型

auto:自动检测文件系统

-o:自动挂载文件系统的选项,有些可在/etc/fstab中,常用的有6种:

    codepage:代码页

    iocharset:字符集

    ro:以只读方式进行挂载

    rw:以读写方式进行挂载

    nouser:使一般用户无法挂载,只有root才能使用

    user:可以让普通的用户进行挂载 #是一个比较危险的操作

挂载方法:

mount DEVICE MOUNT_POINT
 

mount:通过查看/etc/mtab文件显示当前已挂载的所有设备
 

mount [-fnrsvw] [-t vfstype] [-o options] device dir 

device:指明要挂载的设备; 

    (1) 设备文件:例如/dev/sda5 

    (2) 卷标:-L 'LABEL', 例如 -L 'MYDATA' 

    (3) UUID, -U 'UUID':例如 -U '0c50523c-43f1-
45e7-85c0-a126711d406e' 

    (4) 伪文件系统名称:proc, sysfs, devtmpfs, configfs
dir:挂载点
事先存在;建议使用空目录
进程正在使用中的设备无法被卸载

1)挂载

将光盘放入光驱,挂载光盘到/testdir/cdrom

先在/testdir/目录下创建好一个目录cdrom

使用mount -t ext4 /dev/sda3 /testdir/cdrom 目录下,这样挂载之后,挂载命令会将这些存储介质指定成系统中的某个目录下,以后访问相应目录即可读写存储介质上的数据.

mount1.png

4.卸载

查看挂载情况:
#findmnt MOUNT_POINT
 

查看正在访问指定文件系统的进程: 

#lsof MOUNT_POINT 

#fuser -v MOUNT_POINT
 

终止所有在正访问指定的文件系统的进程: 

# fuser -km MOUNT_POINT
 

卸载:
# umount DEVICE 

# umount MOUNT_POINT

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

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

相关推荐

  • N28-第二周作业

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 命令:cp、mv、rm 1.1 cp命令 用法: cp [OPTIONS]…[-T] SOURCE DEST cp SRC DEST而言,SRC是文件时 如果目标不存在: 新建DEST,并将SRC中内容填充至DEST中 如果目标存在: 如果DEST是文件:将SRC中的内容覆盖至DE…

    Linux干货 2017-12-15
  • linux中数组的定义与使用

            我们常说,程序=指令+数据,往细一点的方向说,指令具体指的有哪些?数据又有哪些? 总结一下: 指令大概包括,编程语言中的语法关键字(如bash编程中的关键字有for,while,case,if,until,continue,break),还包括系统中的命令,和一些自己编写的函数,这些…

    2017-05-23
  • Linux基础

    一、计算机组成及其功能 ENIARC: CPU:运算器、控制器、寄存器、缓存 存储器:内存,RAM(Random Access Memory)         Input:下指令,提供数据等; Output:输出数据加工的结果;  程序:指令+数据 算法+数据结构&nb…

    Linux干货 2016-10-30
  • shell脚本的各种循环

    For循环 For循环格式      For   变量名  in    列表    ;   do         &nb…

    Linux干货 2016-08-21
  • 强大的查找工具之find命令

    一、Linux中的文件查找工具     在文件系统上常常需要根据文件的各种属性去查找符合条件的文件,此前讲到的grep、egrep属于文本过滤、文本搜索工具;而文本查找工具有两个,local和find 二、Linux中的查找工具简介 locate 命令 find 命令 简介:locate属于非实时查找,依赖于事先构建的索引;索引的创建是在…

    Linux干货 2016-08-16
  • linux基础学习-第九天(shell基础)

    2016-08-10 授课内容: shell脚本基础: 变量 运算 bash测试(数字测试、字符测试、文件测试、组合测试) read命令 变量作用: 1、数据存储格式 2、参与的运算 3、表示的数据范围 变量类型: 1、本地变量 2、环境(全局)变量 3、特殊变量     驼峰命名变量:每个单词一个字母大写 本地变量:…

    Linux干货 2016-08-11

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-29 15:25

    文章写的很详细,对一些专有名词,通过自己查询资料进行了详细介绍,这是值得提倡的。但是对磁盘分区工具使用部分缺少了一些具体操作,希望作者课后能多加练习,做到理论和实践相结合。