【问题标题】:Transfer a "Character Device" file from Windows Cygwin to Linux将“字符设备”文件从 Windows Cygwin 传输到 Linux
【发布时间】:2012-01-26 20:31:11
【问题描述】:

我想将使用 cygwin(在 windows xp 上运行)创建的字符设备文件传输到 Linux 机器。我无法让它工作。

在 cygwin 中使用 mknod 命令,我得到一个名为 test 的文件,其权限如下:

crw-r--r--

C 表示“字符文件”。

在 Linux (Red Hat 5) 上无法识别该文件。相反,文件名为 test.lnk,权限如下:

-r-xr-xr-x

所以我的问题 - 这可能吗?

更多详情:

我认为添加我的任务可能是值得的。我的任务:使用 Windows 机器解压 Linux OS tarball,然后使用 NFS 将其上传到 Linux 服务器。 tarball 包含无法正确传输的“字符设备”文件。

【问题讨论】:

  • 我认为cygwin对你的NFS客户端软件一无所知,你的NFS客户端软件可能不支持Win32不理解的字符文件。无论如何,这不是一个编程问题。
  • 字符设备文件,顾名思义,就是指设备。一个常见的例子是/dev/null。在 tarball 中包含字符设备文件几乎可以肯定是没有意义的。即使在创建它们的系统上也不清楚它们是否会正确解包。你能找出为什么字符设备文件首先包含在 tarball 中吗?
  • Ben Voigt - 你说得对,这不是一个真正的编程问题。当我在从 C# 程序调用时对 VB 和 BATCH 脚本进行编程以解压缩到 NFS 挂载点时,出现了这个问题。 NFS 客户端和服务器会说话,cygwin 可以看到已安装的驱动器。发布这个问题的更好的地方是? @Keith - 字符设备位于压缩包中,因为压缩包代表整个 Linux 操作系统。我可以在创建它们的系统上正确解压字符文件(Linux 操作系统)谢谢。

标签: linux cygwin device character nfs


【解决方案1】:

问题答案:

一周后,我能够在阅读数小时后回答自己的问题。

Cygwin 或任何其他 UNIX (Windows Interix) POSIX 环境不能混合特殊文件类型。您不能使用这些工具创建特殊文件(如字符文件或管道文件)并将它们传输到 Linux。

所以我的所有脚本都不起作用。

任务答案:

我的任务是编写一个脚本,将 linux OS tarball 从 Windows 传输到使用 NFS 的 linux 机器。

我使用虚拟机让它工作。我在 Windows XP 上安装了一个虚拟 Linux 操作系统,并使用 linux VM 将 NFS 客户端挂载到 linux NFS 服务器。

如何:-

1.) 安装虚拟机。我推荐Virtual Box

2.) 安装红帽 Linux。我使用的是 RHEL 5.7。

3.) 安装 Virtual Box Guest Additions。这使您可以“轻松”地将文件/文件夹从 Windows 共享到 linux。

How to Setup Guest Additions

How to Setup Shared Folders

4.) 将客户操作系统(Linux VM)的网络类型设置为“桥接”或“仅主机网络”。这将允许您使用 Putty 从 Windows 主机操作系统 SSH 到 Linux 来宾/虚拟操作系统。

Virtual Box Networking

5.) 现在您可以编写一个脚本来将 tarball(带有特殊字符文件)从 windows 传输到虚拟 linux,然后从虚拟 linux 传输到 Linux NFS 服务器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-03
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 2016-06-29
    • 2017-04-17
    相关资源
    最近更新 更多