Ubuntu硬盘分区及挂载(命令行)

ops/2024/12/23 18:09:02/

文章目录

  • 一、简介
  • 二、硬盘分区
  • 三、格式化分区
  • 四、自动挂载分区
  • 五、调整分区大小
  • 小结

一、简介

创建磁盘分区首先需要找出Linux系统中的物理磁盘,在Linux中采用了一种标准格式来为硬盘分配设备名称。

  • SATA驱动器和SCSI驱动器:设备命名格式为/dev/sdx,其中x根据驱动器的检测顺序决定,第一个检测到的驱动器是a,第二个是b,第一个分区显示为:/dev/sda1
  • SSD NVMe驱动器:设备命名格式为/dev/nvmeNn#,其中N根据驱动器的检测顺序决定(从0开始),#是分配给该驱动器的命名空间编号(从1开始),第一个驱动器显示为:/dev/nvme0n1,其第一个分区显示为:/dev/nvme0n1p1
  • IDE驱动器:设备命名格式为/dev/hdx,其中x根据驱动器的检测顺序决定,第一个检测到的驱动器是a,第二个是b,以此类推。

对磁盘进行操作(如分区、格式化等)的常用工具有:

  • 分区工具fdisk、parted、gdisk
  • 格式化工具mkfs(如 mkfs.ext4、mkfs.vfat)
  • 挂载工具mount、umount
  • 查看块设备信息lsblk

二、硬盘分区

这里主要关注两种常用的组织和管理分区的工具:fdiskgdiskfdisk是一个交互式程序,允许输入命令来逐步完成磁盘分区操作,它可以在任何存储设备上创建和管理分区,但是,fdisk只能处理最大2TB的硬盘。如果大于这个容量,则只能使用gdisk。另外还有一种GNU parted,它的优势是允许调整现有的分区大小,为了分区灵活性也可以考虑LVM

  1. 查看接入设备的所有块设备,块设备通常是:硬盘、SSD、光驱、USB 存储设备等。

    lsblk -f
    --------------------------------------------------------------
    # lsblk:   显示所有块设备的层级结构
    # lsblk -f:显示文件系统类型及挂载点信息
    # lsblk -d:仅显示磁盘,不显示分区信息
    # lsblk -a:显示所有设备,包括空设备
    # lsblk -o:自定义输出列。例如,lsblk -o NAME,SIZE,TYPE,MOUNTPOINT
    

    块设备查询

  2. 可以使用分区工具查看所有硬盘的连接情况。

    fdisk -l  # 需要sudo权限
    

    设备情况
    设备情况

  3. 对目标存储设备进行分区。

    fdisk /dev/sda
    

    设备分区

  4. 新硬盘会提示设备没有分区表,建议先创建分区表,输入命令g创建GPT分区表(适用于现代系统),输入命令o创建MBR(DOS)分区表(传统分区表,适合旧系统或特殊需求)。其中:GPT分区表支持大于2TB的磁盘,且可以创建超过4个主分区,而MBR分区表对磁盘容量有2T限制,且最多只能创建4个主分区。

    # fdisk 常用命令
    g: 创建新的空GPT分区表
    o: 创建新的空MBR分区表
    p: 显示当前分区表
    v: 验证分区表
    n: 创建新分区
    d: 删除分区
    w: 将分区表写入磁盘并退出(保存更改)
    q: 退出,不保存更改
    

    创建分区表

  5. 输入p显示当前分区表。
    显示分区表

  6. 输入n,创建分区。
    创建分区1

  7. 输入p,查看分区情况。
    查看新分区

  8. 输入w,将改动写入磁盘后退出。
    保存更改

  9. 再次查看块设备情况。

    lsblk -f
    

    设备情况

  10. gdiskfdisk具有类型的操作逻辑,但gdisk是专为支持GPT而设计的工具,具有更优秀的特性,因此如果不是很旧的设备,推荐使用gdisk进行操作,特别是在处理大于2T的磁盘的时候。这里简单说明,相关操作与fdisk工具一样。

    # gdisk 常用命令
    c: 修改分区名称
    p: 显示当前分区表
    n: 创建新分区
    d: 删除分区
    v: 验证磁盘
    w: 将分区表写入磁盘并退出(保存更改)
    q: 退出,不保存更改
    

    查看磁盘

  11. 输入n,创建分区。
    分区

  12. 输入w,将改动写入磁盘后退出。
    保存更改

  13. 查看块设备情况。
    块设备情况

三、格式化分区

  1. 将数据存储到分区之前,必须使用某种文件系统对其进行格式化,以便操作系统能够使用分区,每种文件系统都有自己的格式化工具,linux系统中常用ext4文件系统,最大支持16TiB的文件,能够管理1EiB大小的分区,在默认情况下,ext4采用有序模式的日志方法,同样支持加密、压缩以及单目录下不限数量的子目录。

  2. 查看系统是否支持文件系统工具。

    type mkfs.文件系统名
    

    文件系统工具

  3. 格式化分区。

    sudo mkfs.ext4 /dev/sda1  # 需要sudo权限
    

    格式化分区

  4. 再次查看块设备情况。

    lsblk -f
    

    块设备情况

  5. 为分区创建好文件系统后,需要将其挂载到虚拟目录中的某个挂载点,以便在新分区中存储数据,可以使用mkdir命令创建一个新目录,也可以挂载到已有的任意目录。

    mkdir /media/sda1  # 创建挂载点
    sudo mount -t ext4 /dev/sda1 /media/sda1  # 临时挂载,重启系统后失效
    lsblk -f /dev/sda  # 查看块设备情况
    

    挂载

四、自动挂载分区

  1. 虽然使用mount命令挂载并使用-t选项指明挂载的文件系统类型,但重启系统后就失效了,配置/etc/fstab文件可以强制linux在启动时自动挂载文件系统

    vim /etc/fstab
    
  2. /etc/fstab中添加

    /dev/sda1 /media/sda1 ext4 defaults 0 0
    

    自动挂载

  3. 重启后使用命令mount查看挂载情况

    mount
    

    挂载情况

五、调整分区大小

  1. fdiskgdisk工具主要用来管理分区表,如果要调整分区大小,不仅需要修改分区表,还需要调整分区内的文件系统结构,这样就需要使用parted工具。当然也可以直接使用parted工具进行分区。

    # parted 常用指令
    print:      显示分区表、可用设备、剩余空间、所有分区或特殊分区
    resizepart: 改变分区的大小(缩小或扩展)
    rm:         删除分区
    quit:       退出
    
  2. 输入print,查看磁盘分区表。
    分区信息

  3. 使用resize2fs工具先调整文件系统的大小。

    sudo resize2fs /dev/sda1 3G
    

    缩小文件系统大小

  4. 使用df命令查看文件系统大小发生了变换。

    df -h /dev/sda1
    

    在这里插入图片描述

  5. 使用parted工具的resizepart命令调整分区大小。

    resizepart 1 3G  # 1:分区编号,3G:要缩小到的大小,剩余的7G空间变为未分配状态
    

    分区调整

  6. 使用同样的操作可以进行分区的扩展,前提是磁盘具有可扩展的空间。

    sudo resize2fs /dev/sda1 20G
    parted /dev/sda
    resizepart 1 20G # 10G扩展为20G
    
  7. 可以在缩小分区之后,将剩余未分配空间创建为一个新分区。

    mkpart primary ext4 3GB 10GB
    # primary: 分区类型(主分区)
    # ext4:    文件系统类型
    # 3GB:     起始位置
    # 10GB:    结束位置
    

    分区

小结

以上就是linux系统下使用命令行进行磁盘的分区及挂载操作,调整分区前请务必做好数据备份,以免误操作导致数据丢失,相关问题欢迎在评论区讨论!!!


http://www.ppmy.cn/ops/144354.html

相关文章

0.gitlab ubuntu20.04 部署问题解决

安装依赖: ① sudo apt-get update 出现: 解决方式: 去 /etc/apt/sources.list.d 这个目录删除或注释对应的list文件 第三方软件的源一般都以list文件的方式放在 /etc/apt/sources.list.d 这个目录 重新运行sudo apt-get update 安装…

sql-labs(21-25)

第21关 第一步 可以发现cookie是经过64位加密的 我们试试在这里注入 选择给他编码 发现可以成功注入 爆出表名 爆出字段 爆出数据 第22关 跟二十一关一模一样 闭合换成" 第 23 关 第二十三关重新回到get请求,会发现输入单引号报错,但是注释符…

分布式专题(8)之MongoDB存储原理多文档事务详解

一、MongoDB存储原理 存储引擎是数据库的组件,负责管理数据如何存储在内存和磁盘上,MongoDB支持多个存储引擎,因为不同的存储引擎对特定的工作负载表现更好,选择合适的存储引擎可以显著影响应用程序的性能。 1.1 WiredTiger介绍 …

Linux之磁盘管理相关命令

1、du 作用:查看文件和目录占用的磁盘空间情况 语法: # 显示目录下每个子目录的磁盘使用情况 du [选项] 目录/文件 # 例:查/root下一层的文件和目录大小 du --max-depth1 -ah /root选项: -h:以人们较易阅读的GBytes,…

Springboot的创建方式

一.idea直接从spring.io官网下载即可 勾选自己需要的模块WEB模块,springboot项目直接使用jar包创建就行。 注意idea2024使用jdk1.8的话会版本不匹配 idea2024用户可以用下面的第三个方式创建项目,阿里云 二.自己从spring官网下载再用idea打开 点击proje…

C# 趋势图:洞察其发展轨迹与未来走向

一、语言特性演进趋势 (一)性能提升 即时编译优化: 在当今的软件开发领域中,C# 编译器对于即时编译(JIT)技术的探索与发展从未停止脚步。随着技术的不断演进,其在代码分析和优化策略方面愈发显…

关于稀疏数据的模型选择

选择合适的模型是非常关键的。稀疏数据通常意味着许多特征值为零,这种情况下,如果不加以适当处理,某些模型可能会受到性能影响。因此,可以根据稀疏数据的特点选择适合的模型。常见的处理稀疏数据的建模方法包括: 线性…

黑客技术(网络安全)阶段一 操作系统核心知识点(三)

线程 在传统的操作系统中,每个进程都有一个地址空间和一个控制线程。事实上,这是大部分进程的定义。不过,在许多情况下,经常存在同一地址空间中运行多个控制线程的情形,这些线程就像是分离的进程。下面我们就着重探讨…