前言
最新换了新笔电,结果硬件配置太新,Ubuntu18.04、Linux Mint19装上后都有问题,无耐又回到了Windows10,现在就只能折腾win10的Linux子系统了(不喜欢虚拟机),尽量在win10上折腾出一个好用的工作环境出来吧 ~
Contents
- 安装Linux子系统
- 使用ssh远程登录Linux子系统
- 安装MyDock和TranslucentTB
- /mnt目录下挂载的文件系统默认权限为777的问题
- win10家庭版启用hyper-v虚拟化技术安装virtualbox
- win10 virtualbox启动虚拟机失败
- linux和win10跨系统开发git仓库文件权限的问题
- 更换阿里软件源
- VMware Workstation 与 Device/Credential Guard 不兼容
安装Linux子系统
- 在控制面板里打开
启用或关闭windows功能
- 勾选
适用于Linux的Windows子系统
- 确定安装并重启
- 应用商店搜索
Linux
安装Ubuntu18.04
使用ssh远程登录Linux子系统
- 安装ssh
$: sudo apt install ssh
- 修改sshd配置
# 备份sshd配置文件
$: sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config-bak
# 修改内容
ListenAddress 0.0.0.0 # 取消注释
#StrictModes yes #加注释
PasswordAuthentication yes # 允许密码登录
- 启动ssh
$: service ssh start
- 如果提示
sshd error: could not load host key
,执行:
$: sudo rm /etc/ssh/ssh*key
$: sudo dpkg-reconfigure openssh-server
- win10商店安装Termius(
ssh客户端工具
)
安装MyDock和TranslucentTB
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客户端的,需要自己用脚本安装
- 创建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
重启后hyper-v已经安装,按下
win + q
快捷键输入启用和关闭windows功能
,然后检查hyper-v是否已经勾选安装重启进入bios(按下
F2 或 Del 或 Esc 或 F12
键),将Intel Virtual Technology
设置为enable
,启用bios的虚拟化功能
win10 virtualbox启动虚拟机失败
virtualbox启动虚拟机报错Raw-mode is unavailable courtesy of Hyper-V
- 按下
win + x
选中以管理员启动命令行 - 检查hypervisor状态:
bcdedit
- 如果
hypervisorlaunchtype
一行显示为auto
的话,将它禁用
bcdedit /set hypervisorlaunchtype off
- 重启电脑打开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
更换阿里软件源
- 备份
/etc/apt/sources.list
- 编辑替换为阿里源(
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
- 更新软件
$: 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