前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Linux入门】磁盘分区、格式化

【Linux入门】磁盘分区、格式化

原创
作者头像
参谋带个长
发布2023-12-19 07:44:42
4160
发布2023-12-19 07:44:42
举报

在进行磁盘管理操作时,必须慎重,要清楚自己在做什么。建议在操作之前对文件进行备份,或创建硬盘的快照、镜像,以便在出现意外时,最大限度的恢复数据。

本文主要介绍在 CentOS 7.x 下如何对磁盘进行分区、格式化操作。

如需创建云服务器CVM的云硬盘快照,可参考教程:【玩转云硬盘】云硬盘手动创建快照备份

相关命令

lsblk:显示磁盘列表

fdisk:磁盘分区(用于 MBR 分区表)

mkfs:磁盘格式化

显示磁盘列表命令 lsblk

lsblk 命令用于列出设备的信息,展示系统中的磁盘和分区信息,使用户能够快速了解磁盘的布局、分区的大小和挂载情况等。

命令格式:

代码语言:shell
复制
lsblk

命令示例:

代码语言:shell
复制
# 输入命令
lsblk

# 可能会返回以下内容
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1  208M  0 rom  
vda    253:0    0   40G  0 disk 
└─vda1 253:1    0   40G  0 part /

# vda 对应的 TYPE 为 disk ,表示是一块磁盘,下面的 └─vda1 对应的为 part ,表示依赖的分区

NAME:设备的名称 MAJ:MIN:设备的主次设备号,每个设备都有唯一的设备号,用于在内核中识别它 RM:设备是否可移除。0表示不可移除,1表示可移除 SIZE:设备的总大小 RO:设备是否为只读。0表示可读写,1表示只读 TYPE:设备的类型,例如磁盘(disk)、分区(part)或 rom 等 MOUNTPOINT:设备挂载的位置。如果设备没有被挂载,这一列将是空的

磁盘分区命令 fdisk(用于 MBR 分区表)

fdisk 命令用于创建、删除、查看和修改磁盘分区的命令,用于 MBR 分区,支持最大2TB的磁盘容量,且最多只能有四个主分区。如果分区表为 GPT ,则不能使用该命令。

需要注意的是,在进行磁盘分区操作时务必谨慎,做好备份、快照,以免数据丢失。

命令格式:

代码语言:shell
复制
# -l 参数:列出系统中所有磁盘设备的分区表信息以及设备名称
fdisk -l 

# 表示对设备进行分区操作(慎重)
fdisk 设备名称

以下对几种常见情况进行说明,并对数据盘进行分区操作。

1、仅有1块系统盘

代码语言:shell
复制
# 示例
fdisk -l

# 可能返回以下内容
Disk /dev/vda: 42.9 GB, 42949672960 bytes, 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0009ac89

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048    83886046    41941999+  83  Linux

Disk /dev/vda: 42.9 GB:表示硬盘 vda 有 42.9GB 大小 Disk label type: dos:表示硬盘分区表类型是DOS,也称为MBR /dev/vda1:表示硬盘 vda 有1个分区为 /dev/vda1

2、1块系统盘+1块数据盘,并且数据盘未分区

代码语言:shell
复制
# 示例
fdisk -l

# 可能返回以下内容
Disk /dev/vda: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0009ac89

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048   104857566    52427759+  83  Linux

Disk /dev/vdb: 75.2 GB, 75161927680 bytes, 146800640 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/vda: 53.7 GB:表示 vda 硬盘有 53.7 GB 大小 /dev/vda1:表示硬盘 vda 有1个分区为 /dev/vda1 Disk /dev/vdb: 75.2 GB:表示 vdb 硬盘有 75.2 GB 大小 该示例中并未出现 Disk label type :表示该硬盘没有分区信息

3、1块系统盘+1块数据盘,并且数据盘未分区,运行命令进行分区操作(慎重)

代码语言:shell
复制
# 格式
fdisk 设备名称

# 示例
fdisk /dev/vdb

# 可能返回以下内容
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x364c6ac4.

Command (m for help): (光标停留此处,等待指令输入)

# 输入 m 显示帮助信息,可能返回以下内容
Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   g   create a new empty GPT partition table
   G   create an IRIX (SGI) partition table
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

Command (m for help): 

常用指令功能如下 d:delete a partition,删除一个已存在的分区 n:add a new partition,创建一个新的分区 p:print the partition table,列出所有的分区信息 q:quit without saving changes,不保存更改退出 w:write table to disk and exit,保存更改并退出

代码语言:shell
复制
# 输入指令 n ,创建一个新的分区
Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): (光标停留此处,等待指令输入)

p 代表主分区(primary partition),e 代表扩展分区(extended partition)

假设此时要创建主分区,并将硬盘全大小都建立为一个分区,完整操作如下所示:

代码语言:shell
复制
Command (m for help): n (新建分区)
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p (创建主分区)
Partition number (1-4, default 1): 1(分区编号,默认为1)
First sector (2048-146800639, default 2048): (起始扇区值,直接回车使用默认值)
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-146800639, default 146800639): (结束扇区值,直接回车使用默认值)
Using default value 146800639
Partition 1 of type Linux and of size 70 GiB is set

Command (m for help): w(保存对分区表的更改并退出)
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

# 此时再使用命令查看
fdisk -l

# 可能返回以下内容
Disk /dev/vda: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0009ac89

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048   104857566    52427759+  83  Linux

Disk /dev/vdb: 75.2 GB, 75161927680 bytes, 146800640 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x364c6ac4

   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048   146800639    73399296   83  Linux

该示例中较之以前新出现了 Disk label type: dos:表示硬盘分区表类型是DOS,也称为MBR 该示例中较之以前新出现了 /dev/vdb1 ,表示硬盘 vdb 有1个分区为 /dev/vdb1

磁盘格式化命令 mkfs

磁盘格式化命令 mkfs 是 make file system 的缩写,可以将一个空的磁盘分区或者已经存在的文件系统格式化为指定的文件系统类型,如ext2、ext3、ext4、xfs等,需要特别注意的是:格式化命令会将操作的分区所有文件全部清除,务必谨慎操作,做好备份、快照,以免数据丢失

文件系统格式中 ext4 是目前主流 Linux 发行版的默认文件系统,xfs 则适用于大型文件服务器、数据库和高性能计算环境。

命令格式及示例:

代码语言:shell
复制
# 格式写法一
mkfs [-t 文件系统格式] 分区名称

# 示例,将指定分区格式化为 ext4 格式
mkfs -t ext4 /dev/vdb1

# 格式写法二
mkfs.系统格式 分区名称

# 示例,将指定分区格式化为 ext4 格式
mkfs.ext4 /dev/vdb1

# 可能返回以下内容,表示格式化操作成功
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
4587520 inodes, 18349824 blocks
917491 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2166358016
560 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000, 7962624, 11239424

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

以上两种格式化命令的写法都可以用来创建 ext4 文件系统。

mkfs.ext4 命令是专门为创建 ext4 文件系统而设计的,使用相对简单,只需指定要格式化的分区名称即可。

mkfs -t ext4 命令是使用 mkfs 命令并指定 -t ext4 参数来创建 ext4 文件系统。

我正在参与2023腾讯技术创作特训营第四期有奖征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 相关命令
  • 显示磁盘列表命令 lsblk
  • 磁盘分区命令 fdisk(用于 MBR 分区表)
    • 1、仅有1块系统盘
      • 2、1块系统盘+1块数据盘,并且数据盘未分区
        • 3、1块系统盘+1块数据盘,并且数据盘未分区,运行命令进行分区操作(慎重)
        • 磁盘格式化命令 mkfs
        相关产品与服务
        云硬盘
        云硬盘(Cloud Block Storage,CBS)为您提供用于 CVM 的持久性数据块级存储服务。云硬盘中的数据自动地在可用区内以多副本冗余方式存储,避免数据的单点故障风险,提供高达99.9999999%的数据可靠性。同时提供多种类型及规格,满足稳定低延迟的存储性能要求。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档