在 CentOS 桌面环境中添加一块新硬盘,是扩展存储空间、备份数据或搭建独立存储分区的常见需求,尽管图形化工具(如 GNOME Disks)可以简化部分流程,但掌握命令行操作方法不仅更为通用,而且能提供更深入的控制力和更清晰的执行过程,本文将详细介绍在 CentOS 桌面系统中,通过命令行添加一块新硬盘的完整步骤,涵盖从物理识别到最终挂载使用的全过程。
第一步:识别新硬盘
在将新硬盘物理安装到计算机并开机后,首先需要让操作系统识别这块磁盘,CentOS 系统会自动检测大多数新连接的存储设备,我们可以使用几个核心命令来查看系统中的磁盘列表。
最推荐的命令是 lsblk
(List Block Devices),它能以树状结构清晰地展示所有块设备及其分区、挂载点等信息。
lsblk
执行后,你会看到类似以下的输出:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 238.5G 0 disk
├─sda1 8:1 0 600M 0 part /boot/efi
└─sda2 8:2 0 238G 0 part /
sdb 8:16 0 465.8G 0 disk
在这个例子中,sda
是系统盘,它包含了 sda1
和 sda2
两个分区,并且已经挂载到文件系统中,而 sdb
是一块大小为 465.8G 的新磁盘,它下面没有任何分区,也没有挂载点,这通常就是我们需要操作的新硬盘,请务必根据磁盘大小来准确识别,避免误操作系统盘。
另一个传统但同样有效的命令是 fdisk -l
,它会列出所有磁盘的分区表信息。
sudo fdisk -l
这个命令的输出更为详细,但对于新手来说,lsblk
的输出通常更直观易懂,在后续步骤中,我们将假设新硬盘被识别为 /dev/sdb
。
第二步:磁盘分区
新硬盘在使用前必须进行分区,分区是将一块物理硬盘划分为一个或多个逻辑区域的过程,对于现代计算机和大容量硬盘,推荐使用 GPT(GUID Partition Table)分区格式,它取代了传统的 MBR(Master Boot Record),支持更大的容量和更多的分区,我们将使用 gdisk
工具来创建 GPT 分区。
启动 gdisk
使用以下命令启动gdisk
并指定目标磁盘(请将/dev/sdb
替换为你的实际磁盘名):sudo gdisk /dev/sdb
创建新分区
进入gdisk
交互界面后,按照提示进行操作:- 输入
n
创建一个新分区。 - 输入
p
选择主分区(通常默认即可)。 - 输入分区号,直接回车使用默认值
1
。 - 输入起始扇区,直接回车使用默认值。
- 输入结束扇区,直接回车使用默认值,这会使用整个磁盘剩余空间,你也可以指定大小,
+100G
表示创建一个 100GB 的分区。 - 输入分区类型,直接回车使用默认的
Linux filesystem
。
- 输入
保存并退出
- 输入
p
可以打印当前的分区表,确认无误。 - 输入
w
将分区表写入磁盘并退出。gdisk
会要求你确认,输入yes
即可。
- 输入
操作完成后,系统会提示分区表已更新,你可以再次运行 lsblk
查看,会发现 /dev/sdb
下多了一个名为 /dev/sdb1
的分区。
第三步:格式化分区
分区创建后,它还只是一个原始的“容器”,需要格式化成特定的文件系统才能存储数据,CentOS 默认使用 XFS 文件系统,它性能优异,特别适合处理大文件,你也可以选择经典的 EXT4。
格式化为 XFS 文件系统:
sudo mkfs.xfs /dev/sdb1
格式化为 EXT4 文件系统:
sudo mkfs.ext4 /dev/sdb1
格式化过程会持续几秒到几十秒,具体取决于磁盘大小和速度,完成后,这个分区就可以被挂载了。
第四步:挂载文件系统
挂载是将一个已格式化的分区关联到系统目录树中的一个特定目录(挂载点)的过程,之后,你就可以通过访问这个目录来读写硬盘上的数据。
创建挂载点
创建一个用作挂载点的目录,我们可以在根目录下创建一个名为data
的文件夹:sudo mkdir /data
执行挂载
使用mount
命令将分区挂载到刚刚创建的目录:sudo mount /dev/sdb1 /data
验证挂载
挂载成功后,可以使用df -hT
命令查看。-h
表示以人类可读的格式显示,-T
显示文件系统类型。df -hT /data
输出应包含
/dev/sdb1
的信息,显示其已挂载到/data
,并能看到文件系统类型和总容量、已用空间等。
新硬盘已经可以使用了,你可以向 /data
目录中复制或移动文件,但请注意,这种挂载方式是临时的,系统重启后会失效。
第五步:实现开机自动挂载
为了让系统在每次启动时自动挂载这个新分区,需要将挂载信息写入 /etc/fstab
文件中,这是 Linux 系统中用于管理静态文件系统信息的核心配置文件。
为了保证稳定性,强烈推荐使用分区的 UUID(Universally Unique Identifier)而不是设备名(如 /dev/sdb1
)来配置 fstab
,因为设备名可能会在插拔多个硬盘时发生变化。
获取分区的 UUID
使用blkid
命令查询分区的 UUID:sudo blkid /dev/sdb1
输出会类似这样:
/dev/sdb1: UUID="a1b2c3d4-e5f6-7890-1234-567890abcdef" TYPE="xfs"
,请复制这串 UUID。编辑 /etc/fstab 文件
使用文本编辑器(如vi
或nano
)打开/etc/fstab
文件:sudo vi /etc/fstab
在文件末尾添加一行,格式如下:
UUID=<你的UUID> <挂载点> <文件系统类型> <挂载选项> <dump> <pass>
根据我们的例子,添加的内容应该是:
UUID=a1b2c3d4-e5f6-7890-1234-567890abcdef /data xfs defaults 0 2
下表解释了各字段的含义:
字段 | 示例值 | 说明 |
---|---|---|
<设备> | UUID=... | 使用 UUID 是最可靠的方式。 |
<挂载点> | /data | 文件系统挂载到的目录。 |
<文件系统类型> | xfs | 分区时创建的文件系统,如 xfs , ext4 。 |
<挂载选项> | defaults | 使用默认选项(rw , suid , dev , exec , auto , nouser , async )。 |
<dump> | 0 | dump 工具备份设置,0 表示不备份。 |
<pass> | 2 | 开机时磁盘检查顺序,1 保留给根分区,其他分区设为 2 ,0 表示不检查。 |
测试 /etc/fstab 配置
在重启前,最好先测试一下fstab
配置是否正确,使用mount -a
命令,它会尝试挂载fstab
中所有未挂载的条目。sudo mount -a
如果命令没有任何输出,则表示配置无误,如果出现错误,请仔细检查
fstab
文件中的拼写和格式。
至此,新硬盘的添加、分区、格式化和永久挂载工作已全部完成,下次重启 CentOS 系统时,它会自动将 /dev/sdb1
分区挂载到 /data
目录,为你提供持久化的存储空间。
相关问答 FAQs
问1:如果我在使用 gdisk
或 fdisk
时不小心选错了磁盘并进行了分区,会导致数据丢失吗?能否恢复?
答: 是的,对错误的磁盘进行分区操作(特别是写入分区表 w
命令)会破坏原有的分区信息,导致数据无法被系统正常访问,这是一种逻辑上的数据丢失,物理数据本身可能并未立即被覆盖,因此有恢复的可能,一旦发生误操作,应立即停止对该磁盘的任何读写操作,关闭计算机,可以使用专业的数据恢复工具如 TestDisk
或 PhotoRec
来尝试扫描并重建分区表,如果数据至关重要,建议寻求专业数据恢复服务的帮助,他们拥有更专业的设备和技术,成功率更高,预防永远是最好的策略,操作前务必用 lsblk
和 fdisk -l
多次确认磁盘的标识符(如 /dev/sdb
)和大小。
问2:新硬盘挂载后,为什么普通用户无法在挂载点目录(如 /data
)下创建文件?
答: 这通常是由于目录权限问题导致的,当你使用 sudo mkdir /data
创建挂载点时,该目录的所有者是 root
用户,所属组是 root
组,默认权限可能只有 root
用户可以写入,要允许普通用户读写,你需要修改该目录的所有权或权限,最简单的方法是更改目录的所有者为你当前登录的用户,如果你的用户名是 centos
,可以执行:sudo chown centos:centos /data
这条命令将 /data
目录的所有者和所属组都改为 centos
用户,之后,该用户就可以在此目录下自由创建和删除文件了,如果你希望所有用户都能在此目录下读写,可以使用 chmod
命令修改权限,sudo chmod 777 /data
(但出于安全考虑,不推荐在生产环境中使用 777
权限)。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复