磁盘和文件管理(一)

管理磁盘及分区

在Linux服务器中,当现有硬盘的分区规划不能满足要求(例如:根分区的剩余空间过少,无法继续安装新的系统程序)时,就需要对硬盘中的分区进行重新规划和调整,有时还需添加新的硬盘设备来扩展存储空间。

实现上述操作需要用到fdisk磁盘分区管理工具,fdisk是大多数Linux系统中自带的基本工具之一。本章将通过为Linux主机新增一块硬盘并建立分区的过程,介绍fdisk工具的使用。

检测并确认新硬盘

Linux主机接好新的硬盘并启动主机后,Linux系统会自动检测并加载该硬盘,无需额外安装驱动。执行“fdisk  -l ” 命令可以查看、确认新增硬盘的设备名称和位置。

fdisk  -l 命令的作用是列出当前系统中所有硬盘设备及分区的信息。

wKioL1hqZKniohPtAAMkh2qrprk981.jpg

        上述输出信息包含了各硬盘的整体情况和分区情况,其中“/dev/sda”为原有的硬盘设备,“/dev/sdb2”为新增加的硬盘。Xi8nde硬盘设备未初始化,没有包含有效的分区信息。对于已有分区,将通过列表输出以下信息:

         Device:分区设备文件名称。

         Boot : 是否是引导分区,是,则有“ * ”标示

         Start : 该分区在硬盘中的起始位置(柱面数)

         End  : 该分区在硬盘中的结束位置(柱面数)

         Blocks: 分区的大小,以Blocks(块)为单位,默认的块大小1024字节。

         Id   :  分区对应的系统ID号,83标示linux中的EXT4分区,8e标示LVM逻辑卷。

         System: 分区类型

规划硬盘中的分区

在硬盘中创建、删除、更改分区等操作同样 通过fdisk命令进行,只要使用硬盘的设备文件作为参数。例如:执行“fdisk  /dev/sdb”命令后,即可进去交互式的分区管理界面中,如下图:

wKiom1hqZRDQbg4BAAJdEswn11U496.jpg

          进入Command ( m for help)  提示符后,输入特定的分区操作指令,可以完成各项分区管理任务。例如:输入”m”指令后,可以查件各种操作指令的帮助信息,如下图:

 

wKioL1hqZVazA9qoAAHt3w3vWjI912.jpg

分区过程中常用的一些交互操作指令

           “ p ”指令——列出硬盘中的分区情况 

wKioL1hqZYTSDWuSAAFjHEMYFmQ746.jpg

         “ n ”指令——新建分区

wKiom1hqZafT-bHyAALERuJY0qg175.jpg

接下来创建一个扩展分区和一个逻辑分区(主分区1~4 。5以后是逻辑分区)

wKiom1hqZh_BUbwbAAPq7LkE66g654.jpg

“ d ”指令——删除分区(若删除扩展分区的话,逻辑分区也将被删除)

wKioL1hqZkyzZH9FAAIQt3ELkVM394.jpg

“ t  ”指令——更改分区的类型(新建的分区文件系统类型为EXT4,若新建的分区需要使用Swap 交换分区或者其他类型的文件系统时,需要对分区类型进行更改,保持一致性,避免管理分区时产生混乱)。

           常用的EXT4、Swap文件系统的ID号码分别为83、82。Windows中的NTFS文件系统的ID号一般为86。

           下面将逻辑分区“/dev/sdb5”的类型更改为Swap。(首先再次创建一个逻辑分区,而后再次进行更改文件系统类型)

wKiom1hqZeLg16EVAAK3rZRHVS0574.jpg

        “ l ”指令——查看文件系统类型

wKiom1hqZvygIEQlAAWE5uRnY70099.jpg

          “ w ” 和 “ q ” 指令——退出fdisk分区工具

wKioL1hqZyCBwFa3AACd4Qo1oOg414.jpg


管理文件系统

创建文件系统

上述将分区建好后,还需要对分区进行格式化并挂在到系统中的指定目录,然后才能用于存储文件,目录等数据。下面将学习如何格式化并挂载分区。

mkfs命令的使用

  实际上mkfs命令是一个前端工具,可以自动加载不同的程序来创建各种类型分区,而后端的有多个与mkfs命令相关的工具程序,这些程序位于/sbin/目录中,如支持EXT4分区格式的mkfs、ext4程序等。


wKioL1hqZ0jz3zCrAAD-xFTA6wk766.jpg

       使用mkfs命令程序时,基本的命令格式如下

            mkfs     -t     文件系统类型      分区设备  


       创建EXT4文件系统

   例如将分区/dev/sdb1格式化为EXT4文件系统

wKiom1hqZ27wAnTUAAMQbI3HOEc206.jpg

        创建FAT32文件系统

       一般不建议Linux系统中创建或使用Windows中的文件系统类型,包括FAT16/FAT32等。

    例如将/dev/sdb5格式化为FAT32文件系统(先通过fdisk工具添加/dev/sdb5分区,并将ID号设为b)

wKioL1hqZ-iCDgzdAAC0Q1PP8uA230.jpg

wKiom1hqZ7ui_QnwAACDh8-e6mM018.jpg


mkswap命令的使用

         在Linux系统中,Swap分区的作用类似于Windows系统中的“虚拟内存”,可以再一定程度上缓解物理内存不足的情况。当主机运行的服务较多,需要更多的交换空间支撑应用时,可以为其增加新的交换分区。

  例如将/dev/sdb5创建为交换分区。(首先更改ID号,设置为82)

wKioL1hqa4bDkr1iAAEXKIrCgXk923.jpg


           查看减缓分区的总大小,并启动交换分区,


wKioL1hqaBiC-qPLAAGXxU4twww749.jpg


2.1  挂载、卸载文件系统


      在Linux系统中,对各种存储设备中的资源访问(如读取,保存文件等)都是通过目录结构进行的,虽然系统核心能够通过“设备文件”的方式操作各种设备,但是对于用户来说,还需要增加一个“挂载”的过程,才能像正常访问目录一样访问存储设备中的资源。

      当然,在安装Linux系统的过程中,自动建立或者识别的分区通常会由系统自动完成挂载,如“/”分区,“/boot”分区等。然而对于后来新增加的硬盘分区,光盘等设备,有时候还需要管理员动手进行挂载,实际上用户访问的是经过格式化后建立的文件系统,挂在一个分区时,必须为其指定一个目录作为挂靠点(或称为挂载点),用户将通过这个目录访问设备中的文件,目录数据。


  挂载文件系统

      mount 命令用途  mount挂载文件系统、ISO镜像到指定文件夹

命令格式: 

      mount  [ -t 类型 ]  存储设备名  挂载点目录

      mount  -o loop  ISO镜像文件  挂载点目录

     其中,文件系统类型通常可以省略(系统自动识别),存储设备名也可以是网络资源路径,例如将光盘挂载到/dev/cdrom /media目录

wKiom1huZ3CAY1TkAACGiDub4Zs466.jpg

例如将/dev/sdb1挂载到新建文件夹a目录上

wKioL1huZ5yjbwScAAB0ef1nA18727.jpg

使用mount 命令可查看当前挂载的设备

wKioL1huZ7eCgTtLAAHhMWbUJ0A737.jpg

  卸载文件系统

     umount  卸载已挂载的文件系统

    命令格式    umount  存储设备位置

                umount  挂载点目录

例如卸载挂载的光盘和文件系统

wKiom1huaGfxzxfHAAHhTS9c7QQ748.jpg

  设置文件系统的自动挂载

      系统中的/etc/fstab文件可以视为mount命令的配置文件,其中存储了文件系统的静态挂在数据。Linux系统每次开机时,会自动读取这个文件的内容,自动挂载所指定的文件系统。默认的fstab文件中包括了根分区,/boot分区,交换分区及proc、tmpfs等为文件系统的挂载配置。

wKioL1huaIiDYD__AAJgC2msLq0295.jpg

   第1字段:设备名或者设备卷标名

   第2字段:文件系统的挂载点目录的位置

   第3字段:文件系统的类型,如EXT4、Swap等。

   第4字段:挂载参数,即mount命令  -o 选项后可使用的参数。例如,defaults(默认参数)

 rw(可写)  ro(只读)  noexec(禁止执行程序)。

   第5字段:表示文件系统是否需要dump备份(dumo是一个备份工具)。一般设置为1时表示需要,设置0时江北dump所忽略。

   第6字段:该数字用于决定在系统启动时进行磁盘检查的顺序。0表示不进行检查,1表示优先检查,2表示其次检查。对于根分区应设为1,其他分区设为2。

   通过在”/etc/fstab”文件中添夹相应的挂载配置,可以实现开机后自动挂载指定的分区。

 例如将/dev/sdb1添加到自动挂载的文件中。

wKiom1huaM3BNaWTAAI7vnHmQCE220.jpg

 查看磁盘使用情况

      df命令使用文件或者设备作为命令参数。

      常用的选项为   –h      容量单位显示

                     –T      显示对应文件系统类型

例如:

wKiom1huaSPRVpBJAAEDafaN9eQ038.jpg


三、实验演示

     实验环境

       公司原来安装的RHEL 6.5 服务器采用了自动分区的方案,随着使用服务器的系统用户数量不断增多,根分区经常面临磁盘空间耗尽的情况,偶尔有几次还导致系统无法启动。为了解决这些问题要为服务器新加一块SCSI硬盘,冰晶用户目录“/home”,中的数据迁移到新硬盘中,要求钱以后不能影响原有用户账号的使用。

需求描述 

    在虚拟机中添加一块20GB的SCSI磁盘。

    在新硬盘中建立一个10GB的分区,用于存放所有普通用户的宿主文件夹。

    新建的分区仍挂载到”/home”目录下,需要导入系统中原有用户的数据。

    服务器在每次开机后能够自动挂载新分区

实验步骤

1   关机后添加新硬盘,重新开机进入系统。

wKioL1huaWiT8a96AAFojESpsSk671.jpg

2    分区并格式化

    使用fdisk命令对新硬盘进行分区,建立一个10GB的主分区(“/dev/sdb1”)。

wKiom1huaYPyLopnAANtYCzZFvk849.jpg

格式化新建分区为EXT4文件系统

wKiom1huacTwusqvAAMGyWcF_M0996.jpg

创建用户与密码,迁移“/home”分区

wKioL1huaeOAQw-XAART3WkqlQ4529.jpg

设置永久挂载

wKioL1huagOj2AJBAAJtaBbWwl8774.jpg

最后将账户信息迁移回去

wKiom1huajeRdluuAADn7jdWxZ8544.jpg


课后作业:

1、添加一块磁盘,创建两个主分区大小分别为2G和4G,文件系统类型为ext3;创建两个逻辑分区,大小分别为2G和5G,第一个逻辑分区的类型为swap。

2、格式化各分区并启用swap分区,验证效果

3、把第一个主分区挂载在“/本人名”目录下。把第二个逻辑分区挂载在“/班级名目录”下并设置自动挂载后重启系统。

4、在已挂载的“/本人名”目录下创建“本人名”文件,查看挂载情况和磁盘空间占用情况。

5、卸载已挂载的本人名目录。查看本人名文件是否存在。

 




如遇问题可留言,会进行解答