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

 更新时间:2026年02月09日 09:06:55   作者:饭来_  
本文介绍了Linux系统下磁盘分区及挂载的操作,包括硬盘分区工具(如fdisk、gdisk)、分区表类型(MBR、GPT)、文件系统格式化(如ext4)、自动挂载(通过/etc/fstab)以及分区大小调整(使用parted工具)

一、简介

创建磁盘分区首先需要找出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

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

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

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

fdisk -l  # 需要sudo权限

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

fdisk /dev/sda

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

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

输入p显示当前分区表。

输入n,创建分区。

输入p,查看分区情况。

输入w,将改动写入磁盘后退出。

再次查看块设备情况。

lsblk -f

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

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

输入n,创建分区。

输入w,将改动写入磁盘后退出。

查看块设备情况。

三、格式化分区

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

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

type mkfs.文件系统名

格式化分区。

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

再次查看块设备情况。

lsblk -f

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

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

四、自动挂载分区

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

vim /etc/fstab

/etc/fstab中添加

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

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

mount

五、调整分区大小

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

# parted 常用指令
print:      显示分区表、可用设备、剩余空间、所有分区或特殊分区
resizepart: 改变分区的大小(缩小或扩展)
rm:         删除分区
quit:       退出

输入print,查看磁盘分区表。

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

sudo resize2fs /dev/sda1 3G

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

df -h /dev/sda1

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

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

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

sudo resize2fs /dev/sda1 20G
parted /dev/sda
resizepart 1 20G # 10G扩展为20G

可以在缩小分区之后,将剩余未分配空间创建为一个新分区。

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

总结

以上就是linux系统下使用命令行进行磁盘的分区及挂载操作,调整分区前请务必做好数据备份,以免误操作导致数据丢失。

希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Linux使用grub命令行引导进入windows系统

    Linux使用grub命令行引导进入windows系统

    这篇文章介绍了在误删Linux EFI引导后如何使用GRUB命令行进入Windows系统的方法,步骤包括设置启动目录、使用chainloader加载Windows启动文件、以及在GRUB命令行无响应时如何重启
    2026-01-01
  • 检测、清除并预防Linux系统中的恶意软件的完整指南

    检测、清除并预防Linux系统中的恶意软件的完整指南

    在Linux系统中,尽管其安全性较高,但仍可能受恶意软件(如病毒、木马、勒索软件和后门程序)攻击,以下是检测、清除和预防Linux系统中恶意软件的完整指南,需要的朋友可以参考下
    2026-01-01
  • 详解linux grep命令

    详解linux grep命令

    本篇文章主要介绍了linux grep命令,现在分享给大家,也给大家做个参考。正在学习的同学可以了解一下。
    2016-11-11
  • Apache下分析ab性能测试结果

    Apache下分析ab性能测试结果

    本文详细讲解了Apache下分析ab性能测试结果,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-12-12
  • 如何在 CentOS/RHEL 系统中使用带 VLAN 标记的以太网卡

    如何在 CentOS/RHEL 系统中使用带 VLAN 标记的以太网卡

    这篇文章主要介绍了如何在 CentOS/RHEL 系统中使用带 VLAN 标记的以太网卡,有对这方面感兴趣的同学,可以跟随小编一起来研究学习下吧
    2020-12-12
  • Linux系统特殊权限和通配符及特殊字符使用详解

    Linux系统特殊权限和通配符及特殊字符使用详解

    本文概述Linux权限掩码、SUID/SGID设置及通配符(如~、.、..)与引号(单/双引号)的使用区别,结合应用案例与练习题,帮助理解文件目录权限控制和命令字符串处理技巧
    2025-08-08
  • Linux系统crontab定时运行shell脚本失败的问题及解决

    Linux系统crontab定时运行shell脚本失败的问题及解决

    这篇文章主要介绍了Linux系统crontab定时运行shell脚本失败的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • Linux通过uptime查看系统负载是否过高的方法

    Linux通过uptime查看系统负载是否过高的方法

    uptime 命令是Linux系统中一个非常基础且重要的工具,它主要用于获取主机的运行时间和查询系统的负载情况,通过这个命令,用户可以快速了解服务器的稳定性、当前活跃的用户数量以及系统的平均负载,所以本文给大家介绍了Linux通过uptime查看系统负载是否过高的方法
    2025-09-09
  • Linux部署python爬虫脚本,并设置定时任务的方法

    Linux部署python爬虫脚本,并设置定时任务的方法

    今天小编就为大家分享一篇Linux部署python爬虫脚本,并设置定时任务的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • 解读现代Linux发行版为何忽略Shell脚本的SUID位

    解读现代Linux发行版为何忽略Shell脚本的SUID位

    现代Linux系统禁用Shell脚本的SUID权限,因内核执行模型差异导致权限无法传递至解释器进程,历史漏洞如环境变量中毒和命令注入促使安全设计转向编译型语言或sudo/setcap等更可控的权限管理方案
    2025-09-09

最新评论