文章目录
- 一、简介
- 二、硬盘分区
- 三、格式化分区
- 四、自动挂载分区
- 五、调整分区大小
- 小结
一、简介
创建磁盘分区首先需要找出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
二、硬盘分区
这里主要关注两种常用的组织和管理分区的工具:fdisk
和gdisk
,fdisk是一个交互式程序,允许输入命令来逐步完成磁盘分区操作,它可以在任何存储设备上创建和管理分区,但是,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
-
gdisk
和fdisk
具有类型的操作逻辑,但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
五、调整分区大小
-
fdisk
和gdisk
工具主要用来管理分区表,如果要调整分区大小,不仅需要修改分区表,还需要调整分区内的文件系统结构,这样就需要使用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系统下使用命令行进行磁盘的分区及挂载操作,调整分区前请务必做好数据备份,以免误操作导致数据丢失,相关问题欢迎在评论区讨论!!!