标签: windows-subsystem-for-linux

如何使用适用于 Linux 的 Windows 子系统访问 UNC 路径?

我已经下载了适用于 Windows 10 的 BASH。我将如何像在 Windows 环境中那样导航到网络地址?我已经看到提到的 SAMBA 并下载了smbclient

我试过了:

smbclient \\localhost\
Run Code Online (Sandbox Code Playgroud)

我收到错误

ERROR: Could not determine network interfaces, you must use a interfaces config file
Run Code Online (Sandbox Code Playgroud)

我是 BASH 的新手用户,并认为这是提高效率的机会。

作为奖励,请展示我如何完成一些常见任务,例如通过网络复制文件,以及如何进行身份验证,因为此类操作可能需要这样做。

windows-subsystem-for-linux

22
推荐指数
1
解决办法
2万
查看次数

rsync 在传输几个文件后挂起(Bash for Windows to FreeBSD)

我正在使用 Windows 10 Pro PC 上的“Bash on Ubuntu on Windows”将我的媒体库备份到充当我的 NAS(它运行 NAS4Free)的 FreeBSD 服务器。这曾经完美地工作,但最近停止工作。由于我没有更改任何内容,因此我认为更改来自 Windows 更新之一,不确定。

无论如何,这就是发生的事情。就在复制了几个文件之后,rsync 传输就挂了。我让它在一夜之间运行以确认它只是挂了几个小时。当我通过向终端发送 CTRL + C 手动终止任务时,我收到一条错误消息,一段时间过去(大约 30 秒)并且程序停止:

arnaud@CLAVAIN:~$ rsync -arv --delete --no-compress /mnt/e/Music/ arnaud@nas4free.lan:~/pool1/lolilol/music
arnaud@nas4free.lan's password:
sending incremental file list
ost/Luke Cage (Original Soundtrack Album)/
ost/Luke Cage (Original Soundtrack Album)/40. Finding Chico.m4a
ost/Luke Cage (Original Soundtrack Album)/41. I Am Carl Lucas.m4a
ost/Luke Cage (Original Soundtrack Album)/42. Crispus Attucks.m4a
ost/Luke Cage (Original Soundtrack Album)/43. Hideout.m4a
ost/Luke Cage (Original Soundtrack Album)/44. Cuban Coffee.m4a
ost/Luke Cage …
Run Code Online (Sandbox Code Playgroud)

freebsd rsync windows-subsystem-for-linux

15
推荐指数
1
解决办法
1万
查看次数

WSL - 连接到 VPN 时 DNS 不工作

我已经使用 WSL Bash/Ubuntu 好几年了,但由于某种原因,这个问题最近出现了。
DNS 无法解析任何名称,包括内部名称和外部名称。我第一次重新安装 WSL 时,我认为它可以工作一天……但现在不行了,即使我重新安装。

从 Windows Store 全新安装 Ubuntu 18.04:

user@hostname:~$ cat /etc/resolv.conf
# This file was automatically generated by WSL. To stop automatic generation of this file, remove this line.
nameserver <DNS server from wi-fi NIC 1>
nameserver <DNS server from wi-fi NIC 2>
nameserver <DNS server from ethernet 2 (VPN) NIC 1>
search anyconnect.local

user@hostname:~$ ping google.com -c 1
ping: google.com: Name or service not known

user@hostname:~$ ping 8.8.8.8 -c 1
PING 8.8.8.8 (8.8.8.8) …
Run Code Online (Sandbox Code Playgroud)

linux dns vpn windows-subsystem-for-linux

15
推荐指数
4
解决办法
2万
查看次数

我在使用适用于 Linux 的 Windows 子系统时用 Windows 程序编辑了一个 Linux 文件,现在我无法再访问它

在 Windows 上的 Ubuntu或适用于 Linux 的Windows 子系统中的另一个 Linux 发行版上使用Bash,并且我已经lxss使用 Windows 编辑器在目录中编辑了一个 Linux 文件。

现在,每当我或程序尝试从 Linux 访问它时,我都会收到错误“输入/输出错误”,或者即使我可以在文件资源管理器中看到它确实存在,该文件也会完全消失。

cat abc
cat: abc: Input/output error
Run Code Online (Sandbox Code Playgroud)

为什么会发生这种情况?我能做些什么来修复它?我将来如何避免它?

windows-subsystem-for-linux

12
推荐指数
1
解决办法
5126
查看次数

WSL 2 没有 /lib/modules/

我有一个 hello world 内核模块的源代码,它可以在笔记本电脑的 Ubuntu 20 中运行。现在我正在尝试在 Ubuntu 20 中但在 WSL2 中编译相同的代码。为此,我正在使用这个:

make -C /sys/modules/$(shell uname -r)/build M=$(PWD) modules
Run Code Online (Sandbox Code Playgroud)

问题是那/lib/modules是空的。好像 WSL2 什么都带不进来/lib/modules/4.19.104-microsoft-standard/build

我尝试使用以下方法获取标题:

sudo apt search linux-headers-`uname -r`

Sorting... Done
Full Text Search... Done
Run Code Online (Sandbox Code Playgroud)

但是在模块文件夹中没有填充任何内容

为了该文件夹包含所有必需的模块,我需要做什么吗?

[编辑]

感谢@HannahJ,越来越近。

我在做:

> sudo make -C /home/<user>/WSL2-Linux-Kernel M=$(pwd) modules

SL2-Linux-Kernel M=$(pwd) modules
make: Entering directory '/home/<user>/WSL2-Linux-Kernel'
  CC [M]  /home/<user>/containers-assembly-permissionsdemo/demo-2/lkm_example.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /home/<user>/containers-assembly-permissionsdemo/demo-2/lkm_example.mod.o
  LD [M]  /home/<user>/containers-assembly-permissionsdemo/demo-2/lkm_example.ko
make: Leaving directory '/home/<user>/WSL2-Linux-Kernel'
Run Code Online (Sandbox Code Playgroud)

最后,我lkm_example.ko创建了文件。

在那之后:

> …
Run Code Online (Sandbox Code Playgroud)

kernel-modules c++ linux-kernel windows-subsystem-for-linux

12
推荐指数
2
解决办法
8607
查看次数

/dev/random 在 Ubuntu for Windows 10 (WSL) 中非常慢

我在 Haswell 笔记本电脑上使用适用于 Windows 10 (WSL2) 的 Ubuntu 20.04,每秒获得大约 0.6 个字节。等待 10 秒后总共 6 个字节。这是无法接受的。问题是什么?

编辑:这似乎只是在 WSL2 模式下运行时的问题。WSL1 = 40MiB/s WSL2 = 0.6 字节/s

random windows-subsystem-for-linux

11
推荐指数
2
解决办法
2552
查看次数

从控制台重新启动 WSL

如何从 WSL 控制台重新启动当前的 WSL 实例?

通常的“嫌疑人”不起作用:

reboot
shutdown -r
Run Code Online (Sandbox Code Playgroud)

他们失败并显示以下消息:

System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
Run Code Online (Sandbox Code Playgroud)

还有其他方法可以强制 WSL 重新启动吗?

reboot windows-subsystem-for-linux

11
推荐指数
1
解决办法
6万
查看次数

如何在 WSL/Ubuntu/Bash 中使用两个波浪号字符“~~”(或类似字符)创建路径的快捷方式?

我是 Ubuntu/Linux 世界的新手,所以不要对我太苛刻。

我在带有 WSL2 和 bash shell 的 Windows 上使用 Ubuntu。有时我想将文件从 Windows 复制到 Ubuntu 或其他方式。我在网上找到了一些关于如何执行此操作的教程,最简单的方法是导航到/mnt/c/Users/<your_user>.

我想创建一个像波浪号~这样的变量,这意味着我的 Windows 用户的主目录。我考虑过使用双波浪号,~~因为我看到它不是保留的或其他东西。

我在/bin命名中创建了一个可执行文件,~~echo是必要的路径。但是使用起来很麻烦。

有没有办法创建一个特殊的角色~?如果没有,有没有更好的方法来做到这一点?

我想要的最终结果是能够执行以下操作:

cp ~~/Desktop/somefile.txt ~/somefile.txt
Run Code Online (Sandbox Code Playgroud)

bash ubuntu windows-subsystem-for-linux

10
推荐指数
4
解决办法
1575
查看次数

WSL“分发”涉及什么?

WSL 允许用户使用他们选择的任何发行版,并且默认安装 Ubuntu。

我不太明白 WSL 上下文中分布的相关性。我的理解是Linux发行版是指操作系统的皮肤。操作系统核心之上的 UI 层。但是,当使用 WSL 时,您只需使用命令行,或者运行一个独立的单一 GUI 应用程序。那么,在这种情况下,分布的相关性是什么?它对您选择的分布有何影响?

windows distribution-choice windows-subsystem-for-linux

10
推荐指数
3
解决办法
3491
查看次数

将命令从 cmd.exe (WSL) 传递给 bash 不起作用

我在 Windows 10 机器上,启用/配置了适用于 Linux 的 Windows 子系统 (Ubuntu)。为了解释我的问题,让我向您展示两种情况:

场景一:

  1. 我开始cmd.exe提示
  2. bashcmd.exe提示符下运行
  3. (内部bash)我运行给定的命令,dwiextract在我的情况下调用(来自神经影像分析软件包)

工作正常,表明软件包安装成功。

场景2:

  1. 我开始cmd.exe提示
  2. 我尝试使用以下语法将完全相同的命令直接传递给bashfrom cmd.exebash -c dwiextract

我明白了command not found

(注意我在bash -c 这里了解到并在其他场合成功使用了它。)

下图准确显示了我所做的:

example_diagram

我的问题:这两种情况不应该是等价的。为什么方案 1 有效而方案 2 无效?

非常感谢。

bash ubuntu windows windows-subsystem-for-linux

9
推荐指数
1
解决办法
7378
查看次数