★Linux挂载硬盘(2T以上)-parted
前期说明
操作场景
本文以裸金属服务器的操作系统为“CentOS 7.4 64位”、云硬盘容量为3 TB举例,采用Parted分区工具为容量大于2 TB的数据盘设置分区。
MBR格式分区支持的磁盘最大容量为2 TB,GPT分区表最大支持的磁盘容量为18 EB,因此当为容量大于2 TB的磁盘分区时,请采用GPT分区方式。
对于Linux操作系统而言,当磁盘分区形式选用GPT时,fdisk分区工具将无法使用,需要采用parted工具。
注意:
首次使用云磁盘时,如果您未参考本章节对磁盘执行初始化操作,主要包括创建分区和文件系统等操作,那么当后续扩容磁盘时,新增容量部分的磁盘可能无法正常使用。
前提条件
已登录裸金属服务器。
已挂载数据盘至裸金属服务器,且该数据盘未初始化。
一、划分分区并挂载磁盘
本操作以该场景为例,当裸金属服务器挂载了一块新的数据盘时,采用parted分区工具为数据盘设置分区,分区形式设置为GPT,文件系统设为ext4格式,挂载在“/mnt/sdc”下,并设置开机启动自动挂载。
- 执行以下命令,查看新增数据盘。
[root@bms-centos74 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 253:0 0 40G 0 disk ├─vda1 253:1 0 1G 0 part /boot └─vda2 253:2 0 39G 0 part / vdb 253:16 0 3T 0 disk
表示当前的服务器有两块磁盘,“/dev/vda”是系统盘,“/dev/vdb”是新增数据盘。
- 执行以下命令,进入parted分区工具,开始对新增数据盘执行分区操作。
[root@bms-centos74 ~]# parted /dev/vdb GNU Parted 3.1 Using /dev/vdb Welcome to GNU Parted! Type 'help' to view a list of commands. (parted)
- 输入“p”,按“Enter”,查看当前磁盘分区形式。
(parted) p Error: /dev/vdb: unrecognised disk label Model: Virtio Block Device (virtblk) Disk /dev/vdb: 3299GB Sector size (logical/physical): 512B/512B Partition Table: unknown Disk Flags: (parted)
“Partition Table”为“unknown”表示磁盘分区形式未知。
- 输入以下命令,设置磁盘分区形式。
注意:
MBR支持的磁盘最大容量为2 TB,GPT最大支持的磁盘容量为18 EB,当前数据盘支持的最大容量为32 TB,如果您需要使用大于2 TB的磁盘容量,分区形式请采用GPT。
当磁盘已经投入使用后,此时切换磁盘分区形式时,磁盘上的原有数据将会清除,因此请在磁盘初始化时谨慎选择磁盘分区形式。
磁盘分区形式有MBR和GPT两种,大于2 TB的磁盘容量,请采用GPT分区方式:mklabel gpt
- 输入“p”,按“Enter”,设置分区形式后查看磁盘分区形式。
(parted) mklabel gpt (parted) p Model: Virtio Block Device (virtblk) Disk /dev/vdb: 3299GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags (parted)
- 输入“unit s”,按“Enter”,设置磁盘的计量单位为磁柱。
- 以为整个磁盘创建一个分区为例,输入“mkpart opt 2048s 100%”,按“Enter”。
注:“2048s”表示磁盘起始容量,“100%”表示磁盘截止容量,此处仅供参考,您可以根据业务需要自行规划磁盘分区数量及容量!!
(parted) mkpart opt 2048s 100% Warning: The resulting partition is not properly aligned for best performance. Ignore/Cancel? Cancel
注:若出现以上性能优化提示,请先输入“Cancel”,停止分区。然后找出对应磁盘最优性能的初始磁柱值,再使用该值进行分区即可。本示例中性能最优的初始磁柱值即为2048s,因此系统没有该提示。
- 输入“p”,按“Enter”,查看新建分区的详细信息。
(parted) p Model: Virtio Block Device (virtblk) Disk /dev/vdb: 6442450944s Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 2048s 6442448895s 6442446848s opt
表示新建分区“dev/vdb1”的详细信息。
- 输入“q”,按“Enter”,退出parted分区工具。
- 执行以下命令,查看磁盘分区信息。
[root@bms-centos74 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 253:0 0 40G 0 disk ├─vda1 253:1 0 1G 0 part /boot └─vda2 253:2 0 39G 0 part / vdb 253:16 0 3T 0 disk └─vdb1 253:17 0 3T 0 part
此时可以查看到新建分区“/dev/vdb1”。
- 执行以下命令,将新建分区文件系统设为系统所需格式。
mkfs -t 文件系统格式 /dev/vdb1
以设置文件系统为“ext4”为例(其他格式见附录):
mkfs -t ext4 /dev/vdb1
[root@bms-centos74 ~]# mkfs -t 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 201326592 inodes, 805305856 blocks 40265292 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=2952790016 24576 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, 20480000, 23887872, 71663616, 78675968, 102400000, 214990848, 512000000, 550731776, 644972544 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done
格式化需要等待一段时间,请观察系统运行状态,不要退出。(更多类型格式化见文章末尾~)
说明:
不同文件系统支持的分区大小不同,请根据您的业务需求选择合适的文件系统。
- 执行以下命令,新建挂载点。
mkdir /mnt/sdc
- 执行以下命令,将新建分区挂载到12中新建的挂载点下。
mount /dev/vdb1 挂载点
以挂载新建分区至“/mnt/sdc”为例:
mount /dev/vdb1 /mnt/sdc
- 执行以下命令,查看挂载结果。
[root@bms-centos74 ~]# df -TH Filesystem Type Size Used Avail Use% Mounted on /dev/vda2 ext4 42G 1.5G 38G 4% / devtmpfs devtmpfs 2.0G 0 2.0G 0% /dev tmpfs tmpfs 2.0G 0 2.0G 0% /dev/shm tmpfs tmpfs 2.0G 8.9M 2.0G 1% /run tmpfs tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup /dev/vda1 ext4 1.1G 153M 801M 17% /boot tmpfs tmpfs 398M 0 398M 0% /run/user/0 /dev/vdb1 ext4 3.3T 93M 3.1T 1% /mnt/sdc
表示新建分区“dev/vdb1”已挂载至“/mnt/sdc”。
二、设置开机自动挂载磁盘
如果您需要在裸金属服务器系统启动时自动挂载磁盘,不能采用在/etc/fstab直接指定 /dev/vdb1的方法,因为云中设备的顺序编码在关闭或者开启服务器过程中可能发生改变,例如/dev/vdb1可能会变成/dev/vdb2。推荐使用UUID来配置自动挂载数据盘。
磁盘的UUID(Universally Unique Identifier)是Linux系统为磁盘分区提供的唯一的标识字符串。
- 执行如下命令,查询磁盘分区的UUID。
blkid 磁盘分区
以查询磁盘分区“/dev/vdb1”的UUID为例:
blkid /dev/vdb1
回显类似如下信息:
方式一:
[root@bms-centos74 ~]# blkid /dev/vdb1 /dev/vdb1: UUID="bdd29fe6-9cee-4d4f-a553-9faad281f89b" TYPE="ext4" PARTLABEL="opt" PARTUUID="c7122c92-ed14-430b-9ece-259920d5ee74"
方式二:
ll /dev/disk/by-uuid
方式三:
lsblk -f表示“/dev/vdb1”的UUID。
- 执行以下命令,使用VI编辑器打开“fstab”文件(按“i”,进入编辑模式。将光标移至文件末尾,按“Enter”,添加如下内容。)。
vi /etc/fstab
- 将光标移至文件末尾,按“Enter”,添加如下内容。
UUID=bdd29fe6-9cee-4d4f-a553-9faad281f89b /mnt/sdc ext4 defaults 0 2
# 对fstab进行说明: <file system> <mount point> <type> <options> <dump> <pass> 1 2 3 4 5 6 1. 指代文件系统的设备名,最初,该字段只包含待挂载分区的设备名(如/dev/sda1)。现在,除设备名外,还可以包含LABEL或UUID 2. 文件系统挂载点,文件系统包含挂载点下整个目录树结构里的所有数据,除非其中某个目录又挂载了另一个文件系统 3. 文件系统类型,下面是多数常见文件系统类型(ext3,tmpfs,devpts,sysfs,proc,swap,vfat) 4. mount命令选项,mount选项包括noauto(启动时不挂载该文件系统)和ro(只读方式挂载文件系统)等。在该字段里添加用户或属主选项,即可允许该用户挂载文件系统。多个选项之间必须用逗号隔开。其他选项的相关信息可参看mount命令手册页(-o选项处) 5. 转储文件系统,该字段只在用dump备份时才有意义。数字1表示该文件系统需要转储,0表示不需要转储 6. 文件系统检查,该字段里的数字表示文件系统是否需要用fsck检查。0表示不必检查该文件系统,数字1示意该文件系统需要先行检查(用于根文件系统)。数字2则表示完成根文件系统检查后,再检查该文件系统
4.按“ESC”后,输入:wq,按“Enter”。
保存设置并退出编辑器。
附录一、
NTFS格式:
(引用:一、11.)
Ubuntu:
Ubuntu 9.10源中的ntfsprogs是2.0版本,这个版本已经full support NTFS read/write。 1、安装ntfsprogs sudo apt-get install ntfsprogs 2、使用下面命令中任何一个格式化 sudo mkfs -t ntfs /dev/sdb1 (或 sudo mkfs.ntfs /dev/sdb1 或 sudo mkntfs /dev/sdb1) 2.1、*如果需要快速格式化加上-f参数 sudo mkntfs -f /dev/sdb1 |
Centos:
1、安装ntfsprogs |
摘自:
https://support.huaweicloud.com/intl/zh-cn/usermanual-bms/bms_umn_0028.html
https://blog.51cto.com/u_15064650/3941566
https://blog.51cto.com/suchalin/1045721
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?