Linux系统硬盘分区

一、硬盘和分区

1.1 硬盘的概念

硬盘是计算机的存储设备。存储数据主要使用机械硬盘。

机械硬盘由一个或者多个磁性的盘组成,可以在盘片上进行数据的读写。

硬盘的连接方式:内部设备与外部连接(移动硬盘、U盘等)。

硬盘的作用:存储操作系统、应用系统、文档、多媒体文件。

硬盘的工作方式:读取数据之后,先把数据传输到内存当中进行处理,

磁盘的类型:

  1. 软盘,已经没有了
  2. cdrom ,光驱,也基本淘汰了
  3. 机械硬盘

硬盘的最小存储单位:扇区,扇区的最小存储单位是512字节,连续的扇区组成磁道,读写都是围绕磁道进行的。

1.2 硬盘分区的类别

硬盘的分区类别有主分区,扩展分区,逻辑分区。

主分区和扩展分区一共只有4个。主分区一般用来存储操作系统。

扩展分区只能有一个,在扩展分区内才能创建逻辑分区,逻辑分区数量不受限制(实际有上限,但数字很大)。

扩展分区用来保存逻辑分区的数据信息。

逻辑分区不能存储操作系统,只能保存数据。

1.3 硬盘分区的方式

常用的硬盘分区方式有MBR分区和GPT分区。

1.3.1 MBR分区

MBR分区表:只能分不超过2T的磁盘,超过2T不能使用MBR分区。

MBR主引导记录一共446字节,一般在操作系统安装时写入主引导记录。MBR就是一个引导程序,检测磁盘分区是否合法(正常工作),并加载操作系统。MBR作用:识别可用分区,在系统开机时,识别操作系统。

1.3.2 GPT分区

GPT分区表:比MBR更加先进,GPT有128位的位置分区标识符来标识分区,可分128个区。不必再细分主分区、扩展分区、逻辑分区,所有分区都是主分区。

对2T以上的硬盘做分区时,只能使用GPT分区表。使用GPT分区需要64位系统。

1.4 硬盘分区的意义

1.4.1 分区的作用
  1. 优化I/O的性能,读写性能,查看读写性能:iostat
  2. 实现磁盘空间的配额,可以规定指定的用户使用磁盘空间的大小。
  3. 方便定位问题,可以提高修复速度。
  4. 隔离操作系统目录和一般程序目录。
  5. 可以采用不同的系统。操作系统的分区一般都使用统一的文件系统。
1.4.2 分区的缺点
  1. 一旦分区建立,保存之后,如果要修改,只能全部重来,硬盘格式化,数据丢失。
  2. 不够灵活,所有的空间都来自一块硬盘。
  3. 不具备冗余/高可用,没有备份能力,只能是工程师手动备份。

问:为什么硬盘要分区?

答:不分区就不能使用,只有分区才会创建分区表,不论是MBR还是GPT。有了分区表,系统才能识别到硬盘。

二、如何建立分区

2.1 分区命令

2.1.1 fdisk命令

fdisk命令用于建立MBR分区,只能对不超过2T的硬盘进行分区。

fdisk -l :显示硬盘的详细信息

lsblk :查看硬盘情况,找到没被分区的设备/dev/sdb,sd是设备类型,SCSI类型;b: 硬盘的序号,第二块

使用fdisk /dev/sdb 进入交互界面

常用交互选项

  • m:帮助菜单
  • n:新建分区
  • p:查看分区情况
  • d:删除分区
  • t:更改分区类型
  • w:保存分区操作并退出
  • q:不保存并退出

p 查看分区情况的解释:

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    10487807     5242880   83  Linux
/dev/sdb2        20973568    41943039    10484736    5  Extended
/dev/sdb5        20975616    31461375     5242880   83  Linux
/dev/sdb6        31463424    41943039     5239808   82  Linux swap / Solaris
  • Device boot:分区名称,带 * 的是系统盘。

  • Start:起始扇区

  • End:结束扇区

  • Blocks:分区大小,块,单位字节。

  • Id:分区的类型,默认是83,82是swap交换分区,8e是lvm逻辑卷。

  • System:系统类型:XFS,EXT4…

2.1.2 gdisk命令

gdisk命令对超过2T的硬盘使用,建立GPT分区。

gdisk的交互选项和fdisk几乎一样,交互步骤也基本一致。

特别的,gdisk需要声明分区类型的ID,键入L可以查看分区类型表。

2.2 建立分区

新建分区前,需要将硬盘添加到系统,先将下条命令添加到/etc/profile

alias scan='echo "- - -" > /sys/class/scsi_host/host0/scan;echo "- - -" > 
/sys/class/scsi_host/host1/scan;echo "- - -" > /sys/class/scsi_host/host2/scan'
//通知系统内核重新扫描已经连接到系统的scsi设备,这些设备可能是光驱,也可能是硬盘,
//系统会自动检测这些设备,然后系统会自动识别,自动添加,无需重启设备。

这样新添加硬盘后,scan一下,就能获得硬盘信息了。

2.2.1 建立MBR分区

添加一个20G的硬盘到系统,lsblk查看,新硬盘自动命名为sdb

建立主分区

在/dev/sdb下建立一个10Gb的主分区

fdisk /dev/sdb 进入交互界面

请添加图片描述

建立扩展分区

将sdb剩余空间分配给扩展分区

在这里插入图片描述

建立逻辑分区

在sdb的扩展分区里建一个5G的逻辑分区

在这里插入图片描述

此时用lsblk查看硬盘信息:

在这里插入图片描述

问:明明给扩展分区分了10G,为什么显示只有1K?

答:因为扩展分区只保存逻辑分区的数据信息,实际占用的空间很小。但逻辑分区是建立在扩展分区基础之上的,扩展分区的大小决定了逻辑分区的总大小。

建立swap分区

swap分区,即交换分区不是虚拟的空间,是由真正的硬盘给出的空间,是实体的分区。

内存 和 交换分区 比例一般是1:1.5 ~ 1:2,即交换分区一般是内存的1.5~2倍之间

将sdb2的剩余空间建立为swap分区。

默认建立分区类型为83swap分区类型为82,需要改分区类型

在这里插入图片描述

对硬盘的分区进行修改后,内核的缓存表还没有更新。此时需要用partprobe强制刷新。

partprobe命令 :重新读取分区表,更新内核的分区信息

然后对swap分区进行如下设置:

partprobe			//刷新缓存
mkswap /dev/sdb6	//把sdb6设置为swap分区
swapon /dev/sdb6	//启用该swap分区
swapoff /dev/sdb6	//停用该swap分区

swapon /dev/sdb6启用swap之后,使用free -h 查看swap变化

在这里插入图片描述

2.2.2 建立GPT分区

添加一个4T的新硬盘到系统,自动命名为sdc

在/dev/sdc中新建一个500G的分区。gdisk /dev/sdc进入交互界面

在这里插入图片描述

建立GPT分区需要格式化分区。

如果用GPT分区建立swap分区,只要在声明类型的时候输入swap的code:8200即可。

2.2.3 小结
  • 主分区和扩展分区加起来一共只有4个,MBR分区,只有4个。逻辑分区编号从5开始。

  • 一般设置3个主分区,一个扩展分区。

  • 扩展分区不能使用,不能挂载,只是用来记录逻辑分区信息数据的,一般单位为Kb。

  • 所以只有先创建扩展分区,才能建立逻辑分区。扩展分区只能有一个。

  • 扩展分区有多大,逻辑分区加起来只能有多大。

2.3 创建文件系统

创建分区后,要创建文件系统。

2.3.1 什么是文件系统
文件系统的作用

文件系统就是用来管理Linux操作系统中的文件和目录的。

  1. 数据组织和存储:文件系统提供了组织数据的结构,能够把文件分为不同的目录就是因为有文件系统。
  2. 数据保护:文件系统可以通过权限控制,使不同的用户对文件拥有不同的权限
  3. 数据访问:文件系统可以提供对存储设备的访问接口,用户通过访问接口访问存储设备的数据。
  4. 数据管理:文件系统提供了文件或者目录的增删改查等功能。
  5. 高级功能:压缩、快照、日志记录等等。
文件系统的类型
  • xfs :CentOS-7以后默认使用的文件系统,大日志分析系统,可以对海量信息进行分析和存储。适用于大型文件和高性能需求。
  • ext4 :Linux原生的文件系统,可以提高性能,提高稳定性。用的少了。
  • ext3 :基本不用了。
  • ext2 :同上。
  • IFS :适用于大文件。
  • NTFS :Windows文件系统。
  • ISO-9660 :适用于光盘的只读文件系统。
  • NFS :共享存储文件系统。
2.3.2 创建文件系统
mkfs命令
mkfs -t 文件系统类型 硬盘目录		------对指定硬盘创建文件系统
mkfs.文件系统类型 硬盘目录		------和 -t 效果一样,.后没有空格
mkfs -f	文件系统类型 硬盘目录		------覆盖原有的文件系统

对/dev/sdb1,sdb2,sdb5,/dev/sdc1创建xfs文件系统,以sdb1为例

在这里插入图片描述

mkfs.xfs /dev/sdb1
mkfs -t /dev/sdb2		// -t. 都可以
mkfs.xfs /dev/sdb5
mkfs.xfs /dev/sdc1

2.4 挂载与解挂载

挂载:硬件设备必须要和目录形成映射之后才能使用。

解挂载:顾名思义,就是解除设备与目录的映射。

2.4.1 mount umount 命令
mount 设备 挂载点		//挂载设备
umount 设备 挂载点		//解挂载设备

在根目录下建立空目录/data,将 /dev/sdb1 挂载到/data

在这里插入图片描述

mount -a :刷新挂载信息

umount -l :lazy,立即卸载挂载点

umount -f :强制卸载,即使文件系统正在使用,也立即强制卸载。可能会导致数据丢失,慎用。

umount -lf :强制解挂载常用命令

2.4.2 自动挂载

mount是临时挂载,重启系统后mount挂载的信息就失效了。生产环境中需要配置自动挂载,即永久挂载。方法如下:

根据设备名挂载
vim /etc/fstab	// 在/etc/fstab 中编辑自动挂载的配置

​ 配置方法:

在fstab中插入行:	/dev/sdb2	/data1	xfs		 defaults 	0		0
对应位置的解释:   设备		挂载点  文件系统   默认权限   不备份	  系统启动时不检查文件系统
例:
/dev/sdb1 /data xfs defaults 0 0
// 永久挂载/dev/sdb1 到 /data
/dev/sr0 /mnt iso9660 defaults 0 0
// 永久挂载光盘镜像

​ 对defaults的解释:默认有所有权限(读写,磁盘配额)

  • rw/ro :是否对挂载的文件系统拥有读写权限,rw 为默认值,表示拥有读写权限;ro 表示只读权限。

  • async/sync:此文件系统是否使用同步写入(sync)或异步(async)的内存机制,默认为异步 async

  • dev/nodev 是否允许从该文件系统的 block 文件中提取数据,为了保证数据安装,默认是 dev

  • auto/noauto 是否允许此文件系统被以 mount -a 的方式进行自动挂载,默认是 auto

  • suid/nosuid 设定文件系统是否拥有 SetUID 和 SetGID 权限,默认是拥有

  • exec/noexec 设定在文件系统中是否允许执行可执行文件,默认是允许

  • user/nouser 设定此文件系统是否允许让普通用户使用 mount 执行实现挂载,默认是不允许(nouser),仅有 root 可以。

  • remount :重新挂载已挂载的文件系统,一般用于指定修改特殊权限。

  • defaults 定义默认值,相当于 rw、suid、dev、exec、auto、nouser、async 这 7 个选项。

配置完自动挂载后,用mount -a刷新一下挂载信息,使用df -hT查看挂载情况。

在这里插入图片描述

根据UUID挂载

blkid查看已创建文件系统的分区UUID标识号(没创建文件系统的分区没有UUID),这是设备的唯一标识,不随设备的名称改变而改变,然后用设备的UUID实现设备的永久挂载。

还是对/etc/fstab编辑内容

e1171111-52a0-4112-bb46-6102526b9f0c	/data1	xfs		 defaults 	0		0
设备的UUID								挂载点  文件系统   默认权限   不备份	  系统启动时不检查文件系统

挂载完后,还是mount -a刷新挂载信息,并查看。

2.4.3 小结
  1. mount挂载是临时挂载,永久挂载需要在/etc/fstab中进行配置。
  2. 对永久挂载的分区来说,如果分区被删除,需要把相应的永久挂载的配置一并删除,即修改/etc/fstab文件中的配置。否则系统启动时会出错,无法进入系统。

2.5 总结

一个新的磁盘加入到系统之后,使用的过程:

  1. 刷新获取磁盘信息,也可以重启
  2. 分区
  3. 给分区创建文件系统
  4. 挂载设备到目录
  5. 以上全部完成后才可以正常使用磁盘。

三、实验/问题

3.1 如何对硬盘进行分区?

  1. 获取磁盘信息并创建分区
  • 添加新硬盘后,scan或者重启,获得新硬盘信息

  • 根据硬盘大小和需求,选择分区方式是MBR还是GPT,fdiskgdisk + /dev 目录下的硬盘目录

  • 选择MBR分区的话:选择主分区p,还是扩展分区e,还是建立扩展分区后,新建逻辑分区l,并设置分区大小。

    默认类型代号83,为Linux文件系统,如果要修改类型,选项 t ,代号82是swap分区,代号8e是lvm逻辑卷,选项 L 可以查看所有代号。修改分区类型后需要partprobe,更新内核的分区信息。

  • 选择GPT分区的话,默认都是主分区,设置分区大小,声明分区类型,默认类型是文件系统8300。

  • 配置完成后选项 w 保存分区设置并退出。

  1. 创建文件系统

    mkfs.xfs +指定分区目录,对分区创建文件系统。

  2. 挂载

    临时挂载 mount

    自动挂载 在 /etc/fstab 中添加挂载配置。

3.2 如何删除已挂载分区?

对已挂载分区,进入交互界面,选项 d 删除,w 保存退出,出现报错,提示Device or resource busy.

这是因为分区处于挂载中,相当于Windows的正在使用中,不能进行删除操作。

需要先对分区解除挂载,再进行删除。

对临时挂载,使用umount;对永久挂载,编辑/etc/fstab ,删除对应的配置。

  • 16
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值