我正在尝试在 Linux 主机和 Windows 客户机之间共享文件,我发现了以下链接:
使用 virt-manager 在 Linux 主机和 Windows 客户机之间共享文件?
根据第三个答案中的建议,我按照以下步骤操作:
使用以下命令查找文件系统的偏移量(因为它是磁盘)
fdisk
:$ fdisk -lu Win.img
使用命令挂载镜像:
mount Win.img /mntpoint -o ro,loop,offset=32256
在这里,这似乎是一种有前途的方法。我能够在 Linux 主机上看到 Windows 来宾虚拟机的文件。但是,如果我在来宾上进行更改,除非再次重新安装映像,否则我无法在主机端看到任何更改。
有没有办法刷新内存,以便我也可以看到主机端的更改?
答案1
对于从 Linux 到 Windows 的文件共享,反之亦然,您可以WinScp
在 Windows 上使用并尝试将文件复制到任一系统。
答案2
不可以,当来宾使用磁盘时,读取图像并不可靠。
如果您关闭来宾,它将正常工作(因为不会进行任何更改)。
如果你想实时访问这些文件,你必须很好地询问 Windows,EG:smbmount
或者使用 samba 向来宾共享 Linux 文件系统。后者避免了 Windows 文件锁定问题,这对于日志文件等内容很方便。
答案3
您只需使用 OpenSSH 即可。在 Windows 客户机中安装 WinSCP 以远程访问您的 Linux 服务器。您可以在此处找到有关配置 OpenSSH 的信息https://help.ubuntu.com/community/SSH/OpenSSH/Configuring 并可以从这里下载 WinSCP: http://winscp.net/eng/download.php
答案4
安装图像ro
是非破坏性的;此设置可能会帮助您:
sudo losetup -f image_name
dev=$(sudo losetup -j image_name|sed 's/:.*//')
sudo kpartx -av $dev
分区将显示在 下/dev/mapper
,例如:loop0p1
。
mount -t fs -o ro /dev/mapper/loop0p1 /mnt
删除,kpartx -d $dev
。这丢失设置根据发行版的不同,代码可能不是必需的。直接kpartx -av image_name ; kpartx -d image_name
在 Ubuntu 上使用。
为了获得最佳结果:使用libguestfs。guestfish
Ubuntu 上的 libguestfs-tools有一个 cli shell部分。