适用于Windows的Linux子系统踩坑记录(In Updat

2018-11-11  本文已影响0人  nojsja
exit 0

前言

最新换了新笔电,结果硬件配置太新,Ubuntu18.04、Linux Mint19装上后都有问题,无耐又回到了Windows10,现在就只能折腾win10的Linux子系统了(不喜欢虚拟机),尽量在win10上折腾出一个好用的工作环境出来吧 ~

Contents


安装Linux子系统


  1. 在控制面板里打开启用或关闭windows功能
  2. 勾选适用于Linux的Windows子系统
  3. 确定安装并重启
  4. 应用商店搜索Linux安装Ubuntu18.04

使用ssh远程登录Linux子系统


$: sudo apt install ssh
# 备份sshd配置文件
$: sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config-bak
# 修改内容
ListenAddress 0.0.0.0 # 取消注释
#StrictModes yes #加注释
PasswordAuthentication yes # 允许密码登录
$: service ssh start
$: sudo rm /etc/ssh/ssh*key
$: sudo dpkg-reconfigure openssh-server

安装MyDock和TranslucentTB


desktop
MyDock

MyDock是一款能让Windows系统用上Dock栏的软件,毛玻璃效果很棒,可自定制程度也很高。

TranslucentTB

TranslucentTB是一款能使Windows10系统任务栏透明化的小工具,支持毛玻璃透明效果。

/mnt目录下挂载的文件系统默认权限为777的问题


Insider Build 17063 中,wsl加入了DrvFs功能,在WSL和Windows文件系统中充当桥梁,使WSL的文件权限可以支持更多的Metadata和更多的Mount选项。详细介绍看这里 Chmod/Chown WSL Improvements
使用简单命令就可以用drvfs重新mount硬盘:

$: sudo umount /mnt/c
$: sudo mount -t drvfs C: /mnt/c -o metadata

或者使用添加umask和fmask等参数:

$: sudo mount -t drvfs C: /mnt/c -o metadata,uid=1000,gid=1000,umask=22,fmask=111

但是每次使用时手动mount也太麻烦了,这时正好用上另一个新特性 Automatically Configuring WSL。把下面automount的选项添加到/etc/wsl.conf文件中就可以了。

[automount]
enabled = true
root = /mnt/
options = "metadata,umask=22,fmask=11"
mountFsTab = false

现在重启WSL的console, windows硬盘上的文件和文件夹都拥有正常权限了。但是坑还没有完,如果这时用mkdir命令创建一个空文件夹,就会发现新的文件夹还是777权限。这可能是wsl的一个bug (Issue 1801, Issue 352),console默认的umask值仍然是0000。work-around的方法是在.profile、.bashrc、.zshrc或者其他shell配置文件中重新设置一下umask。

#Fix mkdir command has wrong permissions
if grep -q Microsoft /proc/version; then
  if [ "$(umask)" == '0000' ]; then
  umask 0022
  fi
fi

win10家庭版启用hyper-v虚拟化技术安装virtualbox


win10家庭版是没有带hyper-v客户端的,需要自己用脚本安装

  1. 创建hyper-v安装可执行脚本hyper-v_setup.cmd,右键以管理员来运行
pushd "%~dp0"

dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt

for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"

del hyper-v.txt

Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL
  1. 重启后hyper-v已经安装,按下win + q快捷键输入启用和关闭windows功能,然后检查hyper-v是否已经勾选安装

  2. 重启进入bios(按下F2 或 Del 或 Esc 或 F12键),将Intel Virtual Technology 设置为enable,启用bios的虚拟化功能

win10 virtualbox启动虚拟机失败


virtualbox启动虚拟机报错Raw-mode is unavailable courtesy of Hyper-V

  1. 按下win + x选中以管理员启动命令行
  2. 检查hypervisor状态:
bcdedit
  1. 如果hypervisorlaunchtype一行显示为auto的话,将它禁用
bcdedit /set hypervisorlaunchtype off
  1. 重启电脑打开virtualbox查看是否正常运行

linux和win10跨系统开发git仓库文件权限的问题


有时候新克隆下的仓库无端地就有文件的修改(git status),查看git状态,发现是文件权限变动的问题:

$: git diff file
old mode 100644
new mode 100755

=> 原因:Linux和Win10文件系统权限管理的问题
=> 解决:设置git忽略文件系统权限冲突的问题

# 全局
$: git config --global core.filemode false
# 位于单个仓库目录下
$: git config core.filemode false

更换阿里软件源


  1. 备份/etc/apt/sources.list
  2. 编辑替换为阿里源(Ubuntu 18.04)
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
  1. 更新软件
$: sudo apt update
$: sudo apt upgrade

VMware Workstation 与 Device/Credential Guard 不兼容


open powershell in admin mode.

# close and reboot
> bcdedit /set hypervisorlaunchtype off
# if you want to reopen it sometime
> bcdedit /set hypervisorlaunchtype auto
上一篇下一篇

猜你喜欢

热点阅读