如何在GCP新VM中识别已挂载持久磁盘并访问其文件?
1. 让已挂载的持久磁盘可见
GCP创建VM并附加持久磁盘后,磁盘仅完成物理连接,并未自动挂载到文件系统,因此df命令无法显示。按以下步骤操作:
识别未挂载的磁盘设备
执行lsblk或sudo fdisk -l,查看输出中未关联挂载点的磁盘(通常根磁盘为/dev/sda,附加磁盘多为/dev/sdb//dev/sdc等)。示例命令:lsblk输出中
MOUNTPOINT为空的磁盘即为目标磁盘。检查磁盘上的文件系统信息
用blkid确认磁盘是否已有可识别的文件系统:sudo blkid /dev/sdb若输出包含
TYPE="ext4"这类字段,说明磁盘已有文件系统,无需格式化。创建挂载点并挂载磁盘
先创建挂载目录:sudo mkdir /mnt/attached-disk挂载磁盘(如果磁盘有分区,替换为
/dev/sdb1):sudo mount /dev/sdb /mnt/attached-disk执行
df -h即可看到该磁盘的挂载信息。设置开机自动挂载(可选)
编辑/etc/fstab文件,添加磁盘UUID对应的挂载条目(UUID可从blkid输出中获取),避免重启后丢失挂载:sudo nano /etc/fstab添加一行:
UUID=xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx /mnt/attached-disk ext4 defaults 0 2保存后执行
sudo mount -a验证配置无误。
2. 不格式化磁盘访问其中的文件
只要磁盘上存在可被系统识别的文件系统,就无需格式化,直接挂载即可:
针对Linux原生文件系统(ext4、XFS等)
按上述步骤挂载后,直接访问/mnt/attached-disk目录即可读取文件。针对NTFS等非Linux原生文件系统
先安装对应的文件系统驱动:
Debian/Ubuntu系统:sudo apt update && sudo apt install ntfs-3gCentOS/RHEL系统:
sudo yum install ntfs-3g然后挂载磁盘:
sudo mount /dev/sdb1 /mnt/attached-disk -t ntfs-3g挂载完成后即可正常访问文件。
特殊情况:裸磁盘无文件系统
如果磁盘是未分区的裸设备且直接写入了数据,需使用专业数据恢复工具(如testdisk)恢复分区表或读取裸设备数据,但这种场景极少,通常用户的磁盘都是带有文件系统的。
内容的提问来源于stack exchange,提问作者Johnny Tam

