Linux磁盘管理(分区+格式化)

    科技2026-01-27  8

    Linux磁盘管理(分区+格式化)

    1.文件系统结构

    •Linux的最重要特征之一就是支持多种文件系统。这样它更加灵活并可以和许多其它种操作系统共存。

    文件系统类型:

    RHEL 7.x 使用的默认文件系统为XFS,替换了在RHEL 6.x中使用的第四代扩展文件系统(ext4),ext4和Btrfs(B-Tree)文件 系统可作为XFS的备选。

    系统支持的文件系统类型

    文件系统规则

    •添加一个新的文件系统需要生成的文件树规则: ​ 定义一个设备 /dev/sda ​ 设备分区 fdisk /dev/sda ​ 创建一个文件系统(格式化) mkfs.xfs /dev/sda* ​ 建立一个卷标 e2label ​ 写入到/ etc/fstab vim /etc/fstab ​ 挂载新的文件系统 mount -a

    2.分区原理

    •磁盘分区:一块磁盘最多可以划分4个主分区,超出4块分区则需要划分为扩展分区

    •内核支持分区数:

    ​ IDE硬盘,分区个数限制在63个(2^6-1)

    ​ SCSI硬盘,分区个数限制在15个

    分区原理图

    💗为什么我们系统只能分成4个主分区(或3个主分区一个扩展分区) ?

    为什么我们系统只能分成4个主分区(或3个主分区一个扩展分区) ? 每个扇区规定大小为512字节,如上图MBR磁盘分区表大小为66字节,减去分区标识符的2字节就剩下64字节 那么每一个分区字节为16字节,64字节除以16字节等于4 ,就意味着只能占用4个主分区(或3个主分区一个扩展分区)

    磁盘分区的工具

    分区的工具

    fdisk

    parted

    sfdisk

    diskdruid

    GNU parted

    ✔那么我们这里有一个小知识点就是fdisk和parted的区别

    parted的使用

    应用在什么地方呢? 如何解决大于2T磁盘的分区呢? 首先我们要知道的是fdisk分区针对的是msdos分区表,上限是2T以内的磁盘,jie’jue大于2T的磁盘的分区就是用parted工具,它既可以解决2T磁盘的分区,也可以解决2T以下的分区.

    2T以内的磁盘,用fdisk 2T以上的磁盘,用parted 还有要注意的是在使用parted工具分区时,它修改分区是直接生效的,很危险,我们要用尽量针对新硬盘而不是已经拥有信息的磁盘,它需要将磁盘转化为GPT格式

    第一步 查看磁盘信息 (我们在这里添加第二块硬盘/dev/sdb操作)

    第二步 用parted开始分区

    第三步 修改分区表格格式

    mklabel gpt

    第四部 创建分区

    mkpart logical 1 10 #<==创建逻辑分区,大小10MB。 mkpart primary 11 20 #<==创建主分区,大小10MB。 mkpart primary 21 200 # 退出

    第五步 格式化

    mkfs -t ext4 /dev/sdb1 mkfs -t xfs /dev/sdb2

    第六步 挂载

    mount /dev/sdb1 /mnt 具体parted可以点“这里”看更详细的介绍

    fdisk使用

    •常用命令: ​ fdisk –l 查看磁盘状态 ​ fdisk /dev/sda 对/dev/sda磁盘进行分区 m:获取帮助 n:新建分区 p:显示分区表 d:删除分区 b:设置卷标 w:写入分区表 t:改变分区文件系统类型 v:检验分区 l:显示fdisk所支持的文件系统代码 q:退出

    查看内核是否加载

    分区格式化

    •mkfs:支持xfs、ext2、ext3、ext4、vfat、msdos、jfs、reiserfs等等

    ​ 用法:

    ​ mkfs -t ext3 /dev/sdb2 (-t)指定文件系统

    ​ mkfs.vfat /dev/sdb1

    ​ mkfs.ext4 -b 4096 /dev/sdb2 (-b) 指定块大小

    •mke2fs:支持ext2/ext3文件系统

    ​ 用法:

    ​ mke2fs -j /dev/sdb2

    分区别名

    e2label

    •用法:

    ​ e2label /dev/sdb2 /disk

    ​ mount LABEL=/disk /mnt/

    •查看:

    ​ blkid 查看所有的分区包括没有挂载的

    ​ mount 查看挂载了的分区

    3.理解物理内存和虚拟内存

    1)物理内存和虚拟内存对比

    •物理内存:硬件的内存,是真正的内存大小,从物理内存中读写数据比硬盘中读写数据要快很多,但是内存是有限的。

    •虚拟内存(swap):即交换分区,作为物理内存的扩展,为了满足物理内存不足采用的策略,利用磁盘空间虚拟出一块逻辑内存。当物理内存不足时,使用逻辑内存,内核会把暂时不用的内存块信息写到交换空间,这样物理内存就得到了释放,这块内存就可以用于其他目的,而需要用到这些内容的时候,这些信息就会被重新从交换分区读入物理内存。

    2)创建虚拟内存的两种方法

    •方法一:

    ​ dd if=/dev/zero of=/tmp/swapfile bs=1M count=512

    ​ mkswap /tmp/swapfile

    •方法二:

    ​ 新建分区大小为512M,修改文件系统类型为swap(82)

    ​ mkswap /dev/sda6

    swapon –a 自动启动所有的swap装置 swapoff –a 自动关闭所有的swap装置 swapon –s 查看启动的swap装置的讯息

    4.添加一个新的分区(实践)

    四个实验练习题

    一.创建一个100M大小的文件系统为xfs的分区,将其挂载到/xfs上,要求下次开机随系统挂载。

    二.创建一个大小100M的文件系统类型为ext4的分区,将起挂载到/ext4上,要求开机自动挂载。 三.使用分区方式创建一个4G的swap分区,要求开机自动使用。查看一下空间。

    四.当分区没有内存了,需要使用文件方式创建一个swap文件大小1G做swap内存。

    开始创建环境

    1.我们先fdisk -l 查看系统已拥有的分区 (是我们在安装系统时创建的分区)

    /dev/sda1 /boot (系统启动分区) /dev/sda2 swap(虚拟内存) /dev/sda3 / (根分区)

    fdisk /dev/sda 对这个硬盘进行分区

    我们进入 输入“n“ 创建一个新的分区

    可以看见我们现在这里拥有3个主分区,0个扩展分区,一个剩余空间

    那我们在这里需要去分区就先要创建一个占用剩余磁盘空间的扩展分区/dev/sda4

    ,再在扩展分区中创建逻辑分区我们才能拿来使用

    🐷第一题 创建一个100M大小的文件系统为xfs的分区,将其挂载到/xfs上,要求下次开机随系统挂载

    1.第一步创建名称为 /xfs的目录

    2.第二步创建一个100M大小的分区

    最后记得输入字母”w"保存我们创建出来的新分区

    3.查看内核,并且将我们创建的新分区加载到内核中

    4.格式化需要的文件类型,我们这里需要的时xfs类型的分区

    mkfs.xfs /dev/sda5(这里要详细写出对哪一个分区进行处理)

    5.把这个分区(/dev/sda5)写入/etc/fstab下,挂载到/xfs下,要求下次开机随系统挂载

    💗 我们这里完成题目开机自动挂载有两种方法

    第一种方法 1.写入 “mount /dev/sdn(指定的分区) /挂载点 ” 到 /etc/rc.local中开机自启动 2.因为/etc/rc.local是一个软连接 它对应的真实路径是 [root@cry ~]# ls -l /etc/rc.local lrwxrwxrwx. 1 root root 13 Oct 9 02:50 /etc/rc.local -> rc.d/rc.local 3.而它的真实路径文件没有执行权限 [root@cry ~]# ll /etc/rc.d/rc.local -rw-r–r--. 1 root root 473 Apr 1 2020 /etc/rc.d/rc.local 所以我们要 chmod +x /etc/rc.d/rc.local 给他一个执行权限 第二种方法 .写入到 /etc/fstab下 1.可以使用uuid 通过命令blkid查看 [root@cry ~]# blkid /dev/sda1: UUID=“0c6b06bf-0fad-4a2c-b758-9a775176ec8c” TYPE=“xfs” /dev/sda2: UUID=“09dc2d05-ee92-4f66-b84d-8e1e7552cc57” TYPE=“swap” /dev/sda3: UUID=“e9528202-1f3e-4641-b922-8f7d6e63e4b9” TYPE=“xfs” /dev/sda5: UUID=“a6684fa5-bf01-4933-9955-f57802c33f1f” TYPE=“xfs” /dev/sda6: UUID=“7bd0f032-96e4-4968-80a2-84f36fb8a68c” TYPE=“ext4” /dev/sda8: UUID=“955cd6d6-8734-471b-a33a-0054a32b8200” TYPE=“swap” 2.使用设备名称 /dev/sda 在/etc/fstab下分区defaults后加,pri=n(n为自定义数值,数值越大越优先)

    .

    6.我们这里可以手动把我们刚创建出的分区挂载一下。看一下实验效果

    🐷第二题 创建一个大小100M的文件系统类型为ext4分区,将其挂载到/ext4上,要求开机自动挂载

    1.第一步创建名称为/ext4的目录

    mkdir /ext4

    2.第二步创建一个100M大小的文件

    3.同步内核中

    partprobe /dev/sda

    4.格式化为ext4类型的分区

    5.把新分区挂载信息写入/etc/fstab

    6.手动挂载

    💗 输入命令 df -Th 可以查看我们更改后的分区类型 💗

    🐷 第三题 使用分区方式创建一个4G的swap分区,要求开机自动使用。

    第一步 free -m 查看一下空间![在这里插入图片描述](https://img-blog.csdnimg.cn/20201008205607254.png#pic_center

    第二步 创建一个4G的swap分区

    第三步 同步swap分区到内核中

    第四步 格式化分区为swap分区

    第五步 将新创建的swap分区写入/etc/fstab下

    第六步查看刷新虚拟分区

    Swapon –s 查看虚拟空间分区 Swapoff –a 关闭所有虚拟分区 Swapon –a 开启所有虚拟分区

    💗输入命令lsblk 可以列出所有可用块设备信息 💗

    🐷第四题 当分区没有内存了,需要使用文件方式创建一个swap文件大小1G做swap内存。并自动挂载

    1.第一步使用文件方式创建swap

    想要了解更多关于dd命令的具体可以去看这个大佬的“点我“

    2.第二步格式化swap

    3. 第三步写入fstab

    💣要求开机自动使用,并要求,先使用4Gswap,然后使用2Gswap,最后使用1Gswap。这个时候我们需要调分区的优先级。

    在/etc/fstab 下 分区defaults后加,pri=n (n为自定义数值,数值越大,越优先。)

    4.第四步查看,刷新虚拟空间

    Processed: 0.014, SQL: 9