首页 > 解决方案 > ls命令看不到挂载磁盘的文件

问题描述

我安装了一个从 VM ubuntu 实例的快照创建的磁盘,之后我在另一个实时 VM ubuntu 实例的根目录上停止了该磁盘(我通过

df -h

) 在我的 GCP 的同一个项目中,我假设我应该能够通过命令从快照中找到这些文件

ls

但在那里没有看到。如果出现任何问题,请发表评论。 附上一张图片,显示 sdb1 磁盘的源来自安装的快照。 在此处输入图像描述

在此处输入图像描述

标签: ubuntugoogle-compute-engine

解决方案


您是否创建一个新的 VM 实例并附加从快照创建的磁盘?VM 实例有 2 个磁盘:根磁盘和附加磁盘。

对于附加磁盘,您必须将磁盘挂载到操作系统级别的挂载点。

你可以运行命令sudo lsblk

NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb      8:16   0  10G  0 disk 
sda      8:0    0  10G  0 disk 
└─sda1   8:1    0  10G  0 part /

如果您的结果是这样,则 sdb(附加磁盘)没有挂载点。

您可以按照本文档跳过第 4 步(格式化磁盘。)来挂载磁盘: https ://cloud.google.com/compute/docs/disks/add-persistent-disk#formatting

挂载后可以看到mountpoint下的文件,例如:/mnt/disks/disk2

NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb      8:16   0  10G  0 disk /mnt/disks/disk2
sda      8:0    0  10G  0 disk 
└─sda1   8:1    0  10G  0 part /

如果要将磁盘用作根磁盘,可以在创建实例时指定启动磁盘选项。

更新以下描述:数据盘是指从快照创建的磁盘

我尝试重现。脚步:

  1. 创建一个Ubuntu实例A,放一些文件。
  2. 从 Ubuntu 实例 A 的启动磁盘创建快照。
  3. 从快照创建数据磁盘。
  4. 创建一个Ubuntu实例B,附加数据盘。

登录Ubuntu实例B,执行命令df -h

看来数据盘是作为启动盘挂载的。

Filesystem      Size  Used Avail Use% Mounted on
udev            1.8G     0  1.8G   0% /dev
tmpfs           370M  920K  369M   1% /run
/dev/sdb1       9.6G  2.4G  7.2G  25% /
copymods        1.9G   29M  1.8G   2% /lib/modules
tmpfs           1.9G     0  1.9G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/loop0       91M   91M     0 100% /snap/core/6405
/dev/loop1       91M   91M     0 100% /snap/core/6350
/dev/loop2       56M   56M     0 100% /snap/google-cloud-sdk/71
/dev/loop3       58M   58M     0 100% /snap/google-cloud-sdk/77
/dev/loop4       56M   56M     0 100% /snap/google-cloud-sdk/72
/dev/loop5       90M   90M     0 100% /snap/core/6673
/dev/sdb15      105M  3.6M  101M   4% /boot/efi
tmpfs           370M     0  370M   0% /run/user/1006

执行命令sudo cat /etc/fstab

LABEL=cloudimg-rootfs   /        ext4   defaults        0 0
LABEL=UEFI      /boot/efi       vfat    defaults        0 0

执行命令sudo blkid /dev/sda1sudo blkid /dev/sdb1:因为磁盘有相同的LABEL,数据盘被挂载为启动盘...

# sudo blkid /dev/sda1
/dev/sda1: LABEL="cloudimg-rootfs" UUID="2f3ad447-cc37-48da-a5e8-d7f16b7f0182" TYPE="ext4" PARTUUID="854cb5e1-01"

# sudo blkid /dev/sdb1
/dev/sdb1: LABEL="cloudimg-rootfs" UUID="6e0049f4-3ab4-4981-832b-729bc26fdcd5" TYPE="ext4" PARTUUID="5b693d52-63b9-
4fa1-b781-f1062aaa7995"

您应该在Ubuntu 实例 B中看到文件,就像在Ubuntu 实例 A中一样。

检查快照内容。

  • 如果要将数据盘用作启动盘,可以使用快照创建实例。或者从快照创建图像,然后使用图像创建实例。(Ubuntu 实例 B 是 Ubuntu 实例 A 的副本。)
  • 如果您想附加数据盘作为第二个磁盘,您可以创建一个实例。然后编辑实例以附加数据磁盘。使用mount命令挂载数据盘。(Ubuntu 实例 B 挂载 Ubuntu 实例 A 磁盘。)

推荐阅读