我以前使用 Windows 10,并在外部驱动器上备份了它 (vdhx)。我天真地认为从这个镜像恢复数据到 ubuntu 会更简单,所以我改用了 ubuntu,但现在并不简单。
有人能向我解释如何在 ubuntu 中安装此映像来查看我的内容并获取我需要的内容吗?由于我是 ubuntu 新手,因此非常希望有一个 GUI 选项,但命令行(在帮助下)也可以使用。
我已经尝试过这个(以及其他方法):
guestmount -a /path_to_external_drive/file.vhdx --inspector --ro mnt/vhd/
(基于此:https://stackoverflow.com/questions/36819474/how-can-i-attach-a-vhdx-or-vhd-file-in-linux)
提前致谢
答案1
以下是名为我的vhdx文件安装到/mnt/vhdx驱动器
例 1.其中 guestmount 正在检查(-i)寻找操作系统和挂载文件系统的磁盘:
- 安装
sudo apt-get install libguestfs-tools
- 创建挂载点,例如
sudo mkdir /mnt/vhdxdrive
- 跑步
sudo guestmount --add myvhdxfile.vhdx -i --rw /mnt/vhdxdrive
- (检查完文件后可选)要卸载,请运行
sudo guestunmount /mnt/vhdxdrive
示例 2.如果遇到错误:guestmount:此磁盘上未找到操作系统您可以按照以下步骤挂载单个分区:
- 跑步
sudo guestfish --rw -a myvhdxfile.vhdx
- 输入
run
并按回车键 - 输入
list-filesystems
并按回车键,记下分区的路径 - 输入
exit
并按回车键
上述步骤的输出可能如下所示:
><fs> run
><fs> list-filesystems
/dev/sda2: ntfs
><fs> exit
最后,您可以通过运行以下命令来挂载分区/dev/sda2
:
sudo guestmount --add myvhdxfile.vhdx --rw /mnt/vhdxdrive -m /dev/sda2
如果你通过运行列出文件系统命令,那么您应该/dev/sda2
用上面的命令中的这个路径替换它。
例 3. 如果您希望已挂载的分区在文件(nautilus)中出现,并且能够使用您的个人用户帐户访问它:
- 在媒体中创建挂载点
sudo mkdir /media/vhdxdrive
- 使用用户权限挂载
sudo guestmount --add myvhdxfile.vhdx -o uid=1000 -o gid=1000 -o allow_other --rw /media/vhdxdrive -m /dev/sda2
将上述命令中的 uid 和 gid 值更改为您用户的相应 id。
答案2
我第一次尝试这个时得到了:
libguestfs: error: /usr/bin/supermin exited with error status 1.
To see full error messages you may need to enable debugging.
Do:
export LIBGUESTFS_DEBUG=1 LIBGUESTFS_TRACE=1
and run the command again. For further information, read:
http://libguestfs.org/guestfs-faq.1.html#debugging-libguestfs
You can also run 'libguestfs-test-tool' and post the *complete* output
into a bug report or message to the libguestfs mailing list.
如果您遇到这种情况,并且您以普通用户(即非 root 用户)身份操作,则可能没有读取内核的权限。要检查这一点,请执行以下操作:
ls -l /boot/vmlinux-`uname-r`
如果显示为,例如
-rw------- 1 root root 11399928 Nov 12 02:51 /boot/vmlinuz-5.3.0-23-generic
则您无权读取内核。要更正此问题,请guestmount
以 root 身份运行sudo
,或者执行以下操作:
sudo dpkg-statoverride --update --add root root 0644 /boot/vmlinuz-`uname -r`
后者将使内核可供所有人阅读,并允许您使用guestmount
。请注意,让内核可供所有人阅读可能存在安全风险,因此如果您对此感到担心,请阅读一些内容。
答案3
我又尝试了一下,然后解决了它。更改如下: - 将挂载点更改为主目录中的文件夹 - 备份中创建了 3 个 vhdx 映像,显然只包含我需要的数据。(我仍然不确定其他的是什么。)