GCP账单账号 GCP谷歌云挂载云硬盘
前言:别被“挂载”两个字吓到
在 GCP(Google Cloud Platform)里说“挂载云硬盘”,很多人脑海会立刻响起:Linux、分区、mkfs、fstab、权限……然后表情就从“我会”变成了“我再想想”。其实不用太慌。所谓“挂载”,本质上就是把一块云端的块存储设备(比如 Persistent Disk)接到虚拟机操作系统里,再通过文件系统把它变成你能读写的目录。
你可以把它想成:云硬盘是“快递箱”,挂载就是把快递箱的内容通过“门”接进你家客厅。箱子你可能已经收到了(磁盘已创建),也可能还在路上(磁盘还没附加)。接下来你要做的,是在门口装上铰链(识别设备)、把箱子拆开成可用的空间(分区/格式化)、最后把门装好以后下次自动开(fstab 自动挂载)。
先搞清楚:GCP里“云硬盘”到底是什么
GCP账单账号 在 GCP 上,通常我们说的“云硬盘”指的是Compute Engine 的持久性磁盘 Persistent Disk。它不是你在浏览器里看到的“目录”,而是以块设备形式存在。
所以你会经历两段式任务:
- GCP侧:把磁盘“附加”到某台虚拟机(实例)上。
- Linux侧:在虚拟机里识别该磁盘设备,再创建文件系统并挂载到某个目录。
很多人卡住就是卡在“我以为点一下控制台就好了”,但实际上控制台只负责“把箱子递到你手上”,你还得在机器里“打开箱子并放进生活”。
准备工作:你需要哪些前提条件
1)确认你有权限
你需要至少能对 Compute Engine 执行磁盘相关操作,比如附加磁盘、查看设备等。最常见的情况是你有足够权限查看并管理该项目下的资源。若你是团队环境,权限不足时就会出现“为什么我点不了附加/修改”的尴尬局面。
2)明确磁盘类型与行为
Persistent Disk 常见有不同类型(比如 pd-standard、pd-ssd)。不同类型主要影响性能/成本;但在挂载流程上,基本一致。
3)区分“新盘”和“已有数据盘”
这是关键中的关键:
- 新盘:通常磁盘里没有文件系统,你需要分区+格式化。
- 已有数据盘:如果你误格式化,那你的数据就会变成“美妙的回忆”。所以在格式化前务必确认是否已经有文件系统、分区表、数据是否需要保留。
步骤一:在 GCP 控制台创建/选择云硬盘
你可以选择两条路:
- 磁盘已经存在,直接附加到实例;
- 磁盘不存在,先创建再附加。
1)创建新磁盘(如果你还没有)
进入 Compute Engine > Disks(磁盘)。点击创建磁盘,选择:
- 区域/机房(通常与你的实例保持一致,尤其是区域性资源);
- 大小;
- 类型(标准/SSD 等)。
创建完成后,进入下一步:把它挂到实例上。
GCP账单账号 2)附加磁盘到虚拟机
进入 Compute Engine > VM instances(虚拟机)。找到你的目标实例,点击编辑或直接选择磁盘附加选项。
附加时你通常需要指定:
- 要附加的磁盘(名称/资源);
- 挂载方式(SATA/独立块设备等,默认即可,现代系统一般不需要你纠结);
- 可选:设置磁盘的设备名称(不同系统显示的设备名可能不同)。
附加完成后,别急着在控制台显示“完成”就当成大功告成。真正的挂载在实例里做。
步骤二:在实例上识别新磁盘设备
登录你的 GCE 实例(SSH)。然后执行下面这套“侦察行动”。
1)查看是否出现新块设备
常用命令:
lsblk:一眼看出块设备与挂载点情况。sudo fdisk -l:更详细地看分区表与磁盘信息。
你会看到类似这样的结构(示例):
- /dev/sdb(可能是你新附加的磁盘)
- /dev/sda(系统盘,通常已经在用)
如果你不确定哪个是新盘:你可以在附加前记录一次 lsblk 输出,附加后再对比差异。人类最擅长的技能之一就是“对比法”。
2)确认设备未被分区/未格式化(新盘常见)
如果 lsblk 显示类似:
- /dev/sdb(没有 sdb1、sdb2 这种分区条目)
那大概率就是新盘,需要分区并格式化。
如果已经出现分区(例如 /dev/sdb1),那你就要判断它是否已经有文件系统。如果你确认是数据盘,那就不要随便格式化。
GCP账单账号 步骤三:分区(仅对新盘或需要调整分区的情况)
多数情况下,你可以使用 fdisk 或 parted。这里用 fdisk 举例。
警告:分区操作请以你的设备名为准
最常见灾难现场通常是:你以为操作的是 /dev/sdb,结果实际敲到 /dev/sda。那种场景下,系统可能直接“安静”。所以在开始前务必核对设备名。
示例:在 /dev/sdb 上创建一个主分区
GCP账单账号 假设你的新磁盘是 /dev/sdb:
sudo fdisk /dev/sdb- 在交互界面中按顺序操作:新建分区(n)-> 选择分区类型(默认主分区即可)-> 分区起始/结束(通常直接回车使用默认最大范围)-> 写入分区表(w)。
完成后再执行 lsblk 看看是否出现 /dev/sdb1。
步骤四:格式化(新盘必须,数据盘慎重)
创建好分区后,新盘还不能直接挂载使用,因为它没有文件系统。你需要格式化。
选择文件系统:常见是 ext4
一般建议用 ext4。命令类似:
sudo mkfs.ext4 /dev/sdb1
如果你有特定需求(比如需要 xfs),也可以用对应的 mkfs 工具。但大多数“普通业务”场景 ext4 就很稳。
如果是已有数据盘怎么办?
如果你发现磁盘已有分区,你可以先探测文件系统类型:
sudo blkid /dev/sdb1
如果 blkid 能识别出文件系统(比如 ext4),且你确认里面有数据,那就不要执行 mkfs。你应该直接进入挂载步骤。
步骤五:挂载到目录
现在终于到“挂载”的核心舞台:把设备挂到某个目录,比如 /mnt/data。
1)创建挂载点目录
sudo mkdir -p /mnt/data
2)执行挂载
sudo mount /dev/sdb1 /mnt/data
GCP账单账号 3)验证挂载是否成功
df -h:看挂载后的容量。ls -l /mnt/data:看目录是否可访问。- 简单写入测试:
touch /mnt/data/testfile,再确认文件是否存在。
如果都正常,恭喜你,箱子已经被打开并放进了客厅。下一步是“让它重启后还在”。
步骤六:配置开机自动挂载(fstab)
如果你不配置 fstab,那么重启实例后你会发现磁盘“消失”。它不是坏了,只是系统在重启时没有自动挂载。
为什么建议用 UUID,而不是直接写 /dev/sdb1
设备名在某些情况下可能变化(尤其是你有多块磁盘、或者硬件枚举顺序变化)。UUID 更稳定。
1)获取 UUID
sudo blkid /dev/sdb1
你会看到类似 UUID="xxxx-xxxx" 的字段。
2)编辑 /etc/fstab
sudo nano /etc/fstab(或用 vi/emacs)
在文件末尾添加一行,示例:
UUID=你的UUID /mnt/data ext4 defaults,nofail 0 2
解释一下:
- nofail:即使挂载失败也不至于让系统卡死在启动阶段。
- 最后两个数字:通常
0 2表示是否参与 dump 与文件系统自检顺序(一般 ext4 用 2)。
3)用 mount 测试 fstab 配置
sudo mount -a
如果没有报错,就基本稳了。
步骤七:常见坑位排查(你迟早会遇到,但我们提前帮你躲开)
坑 1:挂载时报错“找不到设备”
可能原因:
- 你写错了设备名(比如 /dev/sdb1 写成 /dev/sdc1)。
- 磁盘还没完成附加。
- 分区还没创建或你写错了分区号。
检查方式:
- 再次
lsblk看设备是否存在。 - 用
blkid查看分区 UUID 或文件系统。
坑 2:挂载成功但权限不对,应用无法写入
挂载点权限默认继承文件系统格式化时的默认权限(通常根目录属主是 root)。如果你的业务是以某个用户或服务运行(比如 nginx、tomcat、自定义用户),可能需要调整。
比如:
sudo chown -R youruser:yourgroup /mnt/datasudo chmod -R 755 /mnt/data(谨慎使用,按需调整更合理)
记得:不要乱 chmod,权限太开放可能引入安全问题。我们追求稳定,不追求“全世界都能写”。
坑 3:数据盘误格式化导致数据丢失
这个坑不需要解释太多,因为解释也救不了。建议你在格式化前做两件事:
- 先看
blkid是否已有文件系统。 - 确认挂载点是否是你想要的磁盘,并核对容量与期望一致。
真的不确定,就停下来问一句同事/看文档/对比现有配置。谨慎一点,能换来“人生不重启”。
坑 4:fstab 写错导致重启后无法进入系统(或挂载报错刷屏)
为了避免这种情况,建议:
- 先用
mount -a测试。 - 确保行格式正确(UUID、挂载点、文件系统类型、参数、dump、fsck 字段)。
- 可以在参数中加入
nofail,降低启动风险。
坑 5:扩容磁盘后,文件系统容量没变
有的人做了磁盘扩容(GCP 层扩容),但在 Linux 里 df -h 看着容量没涨。那通常是因为你只扩了块设备/分区,但没有让文件系统扩展。
一般流程会涉及:
- 重新调整分区(或确认分区已覆盖新容量);
- 对文件系统执行扩容命令(ext4 用 resize2fs,XFS 用 xfs_growfs 等)。
如果你遇到该问题,告诉我你用的文件系统类型(ext4/xfs)以及当前分区号,我可以按你的情况给出具体命令。
进阶:更专业一点的挂载策略
使用挂载选项提升稳定性
你可以在 fstab 里加一些更适合生产的选项。例如:
defaults:常规默认参数。noatime:减少 atime 写入,提升性能(但会影响 atime 记录)。- 根据需求加
discard(如果你的磁盘与内核支持,且你希望支持 TRIM)。
别所有选项都一次性上满。先从稳定可用开始,然后按需求优化。
通过标签/命名让管理更清晰
如果你管理多块磁盘,建议你在 GCP 创建磁盘时用清晰命名(比如 data-prod-01),并在系统里挂载点也统一规范(比如 /mnt/data-prod-01)。这样你未来排障时不会在“哪块盘是哪个业务”上耗费时间。
小结:把流程记成一句话
我们把整篇内容压缩成一句话,保证你下次再做时不会像第一次那样“情绪起伏”。
GCP 控制台:附加磁盘到实例;Linux:识别设备->(可选)分区->格式化->挂载目录->写入 fstab 自动挂载。
你可以把这当作自测清单
- 控制台已把磁盘附加到目标 VM?
- 实例里
lsblk能看到新设备(如 /dev/sdb)? - 需要分区吗?新盘是否已有分区(如 /dev/sdb1)?
- 需要格式化吗?已有数据盘是否避免误操作?
- 已挂载到目标目录(如 /mnt/data)并能写入测试文件?
- 已写入 fstab(使用 UUID),并执行过
mount -a测试?
最后问你一句
你现在的场景是新建盘还是已有数据盘?你实例系统是 Ubuntu 还是 CentOS/Debian/其他?磁盘文件系统你打算用 ext4 还是 xfs?
你回我这几个信息,我可以把命令和参数替你“对号入座”,让你在实际环境里直接照做,不用再猜设备名和分区号——毕竟我们做的是运维,不是玄学。

如果需要更深入咨询了解可以联系全球代理上TG: @cloudcup 他们在云平台领域有更专业的知识和建议,他们有国际阿里云,国际腾讯云,国际华为云,aws亚马逊,谷歌云一级代理的渠道,微软云开户充值。oss防风控上传加密系统。客服1V1服务,支持免实名、免备案、免绑卡。开通即享专属VIP优惠、充值秒到账、官网下单享双重售后支持。