在 Linux 主机和 Windows 客户机之间共享文件

在 Linux 主机和 Windows 客户机之间共享文件

我正在尝试在 Linux 主机和 Windows 客户机之间共享文件,我发现了以下链接:

使用 virt-manager 在 Linux 主机和 Windows 客户机之间共享文件?

根据第三个答案中的建议,我按照以下步骤操作:

  1. 使用以下命令查找文件系统的偏移量(因为它是磁盘)fdisk

    $ fdisk -lu Win.img
    
  2. 使用命令挂载镜像:

    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 上使用。

为了获得最佳结果:使用libguestfsguestfishUbuntu 上的 libguestfs-tools有一个 cli shell部分。

相关内容