Linux 系统挂载数据盘小白教程 (适用于 CentOS/Ubuntu/Debian)
重要提示:操作前必读!
-
备份!备份!备份! 任何磁盘操作都有风险,操作前务必:
-
如果服务器有重要数据,创建整个服务器的快照 (推荐)。
-
或者,手动备份好重要数据 (如网站文件、数据库)。
-
-
操作有风险: 格式化(
mkfs
)操作会永久删除目标磁盘/分区上的所有数据!请务必确认你要操作的盘符是新添加的空白数据盘或确认可以清空的数据盘。 -
理解目标: 我们想把新添加的硬盘(称为数据盘)连接到系统的一个目录(如
/home
或/www
),这样就能在这个目录里存更多东西了。这个过程叫“挂载”。 -
确认盘符: 在执行命令前,必须知道你要挂载的硬盘在系统里叫什么名字(盘符)。通常新加的空硬盘叫
/dev/sdb
或/dev/vdb
。使用lsblk
或fdisk -l
命令查看。操作错误的盘符会导致数据丢失! (新手建议找有经验的人帮你确认盘符)
方法一:使用宝塔面板的自动挂载脚本 (推荐小白尝试)
这个方法相对简单,脚本会尝试帮你自动识别新磁盘并挂载到 /www
目录 (这是宝塔默认存放网站的地方)。
-
连接服务器: 使用 SSH 工具 (如 PuTTY, Xshell, FinalShell, 或者云服务器控制台的 Web SSH) 登录到你的 Linux 服务器。需要管理员权限。
-
选择命令: 根据你的操作系统类型,复制粘贴完整一行的命令到 SSH 窗口里,按回车执行:
-
CentOS 系统:
yum install wget -y && wget -O auto_disk.sh http://download.bt.cn/tools/auto_disk.sh && bash auto_disk.sh
-
yum install wget -y
: 安装一个叫wget
的工具 (-y
表示自动回答“是”)。如果已安装会跳过。 -
wget -O auto_disk.sh ...
: 下载宝塔的自动挂载脚本,并保存为当前目录下的auto_disk.sh
文件。 -
bash auto_disk.sh
: 运行这个脚本。
-
-
Ubuntu 系统:
wget -O auto_disk.sh http://download.bt.cn/tools/auto_disk.sh && sudo bash auto_disk.sh
-
sudo
: 表示以管理员权限运行后面的命令(Ubuntu 通常需要)。 -
其他部分同上。
-
-
Debian 系统:
wget -O auto_disk.sh http://download.bt.cn/tools/auto_disk.sh && bash auto_disk.sh
-
和 CentOS 命令类似。
-
-
-
等待执行: 脚本会自动运行。它会尝试:
-
找到新添加的磁盘(通常是
/dev/vdb
或/dev/sdb
)。 -
格式化这个磁盘(这会清空磁盘数据!)。
-
将格式化的磁盘挂载到
/www
目录。 -
修改系统配置文件 (
/etc/fstab
),让系统每次启动都自动挂载。
-
-
检查与重启 (建议):
-
脚本运行完成后,输入
df -h
命令查看磁盘使用情况。看看/www
对应的磁盘空间是不是你新加的数据盘大小。 -
为了确保挂载设置永久生效,强烈建议重启一次服务器:输入
reboot
命令,等待服务器重启完成。 -
重启后再次用
df -h
检查/www
是否还在。
-
方法二:手动挂载 (更灵活,但需要谨慎)
这个方法需要你明确知道盘符、分区号、挂载目录,并且非常小心格式化命令。仅在你清楚每一步在做什么,且确认目标磁盘可被清空时使用!
核心步骤解释:
假设我们有一个全新的、没有数据的磁盘 /dev/sdb
,我们想在它上面创建一个分区 (sdb1
),格式化成 Linux 常用的文件系统 (ext4
),并把它挂载到 /home
目录,让系统开机自动挂载。
-
(可选但通常需要) 创建分区:
-
使用
fdisk
或parted
工具在/dev/sdb
上创建一个分区 (例如/dev/sdb1
)。这步需要一点交互操作,新手建议使用方法一或查更详细的分区教程。(如果磁盘已有分区如/dev/sdb1
,跳过此步)
-
-
⚠️ 格式化分区 (危险!清空数据!):
mkfs.ext4 /dev/sdb1
-
mkfs.ext4
: 命令,意思是“制作一个 ext4 类型的文件系统”。就像给硬盘划格子、定规则。 -
/dev/sdb1
: 必须替换成你确认要格式化的分区的实际名称!(例如/dev/vdb1
)。 -
警告: 这条命令会永久删除
/dev/sdb1
分区上的所有数据! 只在新分区或确定不要数据的分区上运行!
-
-
设置开机自动挂载:
echo '/dev/sdb1 /home ext4 defaults 0 0' >> /etc/fstab
-
echo '...' >> /etc/fstab
: 把引号里的内容添加到/etc/fstab
文件末尾。这个文件告诉系统启动时要挂载哪些硬盘。 -
/dev/sdb1
: 要挂载的分区名称 (同上,替换成你的)。 -
/home
: 你想把这个分区挂载到哪个目录?这里例子是挂到/home
。重要选择:-
/home
: 通常存放用户文件。Ubuntu 用户特别注意: 你当前登录的用户很可能就在/home/你的用户名
目录下。直接挂载新盘到/home
会覆盖掉原来的/home
,导致你登录不了!Ubuntu 新手强烈建议挂载到其他目录,如/data
或/mnt/data
(需要先创建目录sudo mkdir /data
)。 -
/www
: 如果你是用类似宝塔这种一键安装包,网站文件通常在/www
。挂载到这里可以扩展网站空间。 -
其他目录: 你可以挂载到任何你喜欢的目录,比如
/data
。确保目标目录存在 (sudo mkdir /你的目录名
)。
-
-
ext4
: 文件系统类型,要和上一步格式化的类型一致。 -
defaults
: 使用默认的挂载选项。 -
0 0
: 一些高级设置,保持默认值 0 即可。
-
-
立即挂载并检查:
mount -a df -h
-
mount -a
: 根据/etc/fstab
文件的内容,尝试挂载所有列出的设备。这能立即测试你刚才的配置是否正确。 -
df -h
: 查看磁盘空间使用情况。仔细检查输出,看看你指定的挂载目录 (如/home
或/www
或/data
) 对应的磁盘空间是不是你新加的数据盘大小。
-
-
重启验证 (非常重要):
-
必须重启服务器 (
reboot
) 来验证配置是否真的能在开机时自动生效。 -
重启后,再次登录,运行
df -h
检查挂载的目录是否还在,空间是否正确。
-
关键注释说明 (小白版):
-
挂载 (Mounting): 就像给硬盘分区分配一个“门牌号”(目录),这样系统和你才能通过这个门牌号访问硬盘里的东西。
-
分区 (Partition): 一块大硬盘可以划分成几个逻辑部分,每个部分叫一个分区(如
sdb1
,sdb2
)。通常一块数据盘只分一个区 (sdb1
)。 -
文件系统 (Filesystem - ext4): 硬盘存储数据的规则和格式。
ext4
是 Linux 最常用的一种。格式化就是在硬盘/分区上建立这个规则。 -
/etc/fstab
: 系统里一个非常重要的配置文件。它记录了哪些硬盘分区需要在开机时自动挂载到哪些目录,以及用什么方式挂载。修改它能让挂载永久生效。 -
Ubuntu 的
/home
目录警告: 因为 Ubuntu 默认把用户文件放在/home/用户名
下。如果你把新硬盘挂载到/home
,会覆盖掉原来的/home
目录,导致系统找不到你原来的用户文件,可能无法登录!所以:-
如果你需要扩展
/home
空间,操作要非常谨慎,最好有详细备份并在非生产环境测试,或者有专家指导。 -
更安全的做法: 挂载到一个新创建的、空的目录,比如
/data
(sudo mkdir /data
),然后把你需要存大文件的东西(比如网站目录、数据库目录、下载目录)移动或设置到这个新目录/data
下面
-