Linux磁盘管理与文件系统(二):实用工具和命令、fdisk分区示例


文章目录


接上篇理论:Linux磁盘管理与文件系统(一):磁盘、MBR与分区和文件系统

本篇我们讲解一些实用的磁盘管理和文件系统命令:磁盘工具fdisk、创建文件系统、挂载和卸载文件系统以及配置启动自动挂载。

含一个示例实验:使用fdisk命令创建分区,有详细步骤。

4、查看或管理磁盘分区-fdisk

使用 fdisk 可以查看、创建、删除和修改磁盘分区。fdisk -l 可以列出所有磁盘及其分区信息,或指定特定的磁盘设备以查看其详细分区信息。

格式

bash 复制代码
fdisk [选项] [磁盘设备]
  • 选项:指定要执行的操作。
  • [磁盘设备]:指定要操作的磁盘设备(例如 /dev/sda)。

选项

  • l:列出所有磁盘及其分区表,或者指定磁盘设备的分区表。
  • b [大小]:指定磁盘的逻辑块大小(如 512、1024、2048、4096 字节)。
  • u:显示分区的起始和结束位置,以扇区而不是柱面为单位。
  • c [体积]:忽略 DOS 兼容模式,或者开启 DOS 兼容模式(dos、nondos)。
  • v:显示 fdisk 的版本信息。

示例

  1. 列出所有磁盘及其分区表

    bash 复制代码
    fdisk -l
  2. 查看指定磁盘设备的分区表

    bash 复制代码
    fdisk -l /dev/sda
  3. 显示分区的起始和结束位置,以扇区为单位

    bash 复制代码
    fdisk -lu /dev/sda

4、示例:使用 fdisk 命令创建分区

需求

1、添加一块盘

2、划分分区-以主分区为主

3、使用xfs文件系统格式化和定义设备文件

4、创建/abc目录,将新建分区挂载到/abc上

5、配置为永久挂载,即重启后依然有效

操作步骤

  1. 添加一块盘

    以VMware虚拟机环境为例,在当前虚拟机设置中添加硬盘。

    使用默认SCSI格式即可。

    :可以使用lsblkfdisk -l命令来确认系统是否识别了新硬盘。

  2. 进入 fdisk 交互模式

    使用fdisk工具可以划分分区。一般添加过的第二块硬盘为/dev/sdb,使用以下命令:

    bash 复制代码
    fdisk /dev/sdb

    提示:交互模式中的常用指令

    • m:获取帮助菜单
    • n:新建分区**(常用)**
    • p:查看分区情况**(常用)**
    • d:删除分区
    • t:变更分区的类型(改变分区的系统ID)(常用)
    • w:保存分区操作并退出**(常用)**
    • q:不保存分区操作并退出
  3. 创建分区步骤

    • 输入 n 进入新建分区模式。
      • 选择分区类型,选择 p 创建主分区,e 创建扩展分区,或 l 创建逻辑分区。
      • 设置分区号(范围 1-4),默认是第一个分区,即1 ,按 Enter 键接受默认值。
      • 设置柱面序列,直接按 Enter 键接受默认值(默认2048-xxxx)。
      • 设置分区大小,例如 +20G 表示 20GB,按 Enter 键接受默认值表示使用所有剩余空间。(可以使用+sizeK+sizeM+sizeG等指定大小,或者输入+后按回车使用全部剩余空间)。(此步骤可以省略)
    • 输入 w 保存分区操作并退出。

    示例命令

    创建新分区:

    bash 复制代码
    n
    p
    1
    <Enter>
    <Enter>
    +20G
    w
  4. 使用xfs文件系统格式化和定义设备文件:

    格式化分区为xfs文件系统:

    bash 复制代码
    mkfs.xfs /dev/sdb1
    或者
    mkfs -t xfs /dev/sdb1
  5. 创建/abc目录,将新建分区挂载到/abc上(临时):

    创建挂载点目录/abc

    bash 复制代码
    mkdir /abc

    将新分区挂载到/abc目录:

    bash 复制代码
    mount /dev/sdb1 /abc

    验证 :使用df -h命令查看挂载情况,或使用ls /abc查看挂载点下的内容。

    注意:变更硬盘(特别是正在使用的硬盘)的分区设置以后,建议最好将系统重启一次,或者执行"partprobe"命令(如partprobe /dev/sdb)更新内核的分区表信息,使操作系统检测新的分区表情况,以防格式化分区时损坏硬盘中已有的数据。

  6. 使挂载在系统重启后依然有效

    编辑/etc/fstab文件。使用文本编辑器打开/etc/fstab文件,并添加以下行:

    bash 复制代码
    /dev/sdb1 /mnt/abc xfs defaults 0 2

    保存并关闭文件后,下次系统启动时,/dev/sdb1分区将自动挂载到/abc目录。

    解释defaults 0 2是挂载选项和文件系统检查顺序的组合。

    1. defaults:一个挂载选项,实际上是一个占位符,代表一组默认的挂载选项。
    2. 0 :文件系统检查(fsck)的通过顺序(pass number)。在系统启动时,fsck用于检查文件系统的完整性并尝试修复任何问题。数字0意味着该文件系统不会在启动时由fsck检查。通常用于那些在系统启动时不包含关键系统文件的文件系统。
    3. 2 :文件系统的备份顺序。用于备份工具(如dump)来决定哪些文件系统需要备份,以及备份的优先级。数字2表示这个文件系统在备份时会被考虑,但优先级不是最高的。数字0表示从不备份该文件系统。

    注意 :在编辑/etc/fstab文件时,配置错误可能导致系统无法启动。

    验证 :可以使用mount -a命令测试挂载配置是否正确,无需重启系统。

5、创建文件系统-mkfs

创建文件系统的过程即格式化分区的过程。通过格式化,可以将一个分区初始化为指定的文件系统类型,使其可以存储和管理文件和目录。

格式

bash 复制代码
mkfs -t <文件系统类型> <设备>

或者使用专用的格式化命令,例如 mkfs.xfs

常用选项

  • t <文件系统类型>:指定要创建的文件系统类型,如 xfs, ext4, vfat 等。
  • <设备>:指定要格式化的分区或设备,例如 /dev/sdb1

示例

  1. 使用通用命令 mkfs

    bash 复制代码
    mkfs -t xfs /dev/sdb1

    该命令将 /dev/sdb1 分区格式化为 XFS 文件系统。

  2. 使用专用命令 mkfs.xfs

    bash 复制代码
    mkfs.xfs /dev/sdb1

    该命令也将 /dev/sdb1 分区格式化为 XFS 文件系统,是 mkfs -t xfs 的简写形式。

创建其他类型的文件系统

  1. 创建 EXT4 文件系统

    bash 复制代码
    mkfs -t ext4 /dev/sdb1

    或者:

    bash 复制代码
    mkfs.ext4 /dev/sdb1
  2. 创建 VFAT 文件系统

    bash 复制代码
    mkfs -t vfat /dev/sdb1

    或者:

    bash 复制代码
    mkfs.vfat /dev/sdb1

6、创建文件系统-mkswap

用于初始化交换空间 (swap partition)。会创建一个空的交换空间文件或分区,并准备好让系统使用该交换空间进行内存扩展。交换空间用于存储暂时不活跃的内存页面,帮助系统在物理内存不足时避免崩溃。

格式

bash 复制代码
mkswap [选项] 设备或文件
  • 选项:指定如何初始化交换空间的参数。
  • 设备或文件:指定要创建交换空间的设备或文件。

常用选项

  • L <标签>:为交换空间设置一个标签。
  • U <UUID>:为交换空间指定一个 UUID(通用唯一标识符)。

示例

  1. 初始化交换分区

    bash 复制代码
    mkswap /dev/sdb1

    /dev/sdb1 上初始化交换分区,使其可以用作交换空间。

    可以通过cat /proc/meminfo l grep SwapTotal 查看。

  2. 初始化交换文件,并为其设置标签

    bash 复制代码
    mkswap -L swapfile /swapfile

    /swapfile 上创建交换空间,并设置标签为 swapfile

  3. 为交换分区指定 UUID

    bash 复制代码
    mkswap -U 12345678-1234-1234-1234-1234567890ab /dev/sdb2

    /dev/sdb2 上初始化交换分区,并为其指定 UUID。

拓展:关闭和启用交换分区

  • 关闭所有交换分区:swapoff -a
  • 启用交换分区:swapon -a

拓展:swap分区编号为什么是1-4

  • 问:swap分区编号为什么是1-4,而不是5?
  • 答:因为它被设置为主分区;如果编号为 5 或更高,那它是一个逻辑分区。

7、挂载、卸载文件系统-mount、umount

1. 挂载文件系统-mount

  • 格式

    bash 复制代码
    mount [-t 类型] 存储设备 挂载点目录
  • 挂载 ISO 镜像

    bash 复制代码
    mount -o loop ISO镜像文件 挂载点目录
  • 选项说明

    • t:用于指定文件系统类型。通常可以省略,由系统自动识别。
    • o:用于指定挂载参数列表,以英文逗号分隔。例如,loop 参数用于挂载 ISO 镜像文件。
  • 示例

    1. 挂载 CD-ROM 到 /mnt

      bash 复制代码
      mount /dev/cdrom /mnt
    2. 挂载分区 /dev/sdb1/opt

      bash 复制代码
      mount /dev/sdb1 /opt
    3. 挂载 ISO 镜像 CentOS-7-x86_64-DVD-1611.iso/media/mnt

      bash 复制代码
      mount -o loop CentOS-7-x86_64-DVD-1611.iso /media/mnt

2. 卸载文件系统-umount

  • 基本格式

    bash 复制代码
    umount [-lf] 存储设备目录 或 挂载点目录
  • 选项说明

    • l:延迟卸载,即在设备不再使用时再进行卸载。
    • f:强制卸载,即使设备正在被使用也强制卸载。
  • 卸载前提

    • 确保挂载的设备或目录不再被使用。如果目录中有打开的文件或正在使用的进程,可能需要先退出或停止相关进程。
  • 示例

    1. 卸载 /dev/sdb1

      bash 复制代码
      umount /dev/sdb1
    2. 卸载挂载点 /media/mnt

      bash 复制代码
      umount /media/mnt
    3. 强制卸载(如果设备正在使用中)

      bash 复制代码
      umount -f /media/mnt
    4. 延迟卸载(在设备不再使用时卸载)

      bash 复制代码
      umount -l /media/mnt

8、设置文件系统的自动挂载-/etc/fstab文件

/etc/fstab 文件用于配置系统启动时自动挂载文件系统的详细信息。每一行描述一个文件系统的挂载方式和选项。

字段格式

bash 复制代码
<分区名或设备卷标名> <挂载点目录> <文件系统类型> <挂载参数> <dump备份> <磁盘检查顺序>

内容示例

bash 复制代码
# <分区名或设备卷标名> <挂载点目录> <文件系统类型> <挂载参数> <dump备份> <磁盘检查顺序>
UUID=3f6b41f6-8d8a-4c65-9f38-3a6b4f1d6cb7 /          ext4    defaults        1 1
UUID=4f5a6e7d-8b9c-4d0e-a123-4b5c6d7e8f9a /home      xfs     defaults        1 2
/dev/sdb1     /mnt/data  ext4    defaults,rw            0 2

字段解释

第1字段:分区名或设备卷标名

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

第3字段:文件系统类型,如 xfs、swap 等

第4字段:挂载参数,即mount命令"-o"选项后可使用的参数。例如,defaults(默认参数)、rw(可读写)、ro(只读)、noexec(禁用执行程序)

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

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

添加示例

/dev/sdb1 /opt xfs defaults 0 0
/dev/sr0 /mnt iso9660 defaults 0 0
  • /dev/sdb1:设备名或分区名。
  • /opt:挂载点目录。
  • xfs:文件系统类型。
  • defaults:挂载参数,使用默认设置。
  • 0dump 备份标志,不进行备份。
  • 0:磁盘检查顺序,表示不进行检查。
  • /dev/sr0:设备名或光驱设备。
  • /mnt:挂载点目录。
  • iso9660:文件系统类型,通常用于光盘镜像。
  • defaults:挂载参数,使用默认设置。
  • 0dump 备份标志,不进行备份。
  • 0:磁盘检查顺序,表示不进行检查。

相关推荐
wowocpp9 分钟前
查看 linux ubuntu 分区 和 挂载 情况 lsblk
linux·运维·ubuntu
wowocpp11 分钟前
查看 磁盘文件系统格式 linux ubuntu blkid ext4
linux·数据库·ubuntu
龙鸣丿1 小时前
Linux基础学习笔记
linux·笔记·学习
耶啵奶膘3 小时前
uniapp-是否删除
linux·前端·uni-app
_.Switch4 小时前
高级Python自动化运维:容器安全与网络策略的深度解析
运维·网络·python·安全·自动化·devops
2401_850410834 小时前
文件系统和日志管理
linux·运维·服务器
JokerSZ.4 小时前
【基于LSM的ELF文件安全模块设计】参考
运维·网络·安全
XMYX-04 小时前
使用 SSH 蜜罐提升安全性和记录攻击活动
linux·ssh
芯盾时代4 小时前
数字身份发展趋势前瞻:身份韧性与安全
运维·安全·网络安全·密码学·信息与通信
心灵彼岸-诗和远方5 小时前
DevOps业务价值流:架构设计最佳实践
运维·产品经理·devops