在服务器管理或日常使用中,随着数据量的增长,为CentOS系统添加一块新的硬盘是一项非常常见且重要的操作,这不仅能扩展存储容量,还能通过将不同类型的数据(如系统文件、用户数据、数据库文件)分离到不同磁盘,来提升系统性能和数据管理的灵活性,本文将详细介绍从物理安装到系统配置的完整流程,帮助您干净、高效地为CentOS添加新硬盘。
第一步:识别新硬盘
在将新硬盘物理安装到服务器或计算机上后,首先需要让CentOS系统识别到它,登录系统后,可以使用以下几种命令来查看当前连接的存储设备。
lsblk
(List Block Devices)是一个现代化且直观的命令,它能以树状结构清晰地展示所有块设备。
lsblk
执行该命令后,您可能会看到类似以下的输出,假设在添加新硬盘前,系统只有一块sda
磁盘:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
安装新硬盘后(它被识别为sdb
),再次运行lsblk
,输出会多出一个设备:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 100G 0 disk
sdb
就是我们新添加的100G硬盘,它还没有任何分区(没有part
子项),记下这个设备名(/dev/sdb
),后续操作都将基于它。
第二步:磁盘分区
新硬盘在使用前必须进行分区,分区是将一个物理磁盘划分为一个或多个逻辑存储区域的过程。fdisk
是Linux下最经典和常用的分区工具。
使用以下命令启动对/dev/sdb
的分区操作:
sudo fdisk /dev/sdb
进入fdisk
交互式界面后,按照以下步骤输入命令(通常使用n
表示新建,p
表示主分区,w
表示保存并退出):
- 输入
n
创建一个新分区。 - 输入
p
选择创建主分区(Primary)。 - 输入分区号,直接回车选择默认的
1
。 - 输入起始扇区,直接回车选择默认值。
- 输入结束扇区,直接回车选择默认值,这将使用整个磁盘的所有空间。
- 输入
p
可以打印当前的分区表,确认分区信息无误。 - 输入
w
将分区表写入磁盘并退出。
操作完成后,系统会提示分区表已更新,再次运行lsblk
,您会看到sdb
下出现了一个名为sdb1
的分区。
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
...
sdb 8:16 0 100G 0 disk
└─sdb1 8:17 0 100G 0 part
第三步:格式化分区
分区创建后,它还只是一个原始的区块,需要被格式化成特定的文件系统(如ext4, XFS等)后才能存储数据,ext4是CentOS中最常用和稳定的文件系统。
使用mkfs.ext4
命令来格式化刚刚创建的/dev/sdb1
分区:
sudo mkfs.ext4 /dev/sdb1
这个过程会花费一些时间,具体取决于磁盘大小和速度,完成后,系统会输出类似“Writing superblocks and filesystem accounting information: done”的提示,表示格式化已完成。
第四步:挂载文件系统
格式化后的分区需要“挂载”到系统目录树中的一个目录(称为“挂载点”)上,才能通过该目录访问磁盘空间。
创建一个挂载点,我们计划将这块新硬盘用于存放数据,可以创建一个名为/data
的目录:
sudo mkdir /data
使用mount
命令将分区临时挂载到这个目录:
sudo mount /dev/sdb1 /data
挂载成功后,可以使用df -hT
命令查看,您会看到/dev/sdb1
已经挂载在/data
目录下,并显示了其文件系统类型、总大小、已用空间等信息。
df -hT | grep /data
输出示例:
/dev/sdb1 ext4 98G 61M 93G 1% /data
您已经可以向/data
目录写入文件了,但请注意,这种挂载方式是临时的,系统重启后会失效,为了实现开机自动挂载,需要进行下一步配置。
第五步:配置开机自动挂载
要让系统在每次启动时自动挂载新硬盘,需要编辑/etc/fstab
文件,这个文件记录了系统启动时需要挂载的文件系统信息。
为了确保挂载的稳定性,推荐使用分区的UUID(Universally Unique Identifier)而不是设备名(如/dev/sdb1
),因为设备名可能在某些情况下发生变化。
获取/dev/sdb1
分区的UUID:
sudo blkid /dev/sdb1
输出会类似这样:
/dev/sdb1: UUID="a1b2c3d4-e5f6-7890-1234-567890abcdef" TYPE="ext4" PARTUUID="..."
复制长串的UUID值,使用vi
或nano
等编辑器打开/etc/fstab
文件:
sudo vi /etc/fstab
在文件末尾添加一行,格式如下,各字段之间用Tab键或空格分隔。
设备标识 | 挂载点 | 文件系统类型 | 挂载选项 | dump | pass |
---|---|---|---|---|---|
UUID=你的UUID | /data | ext4 | defaults | 0 | 0 |
将你的UUID
替换为刚才复制的UUID,完整的行看起来像这样:
UUID=a1b2c3d4-e5f6-7890-1234-567890abcdef /data ext4 defaults 0 0
字段解释:
- 设备标识: 这里使用UUID,确保唯一性。
- 挂载点: 目标目录。
- 文件系统类型: 我们格式化成的
ext4
。 - 挂载选项:
defaults
是默认选项集,包含rw
,suid
,dev
,exec
,auto
,nouser
,async
,适用于大多数场景。 - dump:
0
表示不使用dump备份。 - pass:
0
表示开机时不进行磁盘检查,根分区通常设为1
。
保存并关闭/etc/fstab
文件,为了避免因配置错误导致下次启动失败,可以先执行以下命令测试fstab
文件是否正确,它会尝试挂载所有未挂载的条目:
sudo mount -a
如果没有任何错误输出,说明配置无误,您可以重启系统,或者直接使用df -hT
确认/data
目录已经挂载了新分区,它将在未来每次开机后自动生效。
相关问答FAQs
如果我希望将整块硬盘都用作一个分区,但不想使用fdisk
,有更简单的方法吗?
解答: 有的,对于整块硬盘用作一个分区的情况,可以使用parted
工具或直接格式化整个磁盘设备,您可以跳过分区步骤,直接将/dev/sdb
(而不是/dev/sdb1
)进行格式化:sudo mkfs.ext4 /dev/sdb
,在/etc/fstab
中,使用/dev/sdb
的UUID进行挂载即可,这种方法省去了分区步骤,但缺点是灵活性较差,未来无法在同一块磁盘上创建其他分区,对于大多数应用场景,标准的分区流程依然是推荐做法。
ext4
和XFS
文件系统有什么区别?在为新硬盘格式化时应该如何选择?
解答: ext4
和XFS
都是CentOS上优秀且成熟的企业级日志文件系统,但各有侧重。
- ext4:是ext文件系统的第四代,非常稳定可靠,是长期以来Linux的默认文件系统,它在处理大量小文件时性能良好,兼容性极佳,适合绝大多数通用场景。
- XFS:是一个高性能的64位日志文件系统,特别擅长处理大文件和高并发I/O操作,它在需要处理超大文件(如视频、图像处理)或高吞吐量场景(如数据库、虚拟机镜像存储)下表现更出色。
选择建议:对于常规的服务器存储、文件共享或Web应用,ext4
是一个安全、稳定且无需过多考虑的选择,如果您明确知道您的应用场景涉及大量大文件读写或需要极高的I/O性能,那么XFS
会是更好的选择,对于个人用户或通用服务器,坚持使用ext4
通常是最佳实践。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复