当前位置: 首页 > news >正文

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


文章目录

  • 4、查看或管理磁盘分区-fdisk
    • 格式
    • 选项
    • 示例
  • 4、示例:使用 fdisk 命令创建分区
      • 需求
      • 操作步骤
  • 5、创建文件系统-mkfs
      • 格式
      • 常用选项
      • 示例
      • 创建其他类型的文件系统
  • 6、创建文件系统-mkswap
    • 格式
    • 常用选项
    • 示例
    • 拓展:关闭和启用交换分区
    • 拓展:swap分区编号为什么是1-4
  • 7、挂载、卸载文件系统-mount、umount
    • 1. 挂载文件系统-mount
    • 2. 卸载文件系统-umount
  • 8、设置文件系统的自动挂载-/etc/fstab文件
    • 字段格式
    • 内容示例
    • 字段解释
    • 添加示例


接上篇理论:Linux磁盘管理与文件系统(一):磁盘、MBR与分区和文件系统
本篇我们讲解一些实用的磁盘管理和文件系统命令:磁盘工具fdisk、创建文件系统、挂载和卸载文件系统以及配置启动自动挂载。
含一个示例实验:使用fdisk命令创建分区,有详细步骤。

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

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

格式

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

选项

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

示例

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

    fdisk -l
    
  2. 查看指定磁盘设备的分区表

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

    fdisk -lu /dev/sda
    

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

需求

1、添加一块盘

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

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

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

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

操作步骤

  1. 添加一块盘

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

    使用默认SCSI格式即可。

    在这里插入图片描述

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

  2. 进入 fdisk 交互模式

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

    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 保存分区操作并退出。

    示例命令

    创建新分区:

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

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

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

    创建挂载点目录/abc

    mkdir /abc
    

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

    mount /dev/sdb1 /abc
    

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

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

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

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

    /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

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

格式

mkfs -t <文件系统类型> <设备>

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

常用选项

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

示例

  1. 使用通用命令 mkfs

    mkfs -t xfs /dev/sdb1
    

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

  2. 使用专用命令 mkfs.xfs

    mkfs.xfs /dev/sdb1
    

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

创建其他类型的文件系统

  1. 创建 EXT4 文件系统

    mkfs -t ext4 /dev/sdb1
    

    或者:

    mkfs.ext4 /dev/sdb1
    
  2. 创建 VFAT 文件系统

    mkfs -t vfat /dev/sdb1
    

    或者:

    mkfs.vfat /dev/sdb1
    

6、创建文件系统-mkswap

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

格式

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

常用选项

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

示例

  1. 初始化交换分区

    mkswap /dev/sdb1
    

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

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

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

    mkswap -L swapfile /swapfile
    

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

  3. 为交换分区指定 UUID

    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

  • 格式

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

    mount -o loop ISO镜像文件 挂载点目录
  • 选项说明

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

    1. 挂载 CD-ROM 到 /mnt

      mount /dev/cdrom /mnt
      
    2. 挂载分区 /dev/sdb1/opt

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

      mount -o loop CentOS-7-x86_64-DVD-1611.iso /media/mnt
      

2. 卸载文件系统-umount

  • 基本格式

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

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

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

    1. 卸载 /dev/sdb1

      umount /dev/sdb1
      
    2. 卸载挂载点 /media/mnt

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

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

      umount -l /media/mnt
      

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

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

字段格式

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

内容示例

# <分区名或设备卷标名> <挂载点目录> <文件系统类型> <挂载参数> <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:磁盘检查顺序,表示不进行检查。

相关文章:

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

文章目录 4、查看或管理磁盘分区-fdisk格式选项示例 4、示例&#xff1a;使用 fdisk 命令创建分区需求操作步骤 5、创建文件系统-mkfs格式常用选项示例创建其他类型的文件系统 6、创建文件系统-mkswap格式常用选项示例拓展&#xff1a;关闭和启用交换分区拓展&#xff1a;swap分…...

使用vtkRenderer创建的显示点云的窗口如何刷新(QT/C++)

一、使用vtkRenderer创建点云显示窗口&#xff0c;参考 在Qt创建的UI中放一个显示点云的窗口&#xff08;PCLQT5&#xff09;_pcl点云和qt-CSDN博客 二、刷新vtkRenderer创建的窗口 使用场景&#xff1a;在某些情况下代码中需要对显示窗口的显示物改动&#xff0c;例如通过滑…...

Mysql绕过小技巧

上源码。 <?php $mysqli new mysqli("localhost", "root", "root", "security");/* check connection */ if ($mysqli->connect_errno) {printf("Connect failed: %s\n", $mysqli->connect_error);exit(); }$my…...

气象大数据案例项目(求各气象站的平均气温)

气象大数据案例项目&#xff08;求各气象站的平均气温&#xff09; 一、项目需求二、数据格式三、项目开发3.1 在windows 进行开发3.2 运行结果3.3 对项目打包 一、项目需求 现在有一份来自美国国家海洋和大气管理局的数据集&#xff0c;里面包含近30年每个气象站、每小时的天…...

博客摘录「 一个ModBus RTU程序(支持01、02、03、05、06、15、16功能码)」2024年4月19日

发送数据最好改为中断模式&#xff0c;不然通信速度不够。...

Vue3学习笔记第一天

MVVM Vue是一种用于构建用户界面的JavaScript框架。MVVM 是Vue采用的一种软件架构模式&#xff0c;用于构建交互式的用户界面。它的全称是 Model-View-ViewModel&#xff0c;这三个部分分别代表了应用程序的不同层次和角色&#xff1a; Model&#xff08;模型&#xff09;&…...

C++之类与对象(完结撒花篇)

目录 前言 1.再探构造函数 2.类型转换 3.static成员 4. 友元 5.内部类 6.匿名对象 7.对象拷贝时的编译器优化 结束语 前言 在前面的博客中&#xff0c;我们对类的默认成员函数都有了一定了解&#xff0c;同时实现了一个日期类对所学的没内容进行扩展延伸&#xff0c;本…...

代码质量的守护者:Python静态代码分析工具的集成之道

标题&#xff1a;代码质量的守护者&#xff1a;Python静态代码分析工具的集成之道 在软件开发过程中&#xff0c;代码质量是至关重要的一环。Python作为一种流行的编程语言&#xff0c;拥有众多的静态代码分析工具&#xff0c;它们能够在代码运行之前检测潜在的错误和代码风格…...

JVM -- 类加载器

类加载器(ClassLoader)是Java虚拟机提供给应用程序去实现访问接口和类字节码数据的技术。类加载器只负责加载过程中的字节码获取并加载到内存的这一过程。 一、 类加载器的分类 类加载器的详细信息可以使用Arthas通过classloader命令查看&#xff1a; 1.启动类加载器(Boots…...

OLAP引擎之StarRocks

StarRocks 是一款新兴的开源分布式实时分析型数据库&#xff0c;专为高性能、高并发的数据分析场景设计。它结合了传统数据仓库和大数据技术的优势&#xff0c;提供了强大的实时数据处理和分析能力。以下是对 StarRocks 的详细介绍&#xff0c;涵盖其基本概念、核心特性、架构设…...

基于微信小程序的小区业主服务系统(源码+论文+部署讲解等)

博主介绍&#xff1a;✌全网粉丝10W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术栈介绍&#xff1a;我是程序员阿龙&#xff…...

C++ | Leetcode C++题解之第327题区间和的个数

题目&#xff1a; 题解&#xff1a; class Solution { public:int countRangeSumRecursive(vector<long>& sum, int lower, int upper, int left, int right) {if (left right) {return 0;} else {int mid (left right) / 2;int n1 countRangeSumRecursive(sum,…...

C# Winform 多窗体切换方式一

一、简介 在 Winform 开发中&#xff0c;多窗体的切换是一个常见的需求&#xff0c;比如登录成功后&#xff0c;切换至主界面&#xff0c;在网上查阅相关的资料&#xff0c;你会发现很多都是用 form2.Show(); this.Hide(); 这种方式&#xff0c;这种方式也存在一些问题&#…...

笔记本CPU天梯图(2024年8月),含AMD/骁龙等新CPU

原文地址&#xff08;高清无水印原图/持续更新/含榜单出处链接&#xff09;&#xff1a; 2024年8月笔记本CPU天梯图 2024年8月笔记本CPU天梯图 2024年8月5日更新日志&#xff1a;常规更新Cinebench R23、PassMark笔记本CPU天梯图&#xff0c;新增Geekbench 6.2单核多核天梯图&…...

GitLab-CI/CD指南

由于公司没有运维&#xff0c;写go服务时各个环境编译部署还是略显麻烦&#xff0c;由于代码管理使用的是 gitlab&#xff0c;所以决定使用 gitlab 自带的 CI/CD 来做自动编译和部署&#xff0c;这样每次提交代码以后就可以自动部署到服务器上了。 gitlab 本身只有 CI/CD 的接…...

io目录操作学习

1、基本概念 目录也是一种文件&#xff0c;因此操作流程与普通文件类似&#xff0c;有诸如打开、关闭、定位等概念&#xff0c;但目录是一种特殊的文件&#xff0c;目录存储的数据的最小单位并不是字符&#xff0c;而是目录项。这使得目录跟普通文件又有区别。 在Linux中&…...

Ant-Design-Vue

Ant-Design-Vue是蚂蚁金服Ant Design官方推荐的Vue版UI组件库&#xff0c;它继承了Ant Design的设计语言和Vue.js的易用性&#xff0c;为开发者提供了丰富、高质量的Vue组件&#xff0c;极大地简化了前端开发流程。以下是一份详细的Ant-Design-Vue快速上手指南及排坑建议&#…...

2024互联网暑期实习面经和流程记录分享

2024互联网暑期实习面经和流程记录分享 面试经验和流程需要注意的点 面试经验和流程 因为敏感信息的原因&#xff0c;这里涉及到公司名字的全部进行打码 笔者投递和面试了很多公司&#xff0c;具体有包括算法和开发岗&#xff0c;下面的公司一律用字母代替。 O公司&#xff0…...

风云崛起之拉氏变换和拉式逆变换

图像的分割写出来了&#xff0c;但是写的不好&#xff0c;暂时先不发了。这两天小y想在把拉式变换的内容写出来&#xff0c;小y最近再看信号和电路&#xff0c;需要复习数学&#xff0c;所以把这点写出来。 首先要推出分布积分的公式&#xff0c;我们知道积分和微分为逆运算&am…...

1、.Net UI框架:WinUI - .Net宣传系列文章

WinUI(Windows UI Library)是微软提供的一个用于构建Windows应用程序的本机UI平台组件。它与Windows应用SDK紧密相关&#xff0c;允许开发者创建适用于Windows 10及更高版本的应用程序&#xff0c;并且可以发布到Microsoft Store。WinUI 3是最新的一代&#xff0c;它提供了与操…...

计算机的错误计算(五十九)

摘要 讨论用 Go语言实现的 函数的计算精度问题。 由计算机的错误计算&#xff08;五十五&#xff09;知&#xff0c;国际 IEEE 754 标准中&#xff0c; 函数具有定义域 . 那么&#xff0c;在常规编程模式下用 Go语言实现这个函数&#xff0c;其输出的精度如何&#xff1f; …...

【数学分析笔记】第1章第1节:集合(1)

作为一个计算机专业的人&#xff0c;想自学一下数学专业的专业课补一补AI基础&#xff0c;顺带写个笔记&#xff0c;听的课是陈纪修版本的数学分析&#xff1a; 1. 集合与映射 1.1 集合 1.1.1 基本概念 集合&#xff1a;由某种特定性质的具体的或抽象的对象汇集的总体。 集…...

计算机毕业设计 校园失物招领网站 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…...

GIT指令大全详解

目录 GIT指令详解 拉取 提交 分支操作(假设分支为a) 版本回退 主分支拉取到分支 常用的Git指令 一、初始化配置 二、初始化仓库 三、检查当前文件状态 四、添加 五、查看提交历史 六、撤销更改 七、查询 八、分支 九、标签管理 十、其他常用指令 GIT指令详解 Git是一个开源的分…...

ECCV2024,清华百度提出ReSyncer:可实现音频同步嘴唇动作视频生成。

清华&百度等联合提出了ReSyncer&#xff0c;可以实现更高稳定性和质量的口型同步&#xff0c;而且还支持创建虚拟表演者所必需的各种有趣属性&#xff0c;包括快速个性化微调、视频驱动的口型同步、说话风格的转换&#xff0c;甚至换脸。 ReSyncer的工作原理可以简单理解为…...

论文笔记:YOLOv8-QSD 自动驾驶场景小目标检测算法

摘要 YOLOv8-QSD网络是一种新型的无锚点驾驶场景检测网络&#xff0c;建立在YOLOv8的基础上&#xff0c;在保证检测精度的同时保持效率。该网络的骨干网采用结构重参数化技术来转换基于多样化分支块 &#xff08;DBB&#xff09; 的模型。 为了准确检测小目标&#xff0c;它集…...

Vue.js状态管理:Vuex与Pinia的比较

在 Vue.js 生态系统中&#xff0c;状态管理是构建复杂应用时的重要组成部分。Vue.js 提供了两种流行的状态管理库&#xff1a;Vuex 和 Pinia。虽然两者都旨在简化状态管理&#xff0c;但它们在设计哲学、API、性能和易用性方面有所不同。本文将深入探讨 Vuex 和 Pinia 的异同&a…...

OJ题目【栈和队列】

目录 有效的括号 有效的括号【代码】 用队列实现栈 用队列实现栈【代码】 用栈实现队列 用栈实现队列【代码】 设计循环队列 有效的括号 https://leetcode.cn/problems/valid-parentheses/submissions/551394950/ 思路&#xff1a;把左括号放到栈里&#xff0c;取出来栈…...

[shell][git]git将当前分支的HEAD指针重置到最后一次提交的状态

在Git中&#xff0c;git reset --hard HEAD 命令用于将当前分支的HEAD指针重置到最后一次提交的状态&#xff0c;并且会丢弃当前工作目录中的所有更改。这个命令的意思是&#xff1a; git reset&#xff1a;重置命令&#xff0c;用于将HEAD指针移动到指定的状态。--hard&#…...

高翔【自动驾驶与机器人中的SLAM技术】学习笔记(六)卡尔曼滤波器二:图解卡尔曼滤波器;卡尔曼滤波器公式理解;面试答法;

上一篇卡尔曼滤波器一中,从整体上认识了,卡尔曼滤波器整体是在做一件什么事。 知道了,协方差就可以理解为偏差,或者误差。 这一篇主要讲卡尔曼滤波器中的公式,理解公式,就能知道如何实现卡尔曼滤波器。 上一篇:卡尔曼滤波器在做一件什么事,这一篇,卡尔曼滤波器怎么…...