在Linux系统中,将一块新的硬盘或存储设备接入系统并使其可用,需要经过一个被称为“挂载”的过程,对于广泛使用的服务器发行版CentOS而言,掌握硬盘挂载是系统管理的一项基础且核心的技能,本文将详细介绍在CentOS系统中,从识别新硬盘到实现开机自动挂载的完整流程,确保操作过程清晰、安全、高效。
第一步:识别新硬盘
当物理硬盘或虚拟硬盘被添加到系统后,首要任务是让系统识别它,CentOS提供了多种工具来查看系统中的磁盘设备,其中lsblk
(List Block Devices)命令是现代Linux发行版中最推荐的方式,因为它以树状结构清晰地展示了磁盘及其分区关系。
打开终端,执行以下命令:
lsblk
输出结果可能如下所示:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 19.5G 0 part
├─centos-root 253:0 0 17.5G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 50G 0 disk
从输出中,我们可以看到系统有两块磁盘:sda
和sdb
。sda
是系统盘,已经分区并挂载,而sdb
的大小为50G,其下没有任何分区(part
)和挂载点(MOUNTPOINT
),这正是我们需要操作的新硬盘,请记下它的设备名,这里是/dev/sdb
。
第二步:对新硬盘进行分区
一块全新的硬盘通常需要先进行分区才能被格式化和使用。fdisk
是Linux中最经典、最常用的磁盘分区工具,我们将使用它来为/dev/sdb
创建一个主分区。
执行以下命令启动fdisk
:
fdisk /dev/sdb
进入fdisk
的交互式界面后,按照以下步骤操作:
- 输入
n
创建一个新分区。 - 输入
p
选择创建主分区。 - 输入分区号,直接按回车键使用默认的
1
。 - 输入起始扇区,直接按回车键使用默认值。
- 输入结束扇区,直接按回车键使用默认值,这将使用整个磁盘的空间。
- 输入
w
将分区表写入磁盘并退出。
操作流程示意:
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-104857599,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-104857599,默认为 104857599):
将使用默认值 104857599
分区 1 已设置为 Linux 类型,大小设为 50 GiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
分区完成后,再次使用lsblk
命令查看,会发现/dev/sdb
下多了一个名为sdb1
的分区。
第三步:格式化分区
分区创建后,它还只是一个“容器”,需要为其指定一种文件系统(如ext4, xfs, ntfs等)才能存储数据,在CentOS中,ext4
是一个非常稳定和广泛选择的文件系统,我们使用mkfs.ext4
命令来格式化刚刚创建的/dev/sdb1
分区。
mkfs.ext4 /dev/sdb1
这个过程会根据磁盘大小花费一些时间,格式化完成后,分区就准备好了。
第四步:挂载分区到指定目录
挂载的本质是将一个分区与文件系统中的一个目录(挂载点)关联起来,此后,对该目录的所有读写操作实际上都是在操作这个硬盘分区。
创建一个用作挂载点的目录,挂载点会创建在/mnt
或/media
目录下,我们创建一个名为data
的目录:
mkdir /mnt/data
使用mount
命令将/dev/sdb1
分区挂载到/mnt/data
目录:
mount /dev/sdb1 /mnt/data
为了验证挂载是否成功,可以使用df -hT
命令查看已挂载的文件系统:
df -hT | grep sdb1
输出应类似如下,表明/dev/sdb1
已成功挂载到/mnt/data
,文件系统类型为ext4
:
/dev/sdb1 ext4 50G 53M 47G 1% /mnt/data
你可以向/mnt/data
目录中写入文件,这些数据都将被保存在新硬盘上,但请注意,这种挂载方式是临时的,系统重启后会失效。
第五步:实现开机自动挂载
为了让硬盘在系统重启后依然能自动挂载,我们需要修改/etc/fstab
文件。fstab
(File System Table)是Linux系统用来定义文件系统静态信息的配置文件。
推荐使用分区的UUID(Universally Unique Identifier)来标识设备,因为设备名(如/dev/sdb1
)可能会在添加或删除其他设备后发生变化,而UUID是永久唯一的。
获取/dev/sdb1
分区的UUID:
blkid /dev/sdb1
输出结果如下,复制引号中的UUID字符串:
/dev/sdb1: UUID="a1b2c3d4-e5f6-7890-1234-567890abcdef" TYPE="ext4"
使用文本编辑器(如vi
或nano
)打开/etc/fstab
文件:
vi /etc/fstab
在文件末尾添加一行,内容如下:
UUID="a1b2c3d4-e5f6-7890-1234-567890abcdef" /mnt/data ext4 defaults 0 0
这行配置包含六个字段,其含义如下表所示:
字段 | 示例值 | 说明 |
---|---|---|
设备文件 | UUID="..." | 推荐使用UUID,确保设备唯一性 |
挂载点 | /mnt/data | 挂载的目标目录 |
文件系统类型 | ext4 | 必须与格式化时指定的类型一致 |
挂载选项 | defaults | 使用默认挂载选项(rw, suid, dev, exec, auto, nouser, async) |
备份 | 0 | 不使用dump 工具进行备份 |
检查 | 0 | 开机时不使用fsck 进行磁盘检查 |
保存并关闭/etc/fstab
文件,在重启系统验证之前,可以先执行mount -a
命令,该命令会读取/etc/fstab
文件并尝试挂载所有未挂载的条目,如果没有报错,说明配置正确,至此,新硬盘的挂载和开机自启配置已全部完成。
相关问答FAQs
问题1:如何安全地卸载一个已经挂载的硬盘?
解答: 要卸载一个硬盘,可以使用umount
命令,确保没有任何进程正在使用该挂载点下的文件或目录,执行以下命令:
umount /mnt/data
或者指定设备名进行卸载:
umount /dev/sdb1
如果系统提示“target is busy”(目标繁忙),说明仍有进程占用,可以使用lsof /mnt/data
或fuser -mv /mnt/data
命令查看是哪个进程在占用,在紧急情况下,可以使用umount -l /mnt/data
进行“懒卸载”,它会立即分离挂载点,等到设备不再繁忙时才真正完成卸载操作。
问题2:为什么重启后我的硬盘没有自动挂载?
解答: 这个问题通常由/etc/fstab
文件中的配置错误引起,请按以下步骤排查:
- 检查语法错误:
fstab
文件对格式要求严格,确保每个字段之间用空格或制表符分隔,没有多余的空格或拼写错误。 - 检查UUID: 确认
fstab
中填写的UUID与blkid
命令查到的完全一致,UUID错误是最常见的原因。 - 检查挂载点: 确保挂载点目录(如
/mnt/data
)确实存在。 - 查看系统日志: 如果以上都无误,可以查看系统日志来定位问题,执行
journalctl -xe
或dmesg | grep mount
,通常能找到开机挂载失败时的详细错误信息,根据错误提示进行修复即可。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复