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

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

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

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

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

硬盘,分区,文件系统,块的关系.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)
zhongzhong
上一篇 2016-08-29
下一篇 2016-08-29

相关推荐

  • 马哥教育网络班20期+第3周课程练习

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 who |cut -d " " -f1 |sort -u 2、取出最后登录到当前系统的用户的相关信息。 [root@localhost ~]# who|tai…

    Linux干货 2016-06-29
  • cobbler实现centos7和centos6的无人值守安装

    环境:系统: CentOS 7.2  ip: 172.16.0.11 一. Cobbler安装准备 Cobbler是一个Linux服务器安装的服务,可以通过网络启动(PXE)的方式来快速安装、重装物理服务器和虚拟机,同时还可以管理DHCP,DNS等。 Cobbler可以使用命令行方式管理,也提供了基于Web的界面管理工具(cobbler-web),…

    Linux干货 2017-06-04
  • linux入门及基本命令

    Linux的入门及基本命令     一.   磁盘分区 1.       分区类型 主分区:1-4,一个硬盘最多四个,最少可以没有,前提有别的硬盘存在,启动系统或存数据,不要再分小区,只有个活动状态。 2.    &nb…

    Linux干货 2017-07-15
  • tcp通讯的服务器和客户端解析

    服务器端编程步骤, 1.创建Socket对象,下文中的socket都表示一个socket对象 2.绑定IP地址和端口,服务器的IP和端口 3.开始监听,将在指定的端口上监听,listen() 如果对方申请连接这个IP和端口,将被听到,这个过程 4.获取用于传输数据的Socket对象 socket.accept() ->(socket object,ad…

    Linux干货 2018-01-01
  • 文件权限

    首先简单介绍一下文件的属性: 使用ls -l 长列出-rw-r–r–. 1 root root 1302 Jul 25 10:23 group文件类型|owner权限group权限other权限|硬链接数|owner|group|文件大小(bytes)|mtime|文件名 文件类型:     &…

    2017-07-29
  • 马哥教育网络班22期+第九周课程练习

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

    Linux干货 2017-01-03

评论列表(1条)

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

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