阅读视图

发现新文章,点击刷新页面。

Linux系统运行剑网三

前言

最近Windows系统有些审美疲劳,然后在B站上刷到了日常使用Linux系统的视频,看着还不错,就想着自己来试试。

但我就是一个臭打游戏的,换新系统的第一件事肯定是看看能不能运行自己玩的剑网三。正好,在剑三魔盒上看到了《关于在Wine (SteamDeck) 下运行剑网3的可行性与实现方法》这篇文章,整体思路就是:安装wine→安装剑三并设置跳过显卡检测→成功运行。

目前,我只在Deepin20.9和Archlinux上成功运行了剑网三,所以我会把两种系统运行剑三的流程都写出来。(据说Deepin就是统信Uos的社区版,所以我猜测统信Uos应该也能运行

前提条件

一台正常安装了Deepin20.9或者Archlinux的物理机。

如果安装的话,可以看看下面的安装教程:

1、Deepin20.9系统安装教程

2、Archlinux系统安装教程

安装Wine

Wine 是类 UNIX 系统下运行 Windows 程序的“兼容层”,是正在持续开发中的自由软件。在 Wine 中运行的 Windows 程序,就如同运行原生 Linux 程序一样,不会有模拟器那样的严重性能问题。

1、Archlinux系统安装Wine以及其它相关依赖:

1
2
3
4
5
6
sudo pacman -S wine wine-mono wine_gecko wine-staging giflib lib32-giflib libpng lib32-libpng libldap lib32-libldap gnutls lib32-gnutls \
mpg123 lib32-mpg123 openal lib32-openal v4l-utils lib32-v4l-utils libpulse lib32-libpulse libgpg-error \
lib32-libgpg-error alsa-plugins lib32-alsa-plugins alsa-lib lib32-alsa-lib libjpeg-turbo lib32-libjpeg-turbo \
sqlite lib32-sqlite libxcomposite lib32-libxcomposite libxinerama lib32-libgcrypt libgcrypt lib32-libxinerama \
ncurses lib32-ncurses opencl-icd-loader lib32-opencl-icd-loader libxslt lib32-libxslt libva lib32-libva gtk3 \
lib32-gtk3 gst-plugins-base-libs lib32-gst-plugins-base-libs vulkan-icd-loader lib32-vulkan-icd-loader

全部复制进终端,然后回车即可

2、Deepin20.9系统安装Wine

应用商店下载安装“Wine运行器”,然后点击左上角“程序”→“添加Wine运行器源以及安装较新版本的WineHQ”,然后在弹出的终端里按照指示操作即可。

Wine运行器

安装Wine游戏助手

点此直接下载wine游戏助手,里面有Deepin版和Archlinux版本,按需下载安装,后续游戏的运行都是通过它来实现。

安装剑网三

Windows系统怎么下载安装,在Linux上同样怎么下载安装,不过在官网下载的剑三安装器,Archlinux系统因为安装了wine可以直接双击打开,而Deepin系统需要通过Wine游戏助手或者Wine运行器打开。

或者从其他地方复制完整的剑三客户端过来也可以。

运行剑网三

这一步,Archlinux系统和Deepin系统基本上步骤都是一样的。

1、“Wine游戏助手”手动添加剑网三

打开Wine游戏助手,首先设置一下wine环境,点击左下角运行环境里Wine旁边的圆形齿轮。点击齿轮

右上角开启高级选项,然后Wine版本设置为系统自带的wine版本,DXVK版本选择v2.3-vulkan1.3,VKD3D版本选择v2.10-vulkan1.3,然后点击右上角保存wine配置

回到Wine游戏助手页面,点击左上角+号,选择手动配置游戏运行环境手动运行

游戏信息,名称自己设置,我这里填写为“剑网三”,运行环境选择Wine(运行Windows游戏)游戏信息

游戏选项,主程序设置为剑网三启动器位置,也就是”SeasunGame.exe“程序位置,然后点击右上角保存。启动目录

2、修改剑网三设置

打开客户端工作路径(~\SeasunGame\Game\JX3\bin\zhcn_hd)下的config.ini,给[Debug]这段里面加一行:SkipVideoCardScoreUpdate=1设置剑网三

3、启动剑网三

这个时候回到Wine游戏助手页面,选择刚刚添加的剑网三,点击启动,会弹窗提示更新Wine配置和安装Wine-Mono组件,等待自动安装完成即可。wine配置

4、快乐游戏

一切就绪后会像Windows一样正常运行剑三,以后每次玩游戏都需要通过Wine游戏助手启动运行。剑三启动器ArchlinuxDeepin20.9

后记

1、游戏加速器

由于我在国外,玩剑三需要游戏加速器,而Linux上的根本就没有能在国外加速国内网游的游戏加速器,所以也只能通过一些特别的办法来实现加速效果。

在Linux中通过虚拟机使用Windows版网游加速器

2、Deepin20.9系统卡在登录过图界面

因为我是直接从Windows系统上将剑三客户端复制过来的,在Deepin20.9系统上运行会出现卡在过图界面的情况,这种时候只需要将“~\SeasunGame\Game\JX3\bin\zhcn_hd目录”下的interfaceuserdata文件夹删掉就能正常进入游戏了。

Archlinux系统就不会这样。

Hexo自动部署至虚拟主机

前言

去年618我在西部数码一次性买了五年的云虚拟主机,当时好像才两三百块钱。云虚拟主机买来主要是用来挂备案的,想着小厂备案可能查得不严。刚开始还好,博客也部署在华为云服务器上,可能域名指向的是国内,也确实没查过备案。

今年6月份华为云到期了没续费,刚好我人也在国外,本着能省则省的原则,就把博客部署到Netlify了。结果还不到一个月,西数就发邮件来说检测到域名指向了其他IP地址。西数邮件

最后没办法,就只能把这个云虚机用起来,域名分开解析,国内解析到这台虚机,国外解析到Netlify。

但是这样问题也来了,Netlify还好说,只需要部署至GITHUB就好了;可是虚拟主机就不方便了,网上都是说安装 hexo-deployer-ftpsync 插件,但在部署的时候一直报错,上传不了,只能自己手动FTP上传了。

后来了解到有个东西叫做 FTP-Deploy-Action ,可以通过 GitHub Action 自动将博客部署到虚拟主机,简直不要太方便,甚至还可以通过 GitHub Action 同时部署到 Github Pages 和虚拟主机。

前提条件

一、需要使用虚拟主机部署Hexo博客
二、Hexo博客能正常部署访问

如果还没有Hexo博客或者不会搭建Hexo博客的话,可以看看下面两篇文章:

1、Win10:Hexo+github搭建个人博客

2、Ubuntu:Hexo+github搭建个人博客

三、Hexo博客可以通过 GitHub Action 部署到 Github Pages

如果还没有配置好 GitHub Action 的话,可以看看这篇文章 使用Github Action实现全自动部署

另外,在将本地文件备份至 Github 的过程中,可能会出现主题文件夹是空文件夹的情况,这样通过 GitHub Action 部署后博客打开会白屏没有任何样式。解决办法可以看看这里 Hexo主题themes-文件夹无法提交到GitHub的解决方法

配置 GitHub Action

打开 Action 配置文件(本地博客仓库目录/.github/workflows/(Action配置文件).yml),在后面添加

1
2
3
4
5
6
7
8
9
- name: Deploy Files on Ftp Server
uses: SamKirkland/FTP-Deploy-Action@4.3.3
with:
server: (FTP服务器地址)
username: (FTP用户名)
password: (FTP密码)
local-dir: ./public/
server-dir: (FTP服务器文件目录)
port: (FTP服务器端口,一般是21)

最后直接将博客源码提交到github上就行了。

Hexo笔记——解决Shoka主题评论系统表情加载失败的问题

近期将博客换成Hexo之后,最开始是部署在Github Pages上面,访问时一切正常。后面觉得Github Pages访问速度时快时慢,边重新部署在国内的华为云服务器上,这时问题就出来了,评论系统里面的表情图片正常情况下加载不出来,要搭梯子才行。表情加载失败

后来参考了ReverseSacle大佬关于[Shoka主题功能的一些补充介绍](Hexo-Shoka主题功能介绍补充点 | ReverseSacle-Blog = 逆转天平 = 执着过去的人,无法迈向未来)一文,并请教了ReverseSacle大佬后才了解到,shoka 主题使用的是 Valine-Admin 魔改评论系统,基本上都使用了 Jsdelivr 的资源,并由于国内的服务器无法访问资源才导致的表情加载失败。

为防止自己以后会忘记,特此记录下解决过程。

Vercel 反代 Jsdelivr 的加速链接

这一步,ReverseSacle大佬的文章中是以 Windows10 系统为例,但我习惯使用 Linux 系统,所以此次我使用 Centos 8.2 系统为例。

  • 安装 Node.js

    1
    2
    3
    4
    5
    yum install update
    yum install nodejs
    yum install npm
    npm install -g n
    n lts
  • 安装 vercel

    1
    npm install -g vercel
  • 安装完 vercel 后,输入 vercel login ,会让你选择登陆 vercel 的方式(选择的位置以 等待输入光标 为准, Enter 键确认,具体依情况选择),之后会跳出登入页面如图所示
    这里我使用的是邮箱登陆,会出现下图中的情况,这是 vercel 给你登陆邮箱发送了确认邮件,需要你在邮件中点击确认链接才能登陆邮箱登陆

  • 新建一个名为 jd_gh 文件夹 (名字自定义),进入到 jd_gh 文件夹中,新建一个 jd_gh.json 文件 (名字自定义)

    1
    2
    3
    mkdir jd_gh
    cd jd_gh
    touch jd_gh.json
  • 文本编辑器 打开 jd_gh.json 文件并输入下方反代代码

    1
    2
    3
    4
    5
    6
    {
    "version": 2,
    "routes": [
    {"src": "/(.*)","dest": "https://cdn.jsdelivr.net/$1"}
    ]
    }
  • 最后输入命令 vercel -A jd_gh.json --prod 来在 vercel 上部署

  • ++注意 what's your project's name? 这个提示,此处是提示输入你部署项目所需要的名称 (按喜好来定就行了,另外这里不支持特殊字符, - 号除外),其他的选项按下方图片提示来选择即可++{.dot}直接使用ReverseSacle大佬的图

  • 最后,进入 Vercel 官网,登入后可以看到刚刚创建的项目,点击项目,进入后记录下 DOMAINS 处的链接,也可以绑定自己的域名使用

解决评论区表情图片加载失败问题

  • MiniValine (Github) 下载 MiniValine.min.js 文件,并将 MiniValine.min.js 文件放入到 hexo 根目录的 ./themes/shoka/source/js 文件夹中

  • 打开 MiniValine.min.js 文件,找到 VERSION="4.2.2" 这一项,将 t.EUrl 后链接中的XXX替换为刚刚记录的 DOMAINS 地址或自己绑定的域名

    1
    2
    3
    4
    5
    6
    7
    8
    t.VERSION = "4.2.2",
    t.GBUrl = "https://gravatar.loli.net/avatar/",
    t.EUrl = ["https://xxxx/npm/alus@latest",
    "https://xxxx/gh/MiniValine/qq@master",
    "https://xxxx/gh/MiniValine/Bilibilis@master",
    "https://xxxx/gh/MiniValine/tieba@master",
    "https://xxxx/gh/MiniValine/twemoji@master",
    "https://xxxx/gh/MiniValine/weibo@master"]
  • 打开 hexo 根目录 ./themes/shoka/_config.yml 文件,滑倒最后,找到 valine 元素,将其参数设为 https://博客域名/js/MiniValine.min.js

  • 最后修改 ./themes/shoka/source/js/_app/utils.js文件第26~35行处

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    //将此代码if(str.indexOf('npm')>-1||str.indexOf('gh')>-1||str.indexOf('combine')>-1)
    //拆分为下面的代码
    if(str.indexOf('npm')>-1||str.indexOf('combine')>-1)
    return "https://cdn.jsdelivr.net/" + str

    if(str.indexOf('js')>-1)
    return str

    if(str.indexOf('gh')>-1)
    return "https://cdn.jsdelivr.net/" + str

    //代码示例
    const assetUrl = function(asset, type) {
    var str = CONFIG[asset][type]

    if(str.indexOf('npm')>-1||str.indexOf('combine')>-1)
    return "https://cdn.jsdelivr.net/" + str

    if(str.indexOf('js')>-1)
    return str

    if(str.indexOf('gh')>-1)
    return "https://cdn.jsdelivr.net/" + str

    return statics + str;
    }

叒换了博客程序——记录Hexo搭建、配置、部署到云服务器的全过程

最近因为疫情原因,天天在家里也无聊得很,想着没事就试着折腾一下Hexo。

刚开始还不会整Hexo博客,感觉要比Typecho要麻烦的多。经过两天的学习操作,终于建好了Hexo,本着建好了就不浪费的原则,决定以后就用Hexo了。

目前博客程序为Hexo,使用Theme.Shoka主题,部署在华为云服务器上。

现在记录一下这个Hexo博客从搭建、配置和部署到云服务器的整个过程,免得以后自己忘了。

Hexo本地安装

环境准备

  • 下载安装Node.js(Node.js 版本需不低于 10.13,Node自带npm)
  • 下载安装Git

安装Hexo

  • 在自己喜欢的位置新建Hexo文件夹
  • 进入新建的Hexo文件夹,右键点击打开Git Bash Here
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #在Hexo目录下安装Hexo
    npm install -g hexo-cli
    #检测Hexo是否安装成功
    hexo -v
    #初始化Hexo,并新建blog文件夹
    hexo init blog
    #转到刚初始化的blog文件夹下,安装npm依赖项,并生成静态文件
    cd blog
    npm install
    hexo g
    #启动Hexo服务器
    hexo s
  • 访问http://localhost:4000,出现Hexo页面

安装Shoka主题

  • 安装主题

    1
    2
    # cd your-blog
    git clone https://github.com/amehime/hexo-theme-shoka.git ./themes/shoka
  • 安装主题依赖插件

  • 修改Hexo博客配置文件_config.yml

    1
    theme: Shoka
  • 生成静态文件并发布

    1
    2
    hexo g
    hexo s
  • 访问http://localhost:4000 进行预览,没问题的情况下就可以将博客部署到服务器上了。

部署到云服务器

  • 在自己的电脑上生成 Git 密钥

    1
    ssh-keygen -C "your@mail.com"

    一路回车,这时你应该可以在 ~/.ssh/ 目录下看到两个刚刚生成好的密钥文件:
    1. 公钥:id_rsa.pub
    2. 私钥:id_rsa
    我们一会需要把公钥的内容拷贝到服务器上

  • 服务器环境配置
    一般刚重装完系统的云服务器非常纯净,什么也没有,所以我们要一点点安装我们所需的内容
    1. Git
    2. Nginx

  • Git的安装和配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    #首先需要安装包的依赖
    yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
    yum install gcc perl-ExtUtils-MakeMaker
    #进入指定目录(这里选择 `usr/local/src`)选择最新版本 [Git](https://mirrors.edge.kernel.org/pub/software/scm/git/) (这里使用 `2.37.3`)下载并解压
    cd /usr/local/src
    wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.37.3.tar.gz
    tar -zxvf git-2.37.3.tar.gz
    #解压出来的 Git 文件都是源文件,我们需要进行编译,进入 Git 解压目录,进行编译和安装, 安装位置(这里选择 `usr/local/git`), 整个过程可能需要一定等待。
    cd git-2.37.3
    make prefix=/usr/local/git all
    make prefix=/usr/local/git install
    #安装好后,我们需要配置环境变量,打开环境变量配置文件:
    vim /etc/profile
    #在文件底部添加 Git 安装目录信息。
    PATH=$PATH:/usr/local/git/bin
    export PATH
    #刷新环境变量,使之生效
    source /etc/profile
    #此时 Git 应该已经安装完成,可以查看 Git 版本号是否和你指定的版本一样:
    git --version
  • Git 新用户与配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #创建 git 用户和密码
    adduser git
    passwd git
    #将 git 用户添加到 sudoers 文件中
    chmod 740 /etc/sudoers
    vim /etc/sudoers
    #在Allow root to run any commands anywhere下面添加 git 用户内容, 保存并退出
    git ALL=(ALL) ALL
    #修改回 sudoers 文件权限
    chmod 400 /etc/sudoers
  • 测试
    通过Git Bash Here将上面本地生成的 id_rsa.pub 公钥内容拷贝到远端服务器, 这个命令会默认在远端服务器 git 用户主目录下生成 authorized_keys 文件 (~/.ssh/authorized_keys), 其中 server_ip 为公网 IP,不是内部 IP,别拷贝错了

    1
    ssh-copy-id -i ~/.ssh/id_rsa.pub git@server_ip

    此时可以通过 ssh 命令(加上 -v 命令,可以输出详细 log)测试连接

    1
    ssh -v git@server_ip

博客网站目录配置

  • 创建博客网站目录位置
    1
    2
    3
    4
    #为博客网站创建根目录(这里选择 `/home/hexo`)
    mkdir /home/hexo
    #赋予 git 用户权限
    chown git:git -R /home/hexo
  • 自动化配置
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
      #指定目录位置(这里选择 git 用户主目录 `/home/git`)创建一个名为 `blog.git` 的 `bare repo`
    cd /home/git
    git init --bare blog.git
    #同样赋予 git 用户相应权限
    chown git:git -R blog.git
    #使用自动化配置,自然是要用到 Git 的钩子函数,这里我们需要 `post-receive`,在博客 hooks 目录下新建该文件:
    vim blog.git/hooks/post-receive
    #然后添加如下内容(注意目录匹配),保存并退出:
    #!/bin/sh
    git --work-tree=/home/hexo --git-dir=/home/git/blog.git checkout -f
    #最后,赋予这个文件可执行权限
    chmod +x /home/git/blog.git/hooks/post-receive
    #接下来,创建个链接,以防后续 deploy 过程出错
    sudo ln -s /usr/local/git/bin/git-receive-pack /usr/bin/git-receive-pack

Nginx 安装和配置

  • 安装

    1
    2
    yum install -y nginx
    systemctl start nginx.service

    这时,在浏览器中输入公网 IP 地址,应该可以看到 Nginx 默认的欢迎界面

  • 配置

    这里配置 Nginx,将所有 Http 请求都重定向为 Https 请求,这就需要我们有 SSL 证书。
    通过 scp 命令将 SSL 证书拷贝到远端服务器, 正常应该将 Nginx 的证书存放在 /etc/nginx/cert 目录下,这里选择存放在 /home/ssl_cert 下(如果目录不存在,请自行创建)

    1
    2
    scp ~/路径/证书.key root@server_ip:/home/ssl_cert
    scp ~/路径/证书.pem root@server_ip:/home/ssl_cert

    然后打开 Nginx 的配置文件进行整体配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
server{
listen 80;
server_name dayarch.top; # 个人域名
rewrite ^(.*)$ https://$server_name$1 permanent; # 重定向
}

server {
listen 443;
server_name dayarch.top; # 个人域名
ssl on;
ssl_certificate /路径/证书.pem; # .pem 证书
ssl_certificate_key /路径/证书.key; # .key 证书
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;

location / {
root /home/hexo; # 博客网站主目录
index index.php index.html index.htm;
}

error_page 404 /404.html;
location = /404.html {
root /usr/share/nginx/html;
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}

通过 nginx -t 命令进行检查,一切正常会输出如下结果:

1
2
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

重启 Nginx 服务

1
systemctl restart nginx.service

至此,所有的准备工作都做完了,接下来,我们需要做一些博客配置

本地博客配置修改

我们需要将远端服务器的 Git 仓库信息配置到 Hexo 站点配置文件(_config.yml)中

1
2
3
4
deploy:
- type: git
repo: git@server_ip:/home/git/blog.git
branch: master

陆续执行 hexo 的命令进行部署

1
2
3
hexo clean
hexo g
hexo d

至此,距离成功,我们只差最后一步

域名解析

配置好域名解析,将其指向云服务器的公网地址即可。

忍不住又在服务器上花钱了

  最近这个月沉迷服务器无法自拔,先买了华为云的云服务器,然后又买了天翼云的云服务器,博客也从之前的腾讯云香港搬到了华为云。
  本来现在天翼云的服务器还在备案,想着等备案下来之后再把博客搬到天翼云的,结果现在又变卦了,买了台镇江的物理服务器,过几天应该会把博客搬到镇江的服务器上。
  这个月买服务器都花了接近2000块钱了。
  这台镇江的独服配置是我有史以来用过的配置最高的服务器,16核处理器、32G内存、512G硬盘、50M宽带,是我以前最开始接触建站时想都不敢想的配置 。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
-------------------- A Bench.sh Script By Teddysun -------------------
Version : v2022-06-01
Usage : wget -qO- bench.sh | bash
----------------------------------------------------------------------
CPU Model : Intel(R) Xeon(R) CPU E5-2689 0 @ 2.60GHz
CPU Cores : 32 @ 2300.325 MHz
CPU Cache : 20480 KB
AES-NI : Enabled
VM-x/AMD-V : Enabled
Total Disk : 467.5 GB (5.4 GB Used)
Total Mem : 31.3 GB (1.4 GB Used)
Total Swap : 976.0 MB (0 Used)
System uptime : 0 days, 21 hour 22 min
Load average : 0.00, 0.00, 0.00
OS : Debian GNU/Linux 11
Arch : x86_64 (64 Bit)
Kernel : 5.10.0-8-amd64
TCP CC :
Virtualization : Dedicated
Organization : AS56046 China Mobile communications corporation
Location : Zhenjiang / CN
Region : Jiangsu
----------------------------------------------------------------------
I/O Speed(1st run) : 843 MB/s
I/O Speed(2nd run) : 886 MB/s
I/O Speed(3rd run) : 888 MB/s
I/O Speed(average) : 872.3 MB/s
----------------------------------------------------------------------
Node Name Upload Speed Download Speed Latency
Speedtest.net 47.48 Mbps 97.68 Mbps 2.46 ms
Los Angeles, US 15.84 Mbps 1.51 Mbps 175.46 ms
Montreal, CA 15.57 Mbps 1.13 Mbps 205.37 ms
Paris, FR 18.21 Mbps 1.54 Mbps 224.56 ms
Amsterdam, NL 11.68 Mbps 1.45 Mbps 226.40 ms
Shanghai, CN 44.57 Mbps 98.55 Mbps 11.79 ms
Singapore, SG 4.43 Mbps 12.94 Mbps 428.94 ms
----------------------------------------------------------------------
Finished in : 7 min 46 sec
Timestamp : 2022-07-06 21:40:17 CST
----------------------------------------------------------------------

  我从最开始建站时用别人的免费主机,再到收费主机,后来到VPS、云服务器,到现在的物理服务器,一步步升级上来都花了8年时间。估计要是以后在升级的话,那就应该是托管服务器了。

记录Ubuntu20.04升级到Ubuntu22.04的过程

  今天我又剁手买了台天翼云的服务器,想着准备把博客迁移到天翼云服务器上。但是在选择操作系统的时候发现没有最新的Debian11系统镜像,然后纠结了半天,选择了Ubuntu 20.04。
  但是本着“新机器新系统”的原则,感觉不把系统升级到最新就浑身不舒服,然后百度了一下,根据《搬瓦工 Ubuntu 20.04 系统手动更新升级到 Ubuntu 22.04 失败记录》动手操作,最后成功升级为Ubuntu 22.04并安装最新内核。

升级前的准备

  一定记得要备份数据
  1、首先升级系统到最新状态

1
2
3
4
5
apt update
apt upgrade -y
apt dist-upgrade -y
apt autoclean
apt autoremove -y

  2、升级之后需要reboot重启服务器,让最新的内核生效。

升级方法一(个人不推荐)

  第一种方法是使用do-release-upgrade命令,这个方法比较简单,但不知道为啥,我使用这个方法时报了错,没有成功,所以我个人不推荐这个方法。

1
2
3
4
#首先安装 update-manager-core 软件包
apt install update-manager-core
#然后运行 do-release-upgrade -d 即可更新,按照提示操作
do-release-upgrade -d

升级方法二

  1、首先更新 apt 源,替换 focal 为 jammy,注意这一步第二条代码会报错,但不影响进程。

1
2
sed -i 's/focal/jammy/g' /etc/apt/sources.list
sed -i 's/focal/jammy/g' /etc/apt/sources.list.d/*.list

  国内服务器可以修改默认的系统apt源文件/etc/apt/sources.list,将archive.ubuntu.com为mirrors.tuna.tsinghua.edu.cn,国外服务器不用修改。
  2、然后再次更新系统。

1
2
3
apt update
apt upgrade -y
apt dist-upgrade -y

  更新过程种会提示一些软件是否需要自动重启,选 Yes 即可,以及一些软件的配置文件是否需要更新,按照自己的情况选择即可,默认回车即视为使用旧的配置文件,一般会出现在 OpenSSH 等软件的更新上。
  3、更新后删除不必要的软件和依赖。

1
2
apt autoclean
apt autoremove -y

  4、最后再次使用reboot命令重启系统,耐心等待后,就已经更新到了最新的 Ubuntu 22.04 Jammy 和内核了。

参考文章

  1、《搬瓦工 Ubuntu 20.04 系统手动更新升级到 Ubuntu 22.04 失败记录》
  2、《Ubuntu 22.04 升级教程:从 Ubuntu 20.04 升级到 Ubuntu 22.04 方法》
  3、《Ubuntu 20.04 Focal 升级 Ubuntu 22.04 Jammy》

❌