如何拥有Linux服务器?
wsl 是适用于 Linux 的 Windows 子系统(Windows Subsystem for Linux)。是一个为在Windows 10和Windows Server 2019上能够原生运行Linux二进制可执行文件(ELF格式)的兼容层,可让开发人员按原样运行 GNU/Linux 环境,包括大多数命令行工具、实用工具和应用程序,且不会产生传统虚拟机或双启动设置开销。
简单来说,以前想在Windows中使用linux,需要安装vmware虚拟机,现在则不比这么麻烦了,直接安装linux子系统。
WSL1与WSL2
WSL 2 是WSL 1的一个新版本,它支持适用于 Linux 的 Windows 子系统在 Windows 上运行 ELF64 Linux 二进制文件。 它的主要目标是提高文件系统性能,以及支持完全的系统调用兼容性。
相对于WSL采用API转换的方式, WSL 2 则完全不同,win10 开始内置了一个轻量级虚拟机,经过不断的优化,这个虚拟机实现了与 windows 的高度集成,实现了虚拟机的高性能运行,WSL2 便是运行在虚拟机上的一个完整的 linux 内核,比如Docker、cgroup、iptables、GPU、图形界面这些功能都能正常工作。。因此 WSL 2 给了在 windows 更接近原生linux的体验,同时WSL 2 的开启速度有了非常明显的提升,几乎不需要再等待。
这一新的体系结构改变了这些 Linux 二进制文件与Windows 和计算机硬件进行交互的方式,但仍然提供与 WSL 1(当前广泛可用的版本)中相同的用户体验。
单个 Linux 分发版可以在 WSL 1 或 WSL 2 体系结构中运行。 每个分发版可随时升级或降级,并且你可以并行运行 WSL 1 和 WSL 2 分发版。 WSL 2 使用全新的体系结构,该体系结构受益于运行真正的 Linux 内核。
UBUNTU是什么
Ubuntu是Linux的发行版。在Linux术语中,发行版是以Linux内核为基础的操作系统版本。
WSL安装
开启Windows的WSL支持:
控制面板——程序——启用或关闭Windows功能——适用于Linux的......和虚拟机平台打勾——重启打开终端——输入 wsl --install 自动安装最新的Ubuntu发行版,也可以进入WindowsStore下载
下载完成后,在开始界面会出现Ubuntu图标
打开Ubuntu报错:WslRegisterDistribution failed with error: 0x800701bc
输入用户名和密码,注意,密码输入时屏幕上不会显示,输完了回车就可以
查看wsl版本:终端输入
wsl --list --verbose
查看ubuntu版本:powershell输入wsl进入,输入
lsb_release -a
WSL迁移
为防止C盘爆满,将wsl迁移
在powershell输入:
1) 停止正在运行的WSL
wsl --shutdown
2)将需要迁移的Linux,进行导出
wsl --export Ubuntu D:/export.tar
3)导出完成之后,将原有的Linux卸载
wsl --注销 Ubuntu
4) 然后将导出的文件放到需要保存的地方,进行导入即可
wsl --import Ubuntu D:\export\ D:\export.tar --version 2
查看用户是否为su:
sudo -l -U 用户名
用户 czt 可以在 LAPTOP-4SU4O3DA 上运行以下命令:
(全部:全部)全部
表示为sudo
切换用户:
su 用户名
Ubuntu换源
查看Ubuntu当前镜像源,在wsl中输入
cat /etc/apt/sources.list
编辑源文件配置文件,输入:
sudo vim /etc/apt/source.list
进去之后一直按d,d是vim里面删除一行的快捷键。删除干净了之后按i进入编辑模式。
复制其他源,鼠标右键单击粘贴,不想要的可以#注释掉
以下是22.04jammy清华源:
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
粘贴之后按Esc键退回命令模式,输入:wq,回车保存并退出
更新软件包列表,输入
sudo apt-get update
GNOME和XFCE是什么
是桌面环境,让操作更直观。
linux——核
ubuntu——操作系统
gnome、xfce——桌面
安装GNOME
WSL 不支持 systemd 而 Gnome 桌面又是基于 systemd,所以先解决这个问题。
sudo apt update
sudo apt install git
git clone https://github.com/DamionGans/ubuntu-wsl2-systemd-script.git
cd ubuntu-wsl2-systemd-script/
bash ubuntu-wsl2-systemd-script.sh
这个脚本执行完了会专门一句话说明执行成功的,中间弹了什么东西你别去管他。
安装完systemd之后,退回windows终端(直接叉掉这个终端就行),务必输入 wsl --shutdown
彻底关闭wsl运行的ubuntu,不然它不算完全关闭。
先确认你wsl版本为wsl2
查看版本 wsl -l -v
然后再在windows终端键入 wsl
重启ubuntu终端。输入systemctl
确认systemctl能用,出来一堆东西就行,失败的话会是
System has not been booted with systemd as init system (PID 1). Can't operate.
确认无误时候,安装gnome桌面
sudo apt update
sudo apt install -y ubuntu-desktop
ps 最终并没有成功,远程桌面连接不上,所以改成了Xfce4.
输入 sudo apt update总是报错:
Get:5 https://launchpad.proxy.ustclug.org/linuxuprising/shutter/ubuntu focal InRelease [18.1 kB] Err:5 https://launchpad.proxy.ustclug.org/linuxuprising/shutter/ubuntu focal InRelease The following signatures couldn't be verified because the public key is not available: NO_PUBKEY EA8CACC073C3DB2A Reading package lists... Done W: GPG error: https://launchpad.proxy.ustclug.org/linuxuprising/shutter/ubuntu focal InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY EA8CACC073C3DB2A E: The repository 'https://launchpad.proxy.ustclug.org/linuxuprising/shutter/ubuntu focal InRelease' is not signed. N: Updating from such a repository can't be done securely, and is therefore disabled by default. N: See apt-secure(8) manpage for repository creation and user configuration details.
ERR源不能用,换中科大也不行,我直接到文件夹里把martinx-ubuntu-xrdp-hwe-18_04-jammy.list全注释掉了
报错:98 packages can be upgraded. Run 'apt list --upgradable' to see them.
始终有包无法更新,可能是默认源连接不上,需要换源。
WSL主要更新升级命令介绍
1)、apt-get update
从服务器获取全部可用的、最新的软件包列表,并缓存到本地电脑。
2)、apt-get upgrade
这个命令,会把本地已安装的软件,与刚下载的软件列表里对应软件进行对比,如果发现已安装的软件版本太低,就会提示你更新。upgrade 不会删除在列表中已经没有的软件包,也不会安装有依赖需求但尚未安装的软件包。
3)、apt-get full-upgrade
根据列表信息,对需要升级的软件包进行完整安装。也就是先删除软件,然后完整地重新安装整个软件。所以要注意,这个功能是会删除软件的,所以执行此命令之前最好备份一下。
4)、apt-get dist-upgrade
dist-upgrade 可能会为了解决软件包冲突而删除一些已安装的软件包,也可能会为了解决软件包依赖问题安装新的软件包。
5)、apt list --upgradable
根据列表对比信息,看看有哪些可更新的软件,如果没有则显示为空。
6)、apt-get autoremove
一般来说,更新完成之后会有一些不需要的旧组件需要清除。此时使用apt autoremove即可完成清理。
7)、(sudo) apt-get autoclean
清理缓存
报错:E: Unable to correct problems, you have held broken packages.
可能是源的问题。先执行 lsb_release -a 查看是什么类型的源,比如focal、jammy等,然后切换对应的源。也不是一定要对应,多试试吧。
报错:System has not been booted with systemd as init system (PID 1). Can‘t operate.
Ubantu 报错:System has not been booted with systemd as init system (PID 1). Can‘t operate.-CSDN博客
报错:远程连接失败,connection problem,giving up
ubuntu远程桌面实现(包括解决connection problem,giving up问题) - 知乎 (zhihu.com)
连接黑屏
完美方案——解决XRDP连接黑屏,以及桌面优化! - 知乎 (zhihu.com)
Xfce界面的开启
powershell(管理员模式)输入wsl
用远程界面连接,默认(localhost:3389),输入用户名和密码进入
主要参考:
WSL2 + Docker + xfce4安装及使用_wsl2 ubuntu 22.04 安装xfce4-CSDN博客
WSL2使用xrdp实现图形桌面 - 知乎 (zhihu.com)
[windows]给WSL安装一个桌面gnome版本_wsl gnome-CSDN博客
wsl安装ubuntu并设置gnome图形界面详细步骤(win11+ubuntu18)_wslubuntu图形界面-CSDN博客