Linux发行版切换技术全解析

news/2025/10/6 9:33:41/文章来源:https://www.cnblogs.com/qife122/p/19127292

Ask Hackaday: How Do You Distro Hop?

如果你在Hackaday上阅读过"Jenny's Daily Drivers"或"Linux Fu",就知道我们喜欢Linux。特别是Jenny的系列文章,总是会指出我想在不同发行版上尝试的东西。然而,我有个真实的倾向是不改变我的发行版,尤其是在我的主计算机上。但我知道人们经常"发行版切换"。我的问题是:你是怎么做的?

简单但往往错误的答案

当然,有个简单的答案。将你的/home目录保存在单独的磁盘上,然后只需使用新的启动镜像。听起来很简单。但事实是,这并不那么容易。我想如果你不怎么使用系统,那可能有效。但即使你没有在根级别自定义东西,如果你更改桌面环境甚至桌面环境的版本,仍然会遇到问题。配置文件会随时间变化。如果你想在哲学上不同的发行版之间切换,比如systemd vs 老式init;apparmor vs SELinux,那就祝你好运了。所以这并不总是像只是将新发行版指向你的home目录那么简单。

我尝试新事物的一种方法是使用虚拟机。这在现在很容易。但如果你的目标是真正切换到新发行版作为日常使用,这并不令人满意。

原因

这不是一个可爱的标志,但仍然是一个好的发行版。

出现这个问题的原因是我通常喜欢KDE,并且使用Kubuntu很多年。它们在KDE桌面上往往有点滞后,所以当KDE推出Neon时,我被吸引了。然而,由于它们都基于Ubuntu/Debian,有一个基本可用的升级路径可以将Kubuntu安装转换为Neon。

快进到今天。Neon最近一直不太好。我听说有一个志愿者在维持它运行。KDE决定将重点转向一个新发行版,这个发行版做的一些事情我不太喜欢(不可变系统;Wayland)。所以是时候再次切换了。

我听说OpenSUSE在保持KDE更新方面很好,而且Tumbleweed的滚动发布吸引了我。所以我做了切换。

困难的方式

我绝不建议你这样做。这是个坏主意,虽然它成功了,但付出了很多努力。即便如此,它之所以成功只是因为我拥有的磁盘存储远远超过我的需求:我的根文件系统远低于3 TB,而我大约有9 TB的RAID作为主硬盘。当然,你应该有备份。但如果你曾经不得不从备份恢复,你知道那并不有趣。最好有备份而不需要它,而不是需要时没有。

那么我做了什么?我使用kvm建立了一个虚拟机,然后在上面安装了Tumbleweed。我关闭了btrfs功能,因为我不打算使用它们。然后我开始匹配我的Neon桌面。所有KDE设置。所有我设置的特殊systemd服务和计时器。我用来运行自己的动态DNS的系统。我能想到的所有东西。

我达到了在虚拟机中工作舒适的程度。我的浏览器和所有其他工具都已准备就绪并配置好了。

你知道我忘记了一些东西。我也知道,所以我想保存东西以供参考。首先,我从实时镜像启动,并在/NEON下制作了整个根文件系统的副本。然后我重新启动,创建了一个新的虚拟机,并在上面启动了一个"实时"ISO文件。

艰难的一夜

下一步是将/NEON目录的快照复制到虚拟机中。当然,我本可以使用LVM快照,或者如果我还在使用btrfs,可以使用它的快照。但我有足够的磁盘空间,特别是在从副本中修剪掉一些非常大的目录之后。

顺便说一下,关键是使用nbd程序挂载虚拟机的磁盘镜像。你确实需要加载nbd模块,如果你有它作为模块,然后使用nbd导出它。从那里,你得到一个可以像任何其他设备一样挂载的设备。我会解释它,但你真的不应该把这当作指导。不过,如果你需要这样做,[shamil]有一个很好、简洁的解释。

当然,新的虚拟机不会启动。你必须绑定挂载所有运行目录(如/run和/proc)到正确的挂载点,然后chroot到挂载的文件系统中。一旦在那里,你可以重新构建你的init镜像并运行grub。之后,你应该能够在新的虚拟机中启动到旧的Neon系统。

美妙之处...

我有一段时间没有从CD安装Linux了,但你仍然有一个ISO文件。

所以在这一点上,我没有对我的主操作系统做任何更改。我有一个副本用于备份目的,并且我能够使用虚拟机启动它的克隆。我也可以使用不同的虚拟机启动到目标系统。

下一步是再次启动到实时镜像,并清除根文件系统上的几乎所有内容,除了/NEON,当然还有在单独驱动器上的虚拟机。

我考虑过运行Tumbleweed安装程序,然后从虚拟机复制文件,但我决定手动完成。我再次使用nbd将文件从新虚拟机复制到真实的根驱动器。然后我不得不再次完成绑定/挂载/chroot/重新安装的步骤。

它启动了吗?

它确实启动了。有一些小问题,主要是由于自我造成的问题。当我恢复一些大目录和一些基于SSD的临时目录时,我创建了一些SELinux问题,追踪这些问题很有趣。当然,我也忘记了一些深度安装的东西。但那不是问题。我仍然可以从/NEON获取东西,甚至可以在虚拟机中启动Neon安装来比较东西。

我即将删除东西的额外副本。我已经释放了Tumbleweed虚拟机。但我想到了:我不会再这样做了。这引出了我的问题给你。如果你发行版切换,你是怎么做的?在评论中告诉我们。再说一次,当前的想法是拥有一个最小系统,然后将所有东西放在自己的容器中。

再次,我恳求你,不要效仿我的例子。这太费功夫和风险了。但我也疯狂到重新定位/usr。
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

公众号二维码

公众号二维码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/929155.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电子网站建设心得工业产品设计要学什么

当前位置:我的异常网 Java Web开发 调用javabean的非常郁闷的异常。调用javabean的非常郁闷的异常。www.myexceptions.net 网友分享于:2013-09-12 浏览:18次调用javabean的非常郁闷的错误。。急!!!我已经做了测试 …

详细介绍:Selenium基础操作方法详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

怎么做自己的淘宝网站南阳做网站哪家好

2345王牌浏览器网页加载慢怎么办?相信很多2345王牌浏览器用户都碰到过这个问题,今天小编就给大家带来这个解决办法,让你拥有极速加载网页。 2345王牌浏览器网页加载慢解决办法 1、打开清除上网痕迹。 入口一:标签栏居中,菜单栏…

完整教程:高效Excel数据净化工具:一键清除不可见字符与格式残留

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

手把手教你用 Docker 部署 Redis

本文详细介绍从轩辕镜像拉取Redis镜像的多种方式(登录验证、免登录、官方直连等),提供快速部署、持久化部署(推荐)、docker-compose部署(企业级)三种方案,还包含结果验证方法及无法远程连接、设置密码等常见问…

悟空博弈单元(WBUC)与广域统一计算(WAUC)研究:价值共生的技术基石——声明Ai研究

悟空博弈单元(WBUC)与广域统一计算(WAUC)研究:价值共生的技术基石 一、研究背景与概述 人工智能技术的发展正经历从单纯的"知识存储"向"知行合一"的深刻范式转变 。在这一转型过程中,传统计算架…

如何快速推广自己的网站旧房装修找哪家

微信爱情指数计算器整蛊app是一款不错的爱情必备的计算器服务,让情侣们有一个很有意思的整蛊服务的App,喜欢的话快来下载吧。微信爱情指数计算器整蛊app介绍1、爱情指数计算器整蛊app是很有意思的一款爱情指数计算器软件2、操作起来也比较的简单&#xf…

掌握形式验证工具,提升芯片验证效率

在当今竞争激烈的 IC 设计行业,确保芯片功能正确且无误至关重要。形式验证工具凭借数学驱动的严谨验证方式,在超越传统仿真方法的同时,为复杂设计提供了更高信心与效率的验证路径。核心优势:为什么选择形式验证工具…

宁波专业网站制作服务济宁做网站建设的公司

来源: 人机与认知实验室摘要:有人机与无人机混合编队协同作战是未来空战的重要形式。有人机是中央指挥,而无人机直接接受有人机的指挥和控制,并进行战场态势感知、目标打击等。有人机和无人机可以看成空间上分离而逻辑上一体的巨型…

长租公寓的生存越来越难了 - 智慧园区

最近两年,受保租房大量入市以及业主直租比例回升影响,长租公寓客源被持续分流,运营压力与日俱增。 在此背景下,通过产品创新来破解获客难题,成为租赁行业发展的迫切需求。 长租公寓,亟需新一轮产品内卷。卷户型 …

天津营销网站建设公司哪家好重庆做网站建设公司排名

一早打开电脑发现代码关联失效了,目测可能跟昨天一些插件更新有关 结论 就这货,开了就没法提示代码关联,估计预览版全是BUG。 另一个坑 同期有个unity插件也是预览版,“非常好使”,当场去世。评论点开有好几个人说用…

Spring Boot中保存前端上传的图片 - 教程

Spring Boot中保存前端上传的图片 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "M…

完整教程:Go语言的context

完整教程:Go语言的context2025-10-06 09:10 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; …

国外做农产品有名的网站手机端网站设计模板

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…

创意网站建设排行榜wordpress删除摘要

facenet是一款非常经典的神经网络模型,它可以直接学习从人脸图像到欧几里德空间的映射(直接将人脸映射到欧几里得空间)。在欧几里德空间中,距离直接对应于人脸相似性的度量。一旦这个空间产生,使用标准技术,将FaceNet嵌入作为特征…

Python包管理器 uv替代conda? - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

广州建站网络推广公司大气绿色网站模板

引言 随着软件复杂度的不断增加,如何有效地管理类内部的数据变得愈发重要。属性装饰器作为一种强大的工具,不仅简化了代码,还增强了程序的可读性和可维护性。通过使用属性装饰器,我们可以轻松地实现对类属性的读取、修改以及删除…

网站开发维护报价单wordpress的源代码

一.标识符1.标识符的作用:C 标识符是用来标识变量、函数,或任何其他用户自定义项目的名称2.标识符的规范:一个标识符只能以字母 A-Z 或 a-z 或下划线 _ 开始 后跟零个或多个字母、下划线和数字(0-9),第二位开始也只能用 A-Z…

P2724 [IOI 1998 / USACO3.1] 联系 Contact 做题笔记

前面思考了好久都没想出什么,看了题解才会,我真是太菜了 思路 本题可以暴力枚举解决,但是直接暴力枚举又会超时 怎么办呢,注意到这个序列中只有 \(0\) 和 \(1\),长得像二进制。直接把二进制强压成十进制就不用一位…

教育网站平面设计53建筑人才网

目录 问题描述: 解决方法: 重要代码: 问题描述: 项目中oracle数据库需要转换为mysql,Oracle中的表字段定义为number(36,16)类型的工具自动转换为mysql的decimal(36,16)。在Oracle数据库中,number(36,16)类型的字段,使用BigDeci…