【精选】linux中的如何进行磁盘分区 | 您所在的位置:网站首页 › linux如何分区硬盘 › 【精选】linux中的如何进行磁盘分区 |
本文主要内容
前言一、linux中的各硬件设备的文件名0.预备知识1. 磁盘分区2. linux支持的文件系统
1.磁盘分区1.对硬盘进行分区1. 分区1. 使用fdisk进行分区2. 使用parted命令进行分区
2. 进行初始化
2.设备挂载1 . 挂载和卸载2. 只读挂载与读写挂载3. 设备忙时卸载设备4. 设备永久挂载
3. 删除设备
2. Swap分区1. 新建swap分区2. swap分区的优先级与自动挂载
3. 磁盘配额1. 新建分区并进行初始化2. 对照组:在不进行磁盘配额的情况下3. 磁盘配额4. 永久设定磁盘配额5. 关闭磁盘配额
测试习题
前言
在深入这部分知识之前,我们需要知道linux对于计算机各组件和设备的识别与windows系统完全不同,在linux系统中任何物理存储设备接入系统后都是以文件的形式存在的,在本文中首先会对各硬件设备在linux中的文件名加以介绍,随后将介绍在linux中如何进行设备挂载以及磁盘分区的相关内容。 一、linux中的各硬件设备的文件名 物理设备名称设备识别文件名称SATA / SAS / USB (串口硬盘)dev/sd[a-p] ([a-p]表示为括号内a-p字母中任意一个)IDE(并口i硬盘)/dev/hd[a-d]Virtio接口/dev/vd[a-p]M2/SSD/dev/nvme0,/dev/nvme1SD/MMC/EMMC/dev/mmcblk0 , /dev/mmcblk1CD-ROM DVD-ROM/dev/scd[0-1] (通用) /dev/sr[0-1] (通用, CentOS较为常见) /dev/cdrom (当前CD-ROM)设备接入后,我们可以使用以下命令来对设备进行查看: fdisk -l ##查看磁盘分区情况 lsblk ##查看设备使用情况 blkid ##查看设备管理方式及设备id df ##查看正在被系统挂载的设备 cat /proc/partitions ##查看系统中可被识别的设备 0.预备知识 1. 磁盘分区磁盘分区主要有MBR和GPT两种格式,这两种格式所使用的分区工具有所区别。 格式介绍所使用的分区命令分区表大小支持分区个数支持单个分区大小位数MBRMBR又被称为主引导记录,是一段引导代码,主要负责定位分区引导信息等工作,它存在于一个特殊扇区中。fdisk+设备名称64B主分区4个,所有分区不超过16个2T32GPTGPT 也称为 GUID(全局唯一标识符)分区表,是一种新型的磁盘模式,正在逐步取代MBR的地位。它会生成一个唯一的识别码来进行引导创建,而且会自动检测并修复数据。gdisk+设备名称128B理论上无限制,Windows中一般为128个8Z64注:可以使用diskpart来查询分区格式 MBR:分区格式如下 GPP的磁盘结构对于分区数量没有限制。 2. linux支持的文件系统a. 文件系统介绍 因为每种操作系统所需要的文件属性/权限并不相同,为了存放这些文件所需要的数据,故而磁盘在进行分区完毕后需要进行格式化,之后操作系统才能够使用这个文件系统。 传统的磁盘与文件系统应用中,一个分区就只能被格式化为一个文件系统,所以我们可以说一个文件系统就是一个磁盘分区,但是由于新技术的使用,如lvm等,可以将一个分区格式化为多个文件系统,也能将多个分区和成为一个文件系统,所以我们在格式化时已经不再针对磁盘分区来格式化,通常我们称一个可挂载的数据为一个文件系统而不是一个分区。 我们知道一个文件除了其中的内容外还有其自身的属性,文件系统通常会将这两部分数据存放在不同块区,如下表所示: 区块类型存放数据超级区块记录此文件系统的整体信息,包括inode与数据区块的总量,使用量,剩余量以及文件系统的格式及相关信息inode记录文件的属性,一个文件占用一个inode,同时记录此文件的数据所在的区块号码数据区块实际记录的文件内容,若文件过大,会占用多个分区这种数据存取的方式称作索引式文件系统,一个文件对应一个inode,在inode中我们就可以直接找到该文件中的数据存放对应的数据区块,这样的方式使得数据的读取很有效率。而FAT格式(U盘一般使用这种读取方式)并不存在inode,所以FAT无法直接读取到该文件的数据存放区,它的每个区块号码都记录在前一个区块中,必须要顺序将文件数据所有区块内容全部读出,才能知道下一个区块身处何处,如果同一个文件中的数据过于分散,我们的磁头无法在磁盘转一圈时读出所有数据,此时磁盘将会多转好几圈才能完整的读取到这个文件的内容。 b. 文件系统分类 常见的文件系统可以分为传统文件系统(ext2,minix,FAT),日志式文件系统(ext3,ext4,xfs),网络文件系统(NFS)。 文件系统FAT16FAT32NTFSEXT3EXT4XFS最大卷2G4G256T32T1E16E最大单个文件4G8T16T2T16T8E最大文件个数655364177920429496729532000个子目录无限子目录i无限子目录代表系统DOS/WIN95WIN98WIN2000以后RHEL5RHEL6RHEL7在本文中我们主要介绍linux中的标准文件系统ext2,以及现在常用的文件系统xfs。 linux标准的文件系统是ext2,ext2 在格式化时基本是区分为多个区块群组,每个区块群组都有独立的inode,数据区块,超级区块系统,在整体的规划中,文件系统最前面有一个启动扇区,这个启动扇区可以安装启动引导程序,这样我们就可以将不同启动引导程序安装到别的文件系统最前端,而不需要覆盖整块磁盘唯一的MBR。 限制: 1.文件系统所支持的区块大小有1K,2K,4K,不同的区块大小会影响文件系统所能支持的最大磁盘容量和最大单一文件容量。 2.原则上,区块大小和数量在格式化后将无法进行修改。 3.每个区块最多只能存放一个文件的数据,文件过大则需要多个区块可能会造成文件系统读写性能不佳,文件较小则会浪费磁盘空间。 由于现在虚拟化应用越来越广泛,巨型文件也越来越常见,ext系列在对文件格式化时需要预先规划出所有的inode,区块等,这使得巨型文件在格式化时仅系统预先分配就会消耗很多时间,从CentOS 7.x开始文件系统已经由默认的ext转化为xfs,xfs不仅性能较好,它的恢复速度,创建速度都相对于ext更好。 xfs是一个日志文件系统,被用于高容量磁盘以及高性能文件系统,很适合现在的系统环境,ext文件系统的所有功能xfs都具备。xfs将数据主要规划为3个部分,如下表: 区域类型存放的数据类型数据区inode+数据区块+超级区块,分为多个存储区群组,每个存储群组都包含整个文件系统的超级区块,剩余空间的管理机制,inode的分配与追踪。注意inode是用时才分配,且xfs区块与inode有多种容量可供设置,但在linux环境下由于存储控制的关系(pagesize)是的可用区块最大为4K。文件系统活动登录区用于记录文件系统的变化,类似日志区 ,系统的所有操作都会在这个区块作记录,因此这个区块的磁盘活动相当频繁,xfs允许将外部磁盘作为xfs日志块区,例如可以将ssd磁盘作为xfs登录区,这样将会使得系统在进行活动时更加快速实时运行区文件在被建立时,xfs会在这个区段找到数个extent区块,将文件放置在这个区块内,分配结束后再放置在数据区中,extent的大小要在格式化之前先进行指定。 1.磁盘分区 1.对硬盘进行分区 1. 分区在虚拟机中增加一个10G大小的硬盘:在真实机中使用virt-manager进入虚拟机管理界面,将进行中的虚拟机挂起,剩余操作如下: 利用fdisk -l来查询该主机中可以进行使用的硬盘分区情况,此时该主机中的vdb大小为10G且未被分区。 使用fdisk对/dev/vdb进行分区,进入fdisk分区操作界面,其中不同参数对应不同操作如下: 参数操作m获取帮助d删除l列出所有分区n新建分区p显示该磁盘上所有分区t更改分区类型w保存更改q退出g设定分区方式为GPTo设定分区方式为MBR使用fdisk -l 进如分区界面,点击增加新分区,此时默认增添的是主分区,手动输入分区大小为100M,具体操作步骤如下:![]() ![]() ![]() ![]() ![]() 使用parted -l来查看分区信息,可以看到此时/dev/vdb上没有进行分区,并且未知分区格式。
对新建的分区进行初始化,若没有对新建分区进行文件系统初始化,该分区将无法正常使用。 *1. 如何查询磁盘分区的初始化情况、及该分区的文件系统类型。 如下图所示,此时该4个分区未进行初始化 此时查询磁盘信息如下所示: 分区在进行初始化之后就可以挂载进行使用了,在挂载之前,我们首先需要确定挂载点,挂载点其实就是一个目录,这个目录就是进入这个磁盘分区的入口,但是在挂载之前我们需要确定: 单一文件系统不应该重复挂载在不同挂载点上单一挂载点不应该重复挂载多个文件系统要作为挂载点的目录,理论上应该是个空目录,如果将一个文件系统挂载在一个非空目录下,那么在挂载之后,该目录下的东西会暂时消失,需要注意,并不是覆盖,只是暂时的隐藏起来 1 . 挂载和卸载
在我们需要卸载设备时,往往会出现设备在忙的提示而无法卸载设备,在这种情况下我们该如何处理呢? 以上所列举的挂载方式都属于临时挂载,在主机重新开机后,将无法自动进行挂载。永久挂载就是指在主机重新开机后设备可以自动进行挂载,这一需求的实现是需要编写设备挂载策略文件/etc/fstab,在其中添加对应的挂载语句: 在/etc/fstab文件中按以下格式写入: 设备名称 挂载点 文件系统类型 挂载参数 是否备份 是否检测具体操作如下: 需要删除该设备的所有信息时,可以使用以下命令删除该设备上的所有信息。 dd if=/dev/zero of=设备名 bs=1M count=1 2. Swap分区swap分区又称为内存交换分区,早期我们的设备中内存往往是比较小的,所以就出现了内存交换区,顾名思义,就是可以将内存中的数据拿到硬盘中暂时存放,虽然目前主机的内存都很大,似乎不需要内存交换区的存在了,但是对服务器而言,为了防止突然有大量的网络请求,还是需要保存一部分内存交换区来缓冲系统中的内存使用量。 swap分区大小建议: 内存大小swap分区大小当允许HIBERNATE2G以下内存2倍内存3倍2~8G等于物理内存物理内存2倍8~64G4G物理内存1.5倍64G以上4GHIBERNATE不开swap分区的管理命令 swapon -s ##查看swap分区信息 mkswap 设备 ##格式化设备文件系统为swap格式 swapon 设备 -p 0-32767 ##在系统缓冲区中添加指定设备,-p指定swap设备的优先级 swapoff 设备 ##在系统缓冲区中删除指定设备 1. 新建swap分区首先使用fdisk分区命令新建一个普通的分区,具体步骤如上,新建分区成功后不要退出fdisk命令的管理界面,点击[t]对指定分区进行分类如下所示: 创建swap分区成功后,我们可以打开swap分区,但会发现此时我们创建好的分区会按照系统默认的方式给予权限,如下: linux是多人多任务的环境,所以会有许多人同时使用一个硬盘空间的情况,磁盘配额(quota)可以限制指定用户能够使用的磁盘空间即能写入指定设备的最大额度,这样可以避免因为某个用户的过度使用磁盘空间造成其他用户无法正常工作甚至影像系统运行。 1. 新建分区并进行初始化
首先需要建立一个公共目录,将该分区挂载到该目录下,此时切换至任意某个用户,其可以占满该分区的全部空间,这显然是不合理的。具体操作如下:
想要对该分区进行配额,首先要激活该设备的配额参数,可以使用mount来进行查看,具体如下: 此时需要编写设备挂载策略文件/etc/fstab,添加配额参数usrquato,此文件编写后不即生效,需要mount -a重新读取该挂载策略文件,需要注意该文件若发生错误将会无法启动主机。 需注意,写设备挂载配置文件时,一定要先卸载设备,其中mdquota -u 用户名中的内容同第3小节磁盘配额中的部分相同,永久设定的重点就是永久开启配额开关。 利用以下命令来关闭磁盘配额: quotaoff -uv 设备名 #关闭磁盘配额 #u:显示激活过程 #v:显示过程 测试习题1、在虚拟机中添加一块新的硬盘,大小为10G 2、在新硬盘中建立分区并挂在到/westosdir目录中,分区大小为500M 3、设定/westosdir目录中所有用户可以自由新建文件但不能删除不属于自己的文件 4、设定westos用户和lee用户能写入/westosdir目录中的最大数据不能超过10M 5、在系统中添加swap分区,大小为1G,优先级为1 6、以上要求在重启主机后仍然生效 步骤如下: 增加一块新硬盘 在真实机中使用virt-manager进入虚拟机管理界面,将进行中的虚拟机挂起,剩余操作如下:新建大小为500M的分区,如下: 在挂载配置文件/etc/fstab中开启磁盘配额开关
新建一个westosdir目录,并将/dev/vdb1挂载在该目录下: 建立1G大小的swap分区 |
CopyRight 2018-2019 实验室设备网 版权所有 |