Category: 技术折腾

服务器、网络、硬件与自建工具的实践记录。

  • 如何解决AV_nvlddmkm!unknown_function错误

    如何解决AV_nvlddmkm!unknown_function错误

    最近重置了Windows,并在玩游戏时经常遇到崩溃问题。没有蓝屏,电脑突然冻结,屏幕变黑,然后重新启动。尝试回滚驱动程序和尝试其他在线解决方案,但没有帮助。是否有其他人遇到过这个问题或知道如何解决?

    故障报告

    DRIVER_IRQL_NOT_LESS_OR_EQUAL (d1)
    尝试访问一个可分页(或完全无效)的地址,其中断请求级别(IRQL)太高。这通常是由驱动程序使用不正确的地址引起的。
    如果有内核调试器可用,请获取堆栈回溯。
    Arguments:
    Arg1: 0000000000001008, 引用的内存
    Arg2: 0000000000000009, IRQL
    Arg3: 0000000000000000, 值0 = 读操作,1 = 写操作
    Arg4: fffff800589ad700, 引用内存的地址

    故障详情

    • 错误代码:d1
    • 引用的内存:0000000000001008
    • IRQL:0x9
    • 错误地址:0xfffff800589ad700

    错误分析

    这个错误似乎与nvlddmkm.sys驱动程序有关。nvlddmkm.sys是NVIDIA显卡驱动程序的一部分,通常与显卡问题相关。在你的情况中,这可能是导致系统崩溃的原因之一。

    解决方法

    以下是一些可能的解决方法,你可以尝试:

    1. 更新显卡驱动程序:首先,尝试更新NVIDIA显卡驱动程序到最新版本。前往NVIDIA官方网站,下载并安装最新的驱动程序。有时,驱动程序更新可以修复与显卡相关的问题。

    2. 卸载并重新安装驱动程序:如果更新驱动程序没有解决问题,可以尝试卸载现有的NVIDIA驱动程序,然后重新安装它们。确保在卸载之前备份重要数据。

    3. 检查硬件:由于你提到其中一个CPU核心在Prime95压力测试中失败,这可能表明你的系统存在硬件问题。在尝试软件解决方案之前,确保所有硬件都正常工作。检查内存、CPU和GPU是否正常运行,确保没有过热问题。

    4. 检查电源供应:电源问题也可能导致系统崩溃。确保电源供应稳定,没有过载或其他问题。你的电源配置似乎足够强大,但仍然需要确保它没有问题。

    5. 检查外部设备:你提到在拔掉”HyperX Cloud II 7.1″ USB dongle后,其中一个错误消失。有时,外部设备驱动程序问题也会导致系统崩溃。确保所有外部设备的驱动程序都是最新的,并且与你的操作系统兼容。

    6. 查看事件查看器:继续监视事件查看器,看看是否有其他与系统崩溃相关的信息。这可能会提供更多关于问题原因的线索。

    7. 进行系统还原:如果你之前的Windows重置是为了解决其他问题,考虑使用系统还原将系统恢复到之前的稳定状态。

    总结

    AV_nvlddmkm!unknown_function错误可能与NVIDIA显卡驱动程序或硬件问题有关。尝试上述解决方法,以确定并修复问题。如果问题仍然存在,请考虑联系NVIDIA支持或专业技术人员以获取更多帮助。

  • 了解TLS协议的演进:从TLS 1.0到TLS 1.3

    了解TLS协议的演进:从TLS 1.0到TLS 1.3

    TLS(Transport Layer Security)是保护网络通信安全的关键协议之一。它通过加密数据传输,确保您的敏感信息在互联网上不被窃取或篡改。在过去的几年里,TLS协议经历了多次演进,以提高安全性和性能。本文将带您深入了解TLS的演进历程,从TLS 1.0到TLS 1.3,了解每个版本的特点和重要变化。

    TLS 1.0:初始版本的TLS

    TLS 1.0于1999年发布,是第一个广泛使用的TLS版本。它的目标是取代SSL(Secure Sockets Layer)协议,以更安全地加密网络通信。然而,多年来,TLS 1.0暴露出一些严重的安全漏洞,如POODLE攻击,因此它逐渐被弃用。

    主要特点:

    • 数据加密和认证机制。
    • 使用对称密钥进行数据加密,但存在安全漏洞。

    TLS 1.1:修复安全漏洞

    TLS 1.1于2006年发布,旨在修复TLS 1.0中的一些安全漏洞。它增强了协议的安全性,但仍然存在一些问题,导致它在实际应用中受到限制。

    主要特点:

    • 修复了TLS 1.0的一些安全漏洞。
    • 强制对称密钥的加密安全。

    TLS 1.2:更强的安全性和性能

    TLS 1.2于2008年发布,带来了显著的改进,不仅在安全性方面更为强大,还提高了性能。它成为了大多数网站和应用程序的首选TLS版本。

    主要特点:

    • 引入更安全的加密算法。
    • 提高了性能,减少了握手时间。

    TLS 1.3:现代化的TLS

    TLS 1.3于2018年发布,是TLS协议的最新版本。它旨在进一步提高安全性、降低延迟,并简化协议。TLS 1.3的部署正在迅速增长,为用户提供更好的网络安全体验。

    主要特点:

    • 引入更多先进的加密算法。
    • 大幅简化握手过程,降低延迟。
    • 提供更好的前向保密性。

    为什么要升级到TLS 1.3?

    随着网络攻击的不断演进,保持协议的最新版本至关重要。升级到TLS 1.3的好处包括:

    • 更强的安全性:TLS 1.3引入了更多安全性特性,降低了受攻击的风险。
    • 更快的性能:简化的握手过程减少了延迟,提高了性能。
    • 更好的用户体验:用户可以享受更快速、更安全的网络连接。

    如何升级到TLS 1.3?

    要升级到TLS 1.3,您需要以下步骤:

    1. 更新您的服务器和客户端软件,以支持TLS 1.3。
    2. 禁用不安全的TLS版本,如TLS 1.0和TLS 1.1。
    3. 配置您的服务器以使用TLS 1.3。
    4. 进行测试和监视以确保一切正常运行。

    结论

    TLS协议的演进对于保护网络通信的安全至关重要。从TLS 1.0到TLS 1.3,每个版本都带来了更多的安全性和性能优势。升级到最新的TLS 1.3版本是确保您的网络通信安全的关键一步。不仅如此,它还可以提高用户体验,让您的网络连接更加快速和可靠。

  • 探索不同CPU架构:从x86到RISC-V

    探索不同CPU架构:从x86到RISC-V

    在数字时代,计算机的核心是中央处理单元(CPU)。然而,当你深入了解计算机世界时,你会发现存在许多不同的CPU架构,例如x86、AArch64、RISC-V和PowerPC。这些术语可能会令人困惑,但它们实际上代表着不同的CPU设计和指令集架构。本文将带您深入了解这些CPU架构,以及它们在计算机世界中的作用。

    CPU架构概览

    首先,让我们简要了解一下CPU架构的概念。CPU架构实际上是一种指令集体系结构(ISA,Instruction Set Architecture),它定义了计算机CPU如何解释二进制中的1和0。在计算机世界中,有几个重要的CPU架构,包括x86、ARM、RISC-V和PowerPC。

    x86(AMD/Intel)

    x86架构最初由Intel创建,最早出现在8085微处理器中。8085微处理器拥有16位宽的内存总线。后来,AMD也加入了这个领域,遵循了Intel的设计,直到他们创建了自己的64位架构,超越了Intel。

    在x86架构中,有两个主要的子集:

    • i386:如果你拥有2007年之前的计算机,那么你的CPU架构可能是i386,这是AMD/Intel x86架构的32位“变种”。
    • x86_64/x86/amd64:这三个术语在不同的项目中可以互换使用,但它们都指的是x86 AMD/Intel架构的64位“变种”。x86_64这个术语在很多项目中被广泛使用(并且更受欢迎),但在FreeBSD项目中,64位x86架构被称为amd64。不过,更广泛接受的术语仍然是x86_64。

    x86架构具有一个特殊之处,即在从32位x86(i386)过渡到64位x86(x86_64)时,CPU制造商确保CPU可以同时运行32位和64位指令。因此,有时当你看到x86时,它也可以意味着“它只能在64位计算机上运行,但如果该计算机可以运行32位指令,你也可以在上面运行32位用户软件”。

    ARM

    ARM是一家公司,他们创建了自己的CPU ISA规范,并设计并许可其他公司设计他们自己的CPU核心,使用ARM CPU ISA。ARM的CPU核心广泛应用于移动电话和单板计算机(如树莓派系列)。最近,苹果从x86_64处理器转向了他们自己设计的ARM处理器,用于他们的笔记本电脑和台式机产品。

    ARM架构也有基于内存总线宽度的32位和64位两个子集。官方承认的名称分别是AArch32和AArch64。AArch字符串代表“Arm Architecture”,这些都是CPU在执行指令时可能的模式。

    实际上,符合ARM CPU ISA的指令规范的名称被称为ARMvX,其中X是规范版本的代号。迄今为止,已经有9个主要版本的规范,从ARMv1到ARMv7,定义了32位CPU的CPU架构规范。而ARMv8和ARMv9是64位ARM CPU的规范。每个ARM CPU规范还有更多的子规范,以满足不同应用需求。

    有时人们在讨论64位ARM架构时会使用arm64这个术语,尽管AArch64是官方认可的名称。这是因为在一些官方文档中,ARM也将64位ARM架构称为arm64。而在Linux代码中,AArch64通常被称为arm64。

    RISC-V

    RISC-V是一个开源的CPU ISA规范,它并不意味着CPU本身是开源的,而是一种标准,类似于以太网。以太网规范是开源的,但你购买的电缆、路由器和交换机是需要付费的。RISC-V CPU也是如此。

    RISC-V CPU架构有32位和64位两种,但目前大多数客户端CPU都是64位。不同的RISC-V CPU可能支持不同的扩展,但最基本的扩展是’Base Integer Instruction Set’(rv64i)。

    不同CPU架构的应用和选择

    在不同的CPU架构中,有许多不同的应用和选择。x86架构是最广泛和容易获得的CPU架构,特别是因为Intel和AMD都使用它。ARM架构主要用于移动电话和单板计算机。RISC-V正在努力使硬件更广泛可用,尽管它相对较新。而PowerPC架构主要在服务器中使用。

    在选择CPU架构时,你需要考虑你的应用需求和可用性。不同的CPU架构可能在不同的领域有不同的优势。例如,如果你需要高性能的桌面计算机,x86_64架构可能是一个不错的选择。如果你在嵌入式系统或单板计算机领域工作,你可能会更倾向于ARM或RISC-V。在选择CPU架构时,也需要考虑操作系统和软件的支持情况。

    总结

    在计算机世界中,存在多种CPU架构,每种架构都有其独特的特点和应用领域。从x86到ARM、RISC-V和PowerPC,每种CPU架构都有其自己的历史和发展轨迹。在选择合适的CPU架构时,需要考虑你的应用需求和可用性,以确保你的计算机系统能够高效地运行。

    希望本文帮助您更好地理解不同CPU架构,并为您在计算机世界中的决策提供一些指导。

  • 如何在VS Code中预览Markdown文件

    如何在VS Code中预览Markdown文件

    在数字时代,编程已经成为了一项不可或缺的技能。无论是开发应用程序、网站,还是进行数据分析,编程都扮演着关键的角色。而在编程的世界中,有一款软件被誉为”一切都能做到的软件”,那就是Visual Studio Code,通常简称为VS Code。

    VS Code是一款强大的代码编辑器,它的强大之处在于它的可扩展性。你几乎可以找到支持任何编程语言的插件,以及各种能够扩展其功能的插件。其中之一就是将VS Code用作Markdown文本编辑器的功能。

    使用VS Code预览Markdown

    在VS Code中预览Markdown文件非常简单,有两种常用的方法:

    1. 使用侧边栏(推荐方法)

    首先确保你正在编辑的文件具有.md扩展名,这表示它是一个Markdown文件。

    使用侧边栏进行Markdown预览非常方便。只需按下快捷键Ctrl + K,然后再按下V键,就会在当前文件的右侧打开一个预览面板。

    2. 在新标签页中打开预览

    如果你不喜欢频繁使用快捷键,也可以使用VS Code中的预览按钮来轻松打开预览面板。该按钮通常位于编辑器的顶部工具栏中。

    这是一种非常简单的方法,特别适合刚开始使用VS Code或不习惯使用快捷键的人。

    在不同标签页中预览Markdown

    如果你同时在多个项目上工作,不想为预览窗口分配半个屏幕,可以选择在不同标签页中打开Markdown预览。

    要使用这个功能,只需按下快捷键Ctrl + Shift + V,这与在终端中粘贴文本的快捷键相似。

    结语

    如你所见,使用VS Code预览Markdown文件非常简单,无论是使用快捷键在侧边栏中打开预览,还是使用预览按钮或在不同标签页中打开预览,都能够帮助你更轻松地编辑和查看Markdown文件。希望这篇教程对你有所帮助,让你更高效地使用VS Code来处理Markdown文档。

    如果你想了解更多关于VS Code的使用技巧,或者有任何问题,请随时提出。

  • 如何使用Nix包管理器管理Linux软件包

    如何使用Nix包管理器管理Linux软件包

    NixOS是一种不可变的Linux发行版,吸引人的一个原因是它的Nix包管理器。Nix包管理器拥有超过80,000个软件包,虽然可能不及Debian软件包的数量,但仍然令人印象深刻。

    好消息是,你不必为了使用Nix包管理器而安装NixOS。就像Homebrew和Rust的Cargo包管理器一样,你可以在当前的Linux发行版中使用Nix包管理器。

    为什么要这么做呢?因为有时你可能会发现某个新应用程序只有以Nix包格式提供。虽然这种情况不常见,但确实可能发生。

    在本教程中,我将为你介绍以下内容:

    1. 安装Nix包管理器
    2. 搜索和安装软件包
    3. 在不安装软件包的情况下尝试/测试软件包
    4. 更新软件包
    5. 移除软件包
    6. 在其他Linux发行版上安装Nix包管理器

    安装Nix包管理器

    有两种方式安装Nix包管理器:全局安装和本地安装。

    ?
    全局安装意味着Nix包管理器将对系统上的每个用户可用,而本地安装只针对当前用户。官方Nix文档建议使用全局安装。

    全局安装

    如果你想要全局安装Nix包管理器,那么需要执行以下命令:

    sh <(curl -L https://nixos.org/nix/install) --daemon

    执行上述命令后,你需要输入y并按下Enter键:

    安装Nix包管理器全局安装

    完成后,关闭当前终端,因为它不会在当前终端会话中工作。

    本地安装

    如果你喜欢本地安装并且不想每次都使用sudo,那么执行以下命令:

    sh <(curl -L https://nixos.org/nix/install) --no-daemon

    在被要求确认时输入y并按下Enter键。

    安装Nix包管理器本地安装

    完成后,关闭当前终端会话,并启动一个新的终端以使用Nix包管理器。

    搜索和安装软件包

    安装了Nix包管理器之后,下一步是搜索软件包。

    首先,访问Nix搜索的官方页面,然后输入你想安装的软件包名称。

    从给定的描述中,你可以找到你要找的软件包,然后选择nix-env以进行永久安装。

    例如,如果我搜索“Firefox浏览器”,则会得到以下结果:

    搜索要安装的软件包使用Nix包管理器

    我上面提到的最后一步(复制命令)只是提供了一个命令,你需要在终端中执行它以进行安装。

    在我的情况下,它为我提供了以下安装Firefox的命令:

    nix-env -iA nixpkgs.firefox

    安装完成后,你可以使用以下命令列出已安装的软件包:

    nix-env -q

    使用Nix包管理器列出已安装的软件包

    在不安装软件包的情况下尝试/测试软件包

    到目前为止,这是Nix包管理器最棒的功能,因为你可以使用/测试甚至未安装的软件包!

    为此,你可以使用nix shell,它允许你使用指定的软件包进入交互式shell,并在关闭后无法再访问该软件包。

    很酷,对吧?

    要使用nix shell来访问你喜欢的软件包,使用以下命令语法:

    nix-shell -p <软件包名称>

    例如,我曾经想要使用neofetch,所以我使用了以下命令:

    nix-shell -p neofetch

    使用Nix包管理器在不安装软件包的情况下使用软件包

    要退出shell,只需执行exit命令:

    exit

    使用Nix包管理器更新软件包

    使用Nix包管理器更新软件包非常简单。

    要更新软件包,首先需要使用以下命令来更新通道:

    nix-channel --update

    接下来,你可以通过执行以下命令以干扰方式运行更新命令来列出过时的软件包:

    nix-env --upgrade --dry-run

    在我的情况下,Firefox浏览器已过时需要更新!

    要更新单个软件包,使用以下命令:

    nix-env -u <软件包名称>

    如果你想一次更新所有软件包,使用以下命令:

    nix-env -u

    使用Nix包管理器删除软件包

    要删除软件包,只需执行以下命令:

    nix-env --uninstall [软件包名称]

    例如,如果我想删除Firefox浏览器,我将使用以下命令:

    nix-env --uninstall firefox

    这就是使用Nix包管理器管理Linux软件包的方法。

    在其他Linux发行版上安装Nix包管理器

    如果你使用的不是NixOS,而是其他Linux发行版,也可以安装Nix包管理器。

    要在其他发行版上安装Nix,请参考Nix官方文档以获取详细的安装说明。

  • 让你的Linux终端变得有趣:Cmatrix命令

    让你的Linux终端变得有趣:Cmatrix命令

    在Linux和Unix系统上,有一款娱乐性十足的命令行程序叫做Cmatrix。它可以创建一个类似于电影《黑客帝国》中的“矩阵”风格的显示效果,屏幕上会下起一串绿色字符,就像电影中的情节一样。

    安装Cmatrix在Ubuntu和其他Linux系统中

    Cmatrix已经包含在几乎所有主要Linux发行版的官方仓库中。在Ubuntu中,你可以使用以下命令来安装Cmatrix:

    sudo apt install cmatrix

    Fedora用户应该使用以下命令:

    sudo dnf install cmatrix

    Arch Linux用户可以使用pacman:

    sudo pacman -S cmatrix

    基本的Cmatrix选项

    Cmatrix命令本身提供了多个选项,可以改变默认输出(绿色字符流)的外观。

    粗体字符

    你可以使用-b选项来切换粗体字符,这样做会使一些字符变粗,效果如下:

    cmatrix -b

    异步滚动

    通常情况下,Cmatrix会创建一个同步滚动的显示效果,字符以同步的方式下落。但在异步滚动模式下,字符的速度会有所变化,创建出更加动态和引人入胜的显示效果。

    你可以使用-a选项来启用异步滚动:

    cmatrix -a

    改变字符速度

    你可以使用-u选项来改变字符下落的速度。要让字符下落得更快,可以使用以下命令:

    cmatrix -u 2

    默认的屏幕更新延迟值是4,如果你减小这个值,速度会增加,反之亦然。要以较慢的速度运行Cmatrix,请使用以下命令:

    cmatrix -u 9

    使用不同的颜色

    你可以在Cmatrix中使用不同的颜色,只需使用-C选项即可。例如,要使用洋红色,可以运行以下命令:

    cmatrix -C magenta

    支持的颜色包括绿色、红色、蓝色、白色、黄色、青色、洋红色和黑色。

    Cmatrix执行期间的按键操作

    即使在Cmatrix中不提供任何选项,你也可以在执行过程中提供一些输入。以下是一些操作:

    改变颜色

    在运行Cmatrix时,你可以按下特定的键来更改字符的颜色。例如,按下!键将字符更改为红色,按下@键将字符更改为绿色,以此类推。

    调整更新速度

    在运行时,你可以使用数字键0到9来调整更新速度。

    与Lolcat一起使用的Cmatrix

    你可以将Cmatrix与Lolcat命令结合使用,使其变得更加有趣。在Ubuntu中,你可以使用以下命令安装Lolcat:

    sudo apt install lolcat

    现在,只需将Cmatrix的输出导向Lolcat,你就会得到一个彩虹效果:

    cmatrix | lolcat

    还可以尝试将上述Cmatrix的所有功能与Lolcat一起使用。

    或者,你可以为实现彩虹效果使用斜条纹,这会带来不同的体验:

    cmatrix | lolcat -p 100

    此外,你还可以反转背景和前景颜色,让终端充满丰富的色彩:

    cmatrix | lolcat -i

    Cmatrix本身对CPU要求较高,所以使用其他命令时请谨慎。

    结语

    Cmatrix是一个有趣的命令行程序,可以为你的Linux终端带来一些娱乐和视觉效果。无论你是想在终端中展示炫彩效果,还是只是为了消遣,Cmatrix都是一个有趣的工具,但请注意,它对CPU要求较高,使用时要谨慎。

    无论你是一个Linux新手还是经验丰富的用户,都可以通过Cmatrix为你的终端增添一些趣味和色彩。试试这些选项,看看它们如何改变你的终端体验!

  • 如何释放Ubuntu中`/boot`分区的空间

    如何释放Ubuntu中`/boot`分区的空间

    不久前,我收到了一个警告,提示我的/boot分区几乎已满或没有剩余空间了。是的,我使用的是一个独立的/boot分区,这在如今并不常见,但我相信它在某些情况下仍然非常有用。

    这是我第一次遇到这样的错误,让我感到困惑。虽然在Ubuntu(或基于Ubuntu的发行版)上有多种方法可以释放空间,但并不是所有方法都在这种情况下有用。

    因此,我决定编写这篇文章,介绍我采取的步骤来释放/boot分区中的一些空间。

    方法一:使用apt autoremove

    你不必是一个终端专家来执行这个操作,只需一个命令,你就可以删除未使用的内核,以释放/boot分区中的空间。

    你只需输入以下命令:

    sudo apt autoremove

    这不仅会删除未使用的内核,还会清理掉你不需要的依赖项,或者那些没有被任何已安装工具所需要的依赖项。

    一旦你输入这个命令,它会列出将要被删除的内容,然后你只需要确认操作。如果你感到好奇,你可以仔细查看它删除了什么。

    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    The following packages will be REMOVED:
      linux-headers-5.4.0-81 linux-headers-5.4.0-81-generic linux-image-5.4.0-81-generic linux-modules-5.4.0-81-generic linux-modules-extra-5.4.0-81-generic
    0 upgraded, 0 newly installed, 5 to remove and 29 not upgraded.
    After this operation, 470 MB disk space will be freed.
    Do you want to continue? [Y/n]

    你需要按下Y来继续。

    需要注意的是,这个方法只在你的/boot分区仍有一点空间并出现警告时才有效。但如果你的/boot分区已满,APT甚至可能无法工作。

    在下一个方法中,我将介绍两种不同的方法,通过这两种方法,你可以使用图形界面和终端来删除旧的内核以释放空间。

    方法二:手动删除未使用的内核(如果apt autoremove不起作用)

    在尝试删除旧内核以释放空间之前,你需要确定当前正在使用的内核,并确保你不删除它。

    要检查你的内核版本,可以在终端中输入以下命令:

    uname -r

    uname命令通常用于获取Linux系统的信息。在这里,这个命令会显示当前正在使用的Linux内核版本。它应该看起来像这样:

    5.4.0-81-generic

    现在,你知道了你当前使用的Linux内核是什么,你只需要删除与这个版本不匹配的内核。你应该把它记下来,以确保你不会意外删除它。

    使用图形界面工具删除旧的Linux内核

    你可以使用Synaptic Package Manager或类似的工具(如Stacer)来开始。个人而言,当我遇到/boot分区已满且APT无法正常工作时,我使用了Stacer来删除旧的内核。让我展示你Stacer的使用方法。

    首先,你需要启动“Stacer”,然后在界面中导航到软件包卸载器,如下面的截图所示。

    stacer

    在这里,搜索“image”,你将找到Linux内核的镜像文件。你只需删除旧的内核版本,而不是你当前正在使用的内核镜像。

    linux-image-5.4.0-80-generic
    linux-image-5.4.0-81-generic

    我在上面的截图中标出了我当前使用的内核和旧的内核版本,因此你必须对你系统上的内核版本要小心。

    你不需要删除其他任何东西,只需删除那些旧的内核版本。

    同样,只需在软件包列表中搜索“headers”,并删除旧的版本,如下所示。

    linux-headers-5.4.0-80-generic
    linux-headers-5.4.0-81-generic

    警告:不要删除“linux-headers-generic”。只关注带有版本号的那些。

    这样,你就完成了,APT将恢复工作,你已成功释放了/boot分区的一些空间。同样,你可以使用任何你熟悉的其他软件包管理器来执行此操作。

    使用命令行删除旧的内核

    这与使用图形界面相同,只是使用终端而已。因此,如果你无法使用图形界面(例如,如果是远程机器/服务器)或者你更喜欢使用终端,你可以按照以下步骤操作。

    首先,使用以下命令列出所有已安装的内核。

    ls -l /boot

    它应该看起来像这样:

    total 285380
    -rw-r--r-- 1 root root  24838092 Jul 19  2021 config-5.4.0-77-generic
    -rw-r--r-- 1 root root  24838092 Oct  7  2021 config-5.4.0-88-generic
    -rw-r--r-- 1 root root  24838092 Jan 20 13:16 config-5.4.0-91-generic
    -rw-r--r-- 1 root root      3181 Mar  1  2021 grub.cfg
    -rw-r--r-- 1 root root  19604448 Jul 19  2021 initrd.img-5.4.0-77-generic
    -rw-r--r-- 1 root root  19604448 Oct  7  2021 initrd.img-5.4.0-88-generic
    -rw-r--r-- 1 root root  19604448 Jan 20 13:17 initrd.img-5.4.0-91-generic
    -rw-r--r-- 1 root root   1827048 Mar  1  2021 memtest86+_multiboot.bin
    -rw-r--r-- 1 root root   1839672 Mar  1  2021 memtest86+.elf
    -rw-r--r-- 1 root root   1843712 Mar  1  2021 memtest86+_lpia.bin
    -rw-r--r-- 1 root root      2058 Jul 19  2021 System.map-5.4.0-77-generic
    -rw-r--r-- 1 root root      2058 Oct  7  2021 System.map-5.4.0-88-generic
    -rw-r--r-- 1 root root      2058 Jan 20 13:16 System.map-5.4.0-91-generic
    -rw-r--r-- 1 root root  67297200 Jul 19  2021 vmlinuz-5.4.0-77-generic
    -rw-r--r-- 1 root root  67297200 Oct  7  2021 vmlinuz-5.4.0-88-generic
    -rw-r--r-- 1 root root  67297200 Jan 20 13:17 vmlinuz-5.4.0-91-generic

    标记为“old”的或与当前内核版本不匹配的内核就是你可以删除的未使用内核。

    现在,你可以使用rm命令从/boot分区中删除特定的内核,使用以下命令中的每一个(每个命令删除一个内核):

    sudo rm /boot/vmlinuz-5.4.0-77-generic

    确保检查你系统的版本 – 它可能与你的系统不同。

    如果你有很多未使用的内核,这将需要一些时间。因此,你也可以使用以下命令一次性删除多个内核:

    sudo rm /boot/*-5.4.0-{77}-*

    需要澄清的是,你需要将内核版本的最后部分/代码用逗号分隔,以一次性删除它们。

    例如,如果我有两个旧的内核版本5.4.0-77-generic和5.4.0-88-generic,那么命令将是:

    sudo rm /boot/*-5.4.0-{77,88}-*

    如果你不想在grub启动菜单中看到旧的内核版本,你可以使用以下命令简单地更新grub:

    sudo update-grub

    就这样。你完成了。你已经释放了空间,如果你的/boot分区已满并导致APT出现问题,你也可能已经修复了它。

    在某些情况下,你可能需要输入以下命令来修复损坏的apt(我在论坛上注意到有些人这样做):

    sudo dpkg --configure -a
    sudo apt install -f

    请注意,除非你发现APT出现问题,否则不需要输入上述命令。个人而言,我没有需要这些命令,但我发现它们对一些人在论坛上很有用。

  • 释放Ubuntu Linux中`/boot`分区的空间

    释放Ubuntu Linux中`/boot`分区的空间

    你是否曾经遇到过在Ubuntu Linux中的/boot分区空间不足的问题?这个问题可能会导致系统无法正常更新或安装新的内核,从而影响系统的稳定性和安全性。在本教程中,我们将探讨如何释放/boot分区的空间,以便顺利进行系统更新和维护。无论你是新手还是有经验的Linux用户,本教程都将为你提供详细的步骤和清晰的说明,以确保你能够成功完成任务。

    步骤一:查看/boot分区的空间使用情况

    在释放/boot分区的空间之前,首先需要了解当前的空间使用情况。你可以通过打开终端并执行以下命令来查看:

    df -h /boot

    这将显示/boot分区的使用情况,包括已使用的空间和总空间。这个信息将有助于你了解有多少空间需要释放。

    步骤二:卸载不需要的内核

    Ubuntu定期发布新的内核更新,而旧的内核会保留在/boot分区中。这可能会导致空间不足的问题。因此,我们首先要卸载不需要的旧内核。

    2.1 查看已安装的内核

    执行以下命令来查看已安装的内核版本:

    dpkg --list | grep linux-image

    这将列出所有已安装的内核版本。请注意,除了最新的内核版本外,还会列出旧版本。

    2.2 删除旧内核

    为了删除不需要的旧内核,你可以使用以下命令,将<kernel-version>替换为你要删除的内核版本号:

    sudo apt-get purge linux-image-<kernel-version>

    重复这个步骤,直到你删除了所有不需要的旧内核版本为止。

    2.3 清理不需要的依赖项

    除了删除内核本身,还需要清理相关的依赖项。执行以下命令来清理它们:

    sudo apt-get autoremove

    这将删除不再需要的软件包和依赖项,帮助释放更多的空间。

    步骤三:清理旧的/boot文件

    在删除旧内核后,/boot分区中可能仍然存在一些旧的内核文件。你可以使用以下命令来清理它们:

    sudo apt-get clean

    这将删除/boot分区中不再需要的临时文件和缓存。

    步骤四:使用ncdu工具进一步释放空间

    如果你的/boot分区仍然没有足够的空间,你可以考虑使用ncdu(磁盘使用情况分析工具)来查找和删除更多不必要的文件。

    4.1 安装ncdu

    如果你尚未安装ncdu,可以使用以下命令进行安装:

    sudo apt-get install ncdu

    4.2 使用ncdu分析/boot分区

    执行以下命令以使用ncdu分析/boot分区的使用情况:

    sudo ncdu /boot

    ncdu将列出/boot分区中的所有文件和目录,并显示它们的大小。你可以使用箭头键和空格键来导航和选择文件。选择不需要的文件并使用Delete键来删除它们。

    步骤五:禁用自动更新内核

    为了避免未来再次出现/boot分区空间不足的问题,你可以禁用自动更新内核。这样,你将有更多的控制权,可以手动管理内核版本。

    5.1 编辑/etc/apt/apt.conf.d文件

    打开终端并执行以下命令来编辑配置文件:

    sudo nano /etc/apt/apt.conf.d/10periodic

    5.2 修改配置选项

    在打开的文件中,你会看到类似以下内容的行:

    APT::Periodic::AutocleanInterval "0";
    APT::Periodic::Unattended-Upgrade "1";

    将第二行修改为:

    APT::Periodic::Unattended-Upgrade "0";

    这将禁用自动更新内核。

    5.3 保存并退出

    按下Ctrl + O保存文件,然后按Ctrl + X退出编辑器。

    结论

    通过按照以上步骤,你可以成功释放Ubuntu Linux中/boot分区的空间。这将确保你能够正常更新系统内核和进行其他维护任务,从而保持系统的稳定性和安全性。

    请记住,在进行任何文件或分区操作之前,一定要谨慎备份重要数据,并确保你了解正在执行的命令的影响。希望这篇教程对你有所帮助!

  • 如何在Ubuntu上安装最新版本的LibreOffice

    如何在Ubuntu上安装最新版本的LibreOffice

    LibreOffice是一个功能强大的开源办公套件,通常在Ubuntu上预装。然而,如果你选择了最小化安装选项或者替换了其他办公套件,你可能会发现预装的LibreOffice版本不是最新的。如果你希望始终使用最新版本的LibreOffice,不用担心,我们有两种方法来实现这一目标。

    方法1:使用官方PPA(推荐)

    步骤1:添加LibreOffice官方PPA

    首先,我们可以使用LibreOffice官方的“LibreOffice Fresh” PPA来安装最新的稳定版本。这个PPA提供的是最新的稳定版本,而不是开发版本,因此这是在Ubuntu上获取更新的LibreOffice版本的理想选择。

    sudo add-apt-repository ppa:libreoffice/ppa

    步骤2:更新软件包列表

    添加PPA后,需要更新系统的软件包列表,以确保我们可以访问最新的LibreOffice版本。

    sudo apt update

    步骤3:安装最新版本的LibreOffice

    现在,我们可以使用以下命令来安装最新版本的LibreOffice:

    sudo apt install libreoffice

    这将安装最新版本的LibreOffice,并自动更新系统以保持最新。

    方法2:从LibreOffice官网下载二进制文件(可选)

    如果你更喜欢手动操作,或者官方PPA对你不可用,你可以访问LibreOffice官方网站并下载最新版本的LibreOffice二进制deb文件。

    步骤1:下载最新版本的LibreOffice

    前往LibreOffice官方网站的下载页面,选择最新版本的LibreOffice deb文件下载链接。

    下载 LibreOffice 最新版本

    步骤2:安装下载的LibreOffice

    一旦你下载了deb文件,你可以通过以下步骤手动安装它:

    • 右键点击deb文件,选择在”软件中心”中打开。
    • 在软件中心,点击安装按钮以安装LibreOffice。

    请注意,使用此方法安装后,如果有新版本的LibreOffice发布,你需要手动下载并安装新的deb文件。

    结论

    使用官方PPA是在Ubuntu上获取最新版本LibreOffice的最简单和推荐的方法。它不仅能自动更新,而且由LibreOffice团队维护,确保稳定性和安全性。但如果你更喜欢手动控制,也可以选择从官方网站下载并安装最新版本的LibreOffice。

    无论你选择哪种方法,都可以确保在Ubuntu上始终使用最新的LibreOffice,以获得最佳的办公体验。

  • 远程桌面工具:让你的电脑随时随地可达

    远程桌面工具:让你的电脑随时随地可达

    有没有想过能够远程连接到一台电脑的便利性?也许你想要帮助朋友解决他们电脑上的问题,或者你需要远程连接到另一台电脑来进行工作。

    无论你的用途是什么,Linux 上的远程桌面工具让你可以轻松连接。当然,每个工具都有不同的特点,所以你可以选择适合你个人或专业需求的工具。

    ✋
    非自由软件警告!这里提到的一些应用程序不是开源的。它们是在 Linux 使用的上下文中包含的。这些应用程序已经被标记为不是开源的。

    以下是适用于 Linux 的最佳远程桌面工具:

    1. Remmina

    Remmina 是一个多功能的免费开源远程桌面客户端,支持多种协议,包括 RDP、VNC、SPICE、X2GO、SSH 和 HTTP(S)。

    如果你想要一个功能强大的开源远程桌面工具,那么 Remmina 绝对是一个不错的选择。

    除了协议支持外,它还具有让你轻松进行截图、恢复连接、调整画质、配置分辨率等功能。

    此外,它的功能可以通过插件来扩展。

    优点:

    • 使用 GTK 编写,提供对 Linux 发行版的本机支持。
    • 可通过服务器地址快速建立连接。
    • 支持保存连接配置文件。
    • 支持多种协议。
    • 支持插件,以扩展功能,如 Kiosk 模式、代理支持、终端模拟器等。

    缺点:

    • 仅适用于 Linux。
    • 对新用户来说可能不太容易使用。

    安装 ?

    Remmina 在大多数发行版的仓库中都可以找到。但是,为了确保获得最新版本,你可以通过 Flathub 或 Snap 安装它,具体方式如下:

    对于 Flatpak,你可以使用以下命令(如果不使用软件中心)或按照我们的 Flatpak 指南进行设置。

    flatpak install flathub org.remmina.Remmina

    推荐阅读 ?

    在 Ubuntu 中配置 SSH 的完整指南

    2. GNOME Connections

    GNOME Connections 是一个简单的应用程序,允许你使用 RDP/VNC 协议快速连接到远程桌面。

    它不支持其他协议或任何复杂的功能。你只需要一个简单的一键应用程序,支持缩放、带宽调整和一些其他选项。

    优点:

    • 易于使用且简单。
    • 专为 GNOME 定制,但也可以在其他桌面环境中使用。

    缺点:

    • 不支持多种协议。
    • 对于大多数人来说,可能不提供所有种类的功能,也没有插件支持。

    安装 ?

    你可以通过 Flathub 在你选择的任何发行版上安装 GNOME Connections。

    如果已经设置了 Flatpak,可以使用以下命令通过终端安装:

    flatpak install flathub org.gnome.Connections

    3. RustDesk

    RustDesk 是一个基于 Rust 的远程桌面软件,无需太多配置即可立即使用。它还允许自托管,以进一步增强远程连接的安全性。

    优点:

    • 基于 NaCl 的 P2P 连接,具有端到端加密。
    • 支持多种硬件/软件编解码器。
    • 跨平台。

    缺点:

    • 不提供软件中心或商店应用。

      安装 ?

    它以多种包格式提供,如 .deb、.rpm、AppImage 等。你可以在其 GitHub 发布页面找到这些包。

    4. X2Go

    X2Go 是一个开源的、跨平台的远程桌面客户端,具有客户端-服务器架构。远程计算机必须安装 X2Go 服务器,该服务器应该是一台 Linux 系统。然后,你可以在选择的任何平台上安装 X2Go 客户端,然后使用它连接到 Linux 远程系统。

    你还可以使用客户端软件连接到 Windows,因为你不需要为其他平台安装服务器。

    因此,X2Go 是经常连接到 Linux 计算机的用户的绝佳选择。

    优点:

    • 支持 Linux 服务器。
    • 跨平台客户端。
    • 支持 SSH 访问、打印机共享、剪贴板模式和声音支持。

    缺点:

    • 使用修改过的 NX 3 协议,不支持其他协议。

    安装 ?

    X2Go 客户端可以在 Ubuntu 的软件中心中找到。或者,你可以在基于 Debian 的 Linux 发行版中使用以下命令:

    sudo apt install x2goclient

    要安装 x2go 服务器,使用以下命令:

    sudo add-apt-repository ppa:x2go/stable
    sudo apt update
    sudo apt install x2goserver x2goserver-xsession

    你可以在其官方文档中了解更多信息。

    5. KRDC

    KRDC 是由 KDE 构建的免费开源远程桌面工具。在一些 KDE 驱动的发行版中,你可以找到它的预安装版本,并在任何发行版上安装它。

    它支持两种协议,包括 RDP 和 VNC。你拥有所有必要的选项,如缩放和远程会话管理。

    优点:

    • 易于使用。
    • 记住连接历史。
    • 本地 Linux 支持。
    • 支持缩放。

    缺点:

    • 不支持跨平台,仅适用于 Linux。

    安装 ?

    你可以从 KDE 的 Discover Center 中找到 KRDC,或者使用 Flathub 或 Snap 安装。

    如果想要通过终端安装 Flatpak,可以使用以下命令:

    flatpak install flathub org.kde.krdc

    6. TigerVNC

    TigerVNC 是一个具有客户端-服务器架构的免费开源远程计算机连接工具。

    换句话说,你需要在远程计算机上安装服务器,然后安装客户端程序以连接。

    客户端程序非常简单,具有显示设置和多种压缩选项的基本选项。与其他选项相比,TigerVNC 能够提供更快的远程连接体验。

    优点:

    • 跨平台支持。
    • 快速性能。

    缺点:

    • 图形用户界面感觉有点陈旧。
    • 不支持多种协议。

    安装 ?

    你可以在其 GitHub 发布页面找到包,或者在 SourceForge 上获取二进制文件。如果需要帮助,可以参考我们的 deb 文件安装文章。

    7. TeamViewer(非自由软件)

    TeamViewer 是一款流行的跨平台工具,甚至可以通过移动设备连接。有趣的是,它还提供了一个 Web 客户端。因此,要连接到其他系统,你不需要在你的计算机上安装客户端。

    它是最古老的远程桌面共享工具之一。虽然它提到存在实验性的 Wayland 支持,但 TeamViewer 建议使用 Xorg 会话。

    用户经常使用 TeamViewer 进行远程支持和协作。虽然对个人用途是免费的,但对于企业和企业用户来说,需要商业许可。

    与其他一些选项不同,你不需要 IP 地址。只需在远程计算机上安装 TeamViewer,获取一个唯一的 ID,与你想要授权远程连接的用户共享它,就完成了!

    优点:

    • 直观的用户体验。
    • 适合初学者。
    • 移动支持。

    缺点:

    • 需要创建帐户以启用桌面共享。
    • 不是轻量级工具。
    • 不是开源的。

    安装 ?

    TeamViewer 提供了 Linux 发行版的二进制文件供简单安装。你可以获取 Ubuntu 的 .deb 包,或参考我们的 TeamViewer 指南获取帮助。

    8. AnyDesk(非自由软件)

    AnyDesk 是业界领先的远程桌面工具之一,具有良好的功能集和安全访问。

    你可以免费使用它,还支持 Android 和 iOS 的移动设备。要解锁所有功能,你需要购买许可证。

    优点:

    • 跨平台支持。
    • 移动支持。

    缺点:

    • 免费版功能有限。
    • 不是开源的。

    安装 ?

    你可以在其下载页面找到各种 Linux 发行版的二进制文件,支持 Ubuntu、openSUSE 和 RHEL。

    9. Apache Guacamole

    Apache Guacamole 是一款专为云系统(或服务器)设计的特殊远程桌面工具。

    如果你的服务器运行着一个操作系统,你可以安装 Apache Guacamole,并通过 Web 浏览器从任何其他平台访问它。因此,它被宣传为一种无需客户端的远程桌面网关。

    优点:

    • 专为云计算定制。
    • 免费开源。

    缺点:

    • 一种专业化的工具,不适合每个人。

    总结

    还有一些其他的开源选项,如 FreeRDP 和 XRDP。FreeRDP 对我来说没有起作用,但它在积极维护中。所以你可以试试。

    XRDP 需要从源代码安装。如果你愿意编译源代码,可以看看它。

    ? 让我们知道你从列表中偏好哪一个,或者如果你有其他建议。我们可能会根据你的建议更新列表。