从接触NAS概念到开始DIY一个自己的NAS,再到稳定日常使用且从生活中“隐身”,我经历了三年。
本文没有啥逻辑,就是看到出正式版系统了,感慨一下我这几年经历,可以说想到哪写到哪,不用太较真
在一开始,NAS对我来说就是个不需要跟着自己到处跑、随时随地可以访问文件的物理硬件机,它不同于网盘,不仅管理权完全私有、文件完全私有,而且还可以拓展出很多玩法,对于当年还是学生时代预算不足的我来说,买个小小云服务器或者开个网盘会员,远没有属于自己的设备性价比高。因此,当年的我入手了第一个硬件设备:树莓派。
通过USB外接硬盘盒,在里面写好自动化脚本,连接上网线或者无线网,就成为了我第一个NAS。得益于当年校园网策略较为宽松,我可以在全校各种地方无缝通过校园网连接到NAS,刚好覆盖我的活动范围内。但是很快,由于ARM架构的限制、开发板较少的拓展以及低功耗芯片羸弱的性能,快毕业时的我看上了当年低端DIY NAS的“热门U”:J1900 。
还得是X86,虽然工控机小主板可拓展也不多,但是玩法就很多了。装上了黑群系统,虽然感觉系统用起来有一定难度,但是跟着教程慢慢学习,一点一点配置下来还是方便很多。从存储方面来说,我通过内部两个sata接口,加上当年的二手硬盘组了raid0、1,体验了各种阵列玩法;通过mpcie通道拓展了更多sata,硬盘叠叠乐使我体验到大容量存储的乐趣;得益于可插拔内存设计,我换上了更大的内存条,可以运行更多程序,还能开一些简单的游戏服务器和舍友一起联机,存档也不怕丢失直接备份到存储阵列中,还能随时回档;这颗cpu功耗不算特别高,因此也不需要功率特别大的风扇,仅放在宿舍一角平时甚至都察觉不到。
毕业后,我就进入了一日复一日的工作,时间一久,工作对我来说就开始枯燥且繁琐。但这样的麻木并没有打消我想DIY一台“正经”的NAS的念头,我开始渐渐攒一些积蓄。
在23年的那个夏天,我开始翻阅各大UP的视频,参考各种社区的玩法攻略。当时的我没有多少装机经验,我甚至不确定我组一台设备需要哪些东西,因此为了不踩坑,我开始尝试抄作业。
我最开始选的,是机箱。在当时我的观点里,一个好的机箱能让NAS这样一台死板的设备变的有活力,让人感受到它是“稳定”、“好用”的。因此,我第一眼就看重了这个UP设计的DIY机箱:马里奥问好机箱
 ](https://yanhy.top/usr/uploads/2025/11/1350662708.png)
确定了机箱,我就开始跟着机箱的设计选配件。好在这个机箱在某二手市场已经有人做整套打印+配件+背板方案了,我直接拍下,成功解决了机箱的问题。
然而这只是开始,选主板和电源才是折腾。
当年的我没有什么“ITX MATX”等概念,电源也只知道标准ATX电源,而这个机箱要求FLUX小号电源(虽然我到现在也没太明白哈哈哈)。我找啊找,发现这类电源和主板都好贵:便宜且合适的主板,支持的u太老,而且sata太少,甚至有的不带M2硬盘位等等;电源基本到1块钱1W的价格,想买大一点的电源价格直接起飞。为避嫌就不聊具体厂商了,最终主板是买了一个“为NAS定制”型的ITX主板,原生支持6x sata和2x M2硬盘位,还带有2.5G网口,但是价格也贵了不少。电源则选购了250W功率,在不接显卡情况下6个硬盘同时启动也足够使用了。
 ](https://yanhy.top/usr/uploads/2025/11/1363762220.png)
那段时间选配件时没少做功课,好在功课做的好,没遇到什么难题。CPU选用了当年NAS圈还比较火的i3-8100T,看上一个“低功耗 核显解码 性能好”。当年玩NAS时,考虑到这个是7x24小时运作,还担心过很久的功耗问题。第一次装机,完美点亮。当时还在玩黑群系统,反手装好系统,塞进去唯一一块新买的4TB硬盘。从那时开始,我的“正经”NAS之旅开始了。
结果不出意外,还是踩坑了哈哈哈
但这是不是坑呢
坑来的很快。没过几个月我就发现一件事:这个机箱散热效率疑似有点低了。
虽然以现在成熟的眼光看来,只需要做好风道,散热就不会太差。但对于刚开始玩nas的我来说,或许因为社区功课做的太多,又担心功耗大电费吃不消,又担心散热跟不上容易损坏硬盘,况且当时我又要一直运行一些高负载的程序,那段时间,关于NAS的精神内耗可以说到了极致,整天在社区看别人的方案,然后越看越觉得自己的nas有缺陷,于是开始想办法,换!
NAS机箱都挺贵,合适一点的都是四盘位(当年还有存储焦虑,虽然没几个盘但是非要上六盘位)。最后在某二手市场发现了一类机箱,貌似非常符合需求,那就是蜗牛星际。当时我想,既然都能在这么恶劣的环境下使用了,做nas岂不是更合适(?
挑选半天好不容易淘回来一个六盘位的机箱,但是表面已经是战损了,于是又在网上买贴纸。经过一番折腾,表面也是好看了一些了。
 ](https://yanhy.top/usr/uploads/2025/11/2726847265.png)
将主板等硬件迁移进去,成功点亮。感受了一下风力,这下满意了。于是,在后面一段时间内,这个就是我NAS的新形态。
人果然不能闲下来啊(~
在用了好一段时间的黑群系统后,又开始闲不住折腾了。
发现在黑群下用虚拟机好像有点卡,社区说是这个系统的虚拟机做的不好,性能较差。追求拓展和各种玩法的我当然不甘心,好歹也是个酷睿的CPU,性能浪费着不用白不用,于是我又开始搞起了PVE系统。
既然都搞PVE了,那不上点其他的NAS系统玩玩(?于是又开始折腾,为此还特意把硬盘文件都腾出来,开始一周换一次的尝鲜玩法。
当然,最终还是回到了黑群,毕竟这是大多数人验证过的非常稳定的且热门的系统了,试过TrueNAS、UNRaid等各种系统,还是黑群这样“桌面化”的系统让我感觉更方便(应该是用win桌面习惯了导致的,但桌面化确实更容易上手)。
虽然不知道为什么,但是越看这个机箱越不顺眼,可能因为这货太大了(?
在一段时间后,由于感觉前面那个蜗牛机箱过于笨重,于是再次入手一个新的“蜗牛机箱”!
这次小巧了很多,而且硬盘仓设计的不错,虽然感觉可能缺了前盖,但是没有前盖也挺好看,就是容易风道进孔吃灰。
(过于久远找不到合适图了)
 ](https://yanhy.top/usr/uploads/2025/11/1567365838.png)
这个机箱当然也有缺点,它的IO背板是定制主板才兼容的,正常ITX主板放进去无法兼容它的开孔,导致有一部分USB是查不了的;另外它的机箱风扇是通过前面板的小控制板来控制转速的,开机时会转速拉满,而正常情况下因为系统没有对应驱动获取不到温度,只能获取外面温度,因此转速很慢。但是不影响整体散热,并且随着工作越来越忙,也就没多少折腾nas的心思了。
在前段时间,我曾经想去提取固件反汇编看看逻辑(好歹也是干嵌入式的哈哈哈),但是工作时不时出差很忙,也就没了多少精力。这个机箱是我用的最久的一个。它散热做到还不错,哪怕风扇转速慢,硬盘温度也能基本压下来。
时间来到24年,我搬到了杭州。机缘巧合下开通的宽带自带公网,我才开始想起来我的NAS。重新收拾了一下机器,清了灰整理了数据,再把系统重装一下,接下来用nas的频率才开始高起来。(此时我的系统仍然是PVE,至于为什么,因为我经常在玩黑群时不知道动了什么就导致系统重启后不开机或者没有IP了,后面我干脆以PVE为底层,崩了就重装,都快习惯了hh)
很巧的是,在去年七八月份,我刚加几块硬盘,准备放弃黑群系统再试试看其他家系统时,飞牛系统出现了。
 ](https://yanhy.top/usr/uploads/2025/11/504332713.png)
当然不否认第一次看到飞牛系统界面宣传时,我还以为又是什么小众工作室搞了一个魔改的系统,毕竟之前有CaasOS、nextcloud等宣传时,我以为是个系统,然后用了才发现它只是一个程序实现,并非真正独立的系统。
不过仔细了解过后,才发现这个团队与这个系统并不简单。
 ](https://yanhy.top/usr/uploads/2025/11/1487034958.png)
反正我NAS处于随时崩溃状态,不如清理一下,直接裸机安装飞牛系统~
使用了一段时间,给我的感受真的很不错。当时它确实有不少小问题,但我感觉这个团队是真有实力的。每周更新不仅能增加新功能还修复不少小问题,无论团队大小如何,这效率是真有在做事的。抱着这样的心态,我也好好把玩了这套系统,还曾提交过一整个文档的反馈信息,当时真心希望这个团队能做的更好。
虽然现在看来当时有点小题大做了哈哈哈,不过当时确实很激动啊,这个系统真的很符合我各种需求
 ](https://yanhy.top/usr/uploads/2025/11/72111491.png)
于是我就用上了飞牛系统,一用就是一年多。得益于飞牛系统基于debian的开放性,不仅可以在系统内用官方的一些工具,也可以部署一些自己想做的事情。到了24年底,我也将自己的系统进行了一波配置升级,CPU也换成了I5-9600,不带T。
那时的我,已经开始渐渐把NAS当正经办公工具来用了。备份做好本地一备云端一加密备,在公网的加持下,异地办公远程开office(自行安装的)、虚拟机桌面等工作环境非常方便,甚至在这期间,这个系统基本没有崩溃出错过。
最让我感到舒服的一点是,这个团队愿意给飞牛用户出免费的“内网穿透”,尤其是近期还能穿透其他程序,包括docker应用。虽然带宽低,但它保证了基础连接,不失联。和自己配置的内网穿透不同,我感受到这个FN Connect是可以作为我连接的基础保障。哪怕我frp服务掉了、docker里面的tailscale崩了或者失联了,我还可以通过fnc连接到nas进行修复与控制。
写了很多,其实一开始我单纯想展示一下自己的nas来着,而且可能里面也有些地方逻辑不通等,大家就当小故事图一乐,这只是我摸索的经历,一些“系统不稳定”等也是我自己问题,爱折腾是这样的hhh
哦对了,在前几个月,我nas的机箱又换了!
 ](https://yanhy.top/usr/uploads/2025/11/2486461609.png)
我放弃使用那些蜗牛机箱,在网上淘了一个NAS 6盘款式的机箱,体积比较大,但是已经无大碍了,它散热非常好,甚至给CPU上了单塔散热器,硬盘空间也很足。
现在生活也稳定下来了,NAS成为我办公中的一部分,在平时甚至会忽略到这个机器的存在。另外通过2.5G内网传输,我可以将我主力电脑的很多资料、文件甚至一些软件游戏都可以放到NAS上了,越来越方便喽~
]]>DD重装本质上是利用Linux的指令来进行硬盘擦写填充文件。
菜鸟编程:Linux dd 命令用于读取、转换并输出数据。dd 可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。
本文使用Github开源项目 reinstall ,并将云电脑系统重装为Windows 10 LTSC 2021。
一键重装脚本 English 项目介绍
- 支持安装 16 种常见 Linux 发行版
- 支持用官方原版 iso 安装 Windows,并且脚本会自动查找 iso 和驱动
- 支持任意方向重装,也就是支持 Linux to Linux、Linux to Win、Win to Win、Win to Linux
- 专门适配低配小鸡,解决内存过少导致无法进行网络安装
- 自动判断动静态 IPv4 / IPv6,无需填写 IP / 掩码 / 网关
- 支持 ARM,支持 BIOS、EFI 引导,原系统支持 LVM、BTRFS
- 不含第三方自制包,所有资源均实时从源站点获得
- 有很多注释移动云电脑切记需要下载好远程软件在数据盘,并保证软件打开就可以使用,否则在无鼠标驱动下安装远程控制软件相当困难
天翼云电脑实测无需远程,重装系统后仍然可以在官方客户端键鼠操控,也无需强制数据盘
打开设置 - 更新与安全 - Windows安全中心,点击左侧病毒与威胁防护,将选项全部关闭。
如使用天翼云电脑,系统可能预装火绒等杀毒软件,直接退出杀毒软件即可。
使用快捷键Win+X,选择 Windows Powershell(管理员)打开即可

复制以下脚本,并粘贴到Powershell终端内(右键终端界面即可粘贴)
certutil -urlcache -f -split https://github.299993.xyz/https://raw.githubusercontent.com/bin456789/reinstall/main/reinstall.bat注:这里的脚本使用了Github加速源。如以后该加速源关闭,将无法正常执行脚本,可使用Github原链接,可能需要加速器。
备用链接
国内加速源
certutil -urlcache -f -split https://jihulab.com/bin456789/reinstall/-/raw/main/reinstall.bat
国外(Github原链接)
certutil -urlcache -f -split https://raw.githubusercontent.com/bin456789/reinstall/main/reinstall.bat执行完成
复制以下脚本,并粘贴到Powershell终端内(右键终端界面即可粘贴)
这里要安装的为Windows 10 LTSC 2021系统,稳定且性能占用较低。如有其他系统需求,可以在https://drive.massgrave.dev/网站查找所需镜像。
./reinstall.bat windows --iso='https://drive.massgrave.dev/zh-cn_windows_10_enterprise_ltsc_2021_x64_dvd_033b7312.iso' --image-name='Windows 10 Enterprise LTSC 2021'期间会出现软件安装的窗口,无需理会,等待其自动安装和配置。
当最后几行出现下面内容时则为初期准备完成,可以重启安装:
***** INFO *****
windows
Username: administrator
Password: 123@@@
Reboot to start the installation.
You can run this command to reboot:
shutdown /r /t 0
PS C:\Users\Administrator>
在Powershell内输入以下指令,重启系统进入Linux子系统,开始自动DD重装。
shutdown /r /t 0系统重启后,无需任何操作,一直等待或者关闭云电脑客户端放后台慢慢装即可。花费时间取决于网速和硬盘读写速度,如云电脑为机械硬盘可能会慢一些。
由于我这个天翼云电脑带宽只有50M,因此下载速度特别慢,前前后后需要30到50分钟左右。
全程为脚本自动操作,请勿手动介入,可能会打断脚本。一直等待到系统开机输入密码阶段才算安装完成。

注:天翼云电脑在重装后还是原系统卸载系统软件,都不影响在官方客户端的控制使用(截至2024/7/30是可行的)。但偶尔会出现弹窗显示异常提醒建议重启,点以后再说即可。

在Linux系统部署完成后,自动重启到Windows安装中。全程无需手动操作,也不要去介入操作,会打断进程。

安装完成后自动开机,默认开机密码:123@@@

移动云电脑需要开机后用键盘打开远程软件,进行远程连接后才能控制。
使用快捷键 Win+E 打开此电脑,方向键选择D盘,并选择Todesk_lite.exe,回车键打开软件进行远程连接。
天翼云电脑可直接用官方客户端控制。

天翼云电脑可在修改分辨率手动全盘。重装后无法进行自适应分辨率、硬盘映射等等功能,有需要可使用原系统。
刚安装好的系统分辨率不对,可以手动在桌面-右键-显示设置,手动调整分辨率为1920x1080即可。
激活推荐使用HEU-KMS,可参考我前面的文章 安利个Windows激活工具 HEU-KMS
最便捷的文件传输方式可使用第三方远程控制软件,进行文件传输;也可以提供各种网盘进行传输。官方客户端文件传输能力失效。
仔细研究了一下ecloud的驱动相关,按自己需求整理出了适用于官方客户端的驱动优化
修复以下问题:
需下载以下链接内三个文件(经fiddler抓包后未发现上报连接,但不排除定时上报。程序已精简过,去除其他服务如远程录屏、打印等服务)
https://yanhy.lanzouj.com/b033zndfuj
密码:5k43
先创建好文件夹,在C:\Program Files (x86)\ctyun\clink(也不一定要指定位置,这是原系统安装路径,为确保不出错还是推荐本路径)
解压后,将64文件夹放到clink目录内,如下图

打开64文件夹,右键点击以管理员身份运行来打开clink_agent.exe和clink_cb_helper.exe。运行后没任何反应,但可以通过任务管理器看到已经在运行了。注:如不使用管理员身份运行,则在一些系统中可能因为没权限导致无法使用部分功能。

经多次测试,核心服务程序为必须运行项,否则其他程序无法正常工作,;服务程序则为跟着客户端窗口调整分辨率、剪贴板同步、文件拖拽传输等功能。
音频驱动直接双击安装即可

随意解压一个位置,打开文件夹后,选择 qxldod.inf 文件,右键-安装。安装后没有弹窗,但如果第一次安装屏幕会闪烁并修改分辨率为很低的一个状态。
如果前面有安装了守护程序,只需要缩放一下官方客户端窗口,即可自动调整云电脑分辨率大小。
如果不使用守护程序,只安装驱动,可以手动在桌面-右键-显示设置,手动调整“显示器1”的分辨率为1920x1080即可,可以修复双重鼠标指针。(单独安装除了修复双重鼠标指针好像意义不大,经过测试这个驱动貌似就是配合守护程序调整分辨率使用)
当云电脑DD重装后,会失去一些便利的特性,但是同时也有一些好处。使用全新系统,省去官方定制系统臃肿的性能占用和一堆无用的软件,删除官方监控后门,甚至部分云电脑可以重装后直接变成不休眠(天翼云还是会休眠),能更好的由自己控制。
本文部分内容摘抄自该博主(https://kui.li/989.html),如有版权问题请留言,会及时处理
补充:移动云电脑家庭版操作较麻烦,可以参考这篇文章获得更多移动云电脑相关内容:https://www.yuque.com/scynull/cloud/ikxva5t32sii3lrn
本文到此结束,如有更多感兴趣的话题可以关注本博客,不定期更新~
]]>如题,在此文章之前的都是从wordpress迁移到typecho再迁移到wordpress再迁移回来typecho的情况,因此不仅是非Markdown编写,而且一些格式还错乱了(悲
从该文章之后开始认真起来了,博客之所以停更了这么久,一方面是毕业了,现在找到了一份还算过得去的工作,后面可能只有零零散散的文章了,不过还是准备继续写下去的,毕竟自己写的东西都是自己的经验,自己的知识。
这次重新迁移,也整理了一下分类等,大部分属于linux的经验都扔服务器运维里面了;删了技术杂谈等分类;然后修改教程分享为教程经验,在这个分类里面将会出现各种领域的自己总结的教程和经验,当然这些并不算标准答案,我自己发现有问题也会变更。
本文就这样了,算是做个公告,或许没有多少人来访,但是哪怕留给以后的自己看,也是不错的选择~
]]>(需更新)
社区已经有很多编译的系统可玩了,但是为了追求彻底,我还是想自己编译一个系统用用看,顺便试着调整内核进行超频...
本文参照多个文章整理后编写
编译UFI设备的Debian固件
编译410随身wifi_Debian超频版教程&经验
关于 OpenStick
如果只想刷入社区的系统镜像,可看第5节 系统刷入
编译需要在主机为Linux系统下进行,因此本次选择vmware虚拟机进行
系统镜像: Ubuntu2210_Desktop_amd64
编译过程中全程以普通用户进行,不能进入root用户编译,仅使用sudo提权
系统安装完成后打开终端开始换源,如果不换源后续安装软件会较慢:
sudo vi /etc/apt/sources.list注释全部内容,更换为:
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ kinetic main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ kinetic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ kinetic-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ kinetic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ kinetic-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ kinetic-backports main restricted universe multiverse
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ kinetic-security main restricted universe multiverse
# # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ kinetic-security main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu/ kinetic-security main restricted universe multiverse
# deb-src http://security.ubuntu.com/ubuntu/ kinetic-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ kinetic-proposed main restricted universe multiverse
# # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ kinetic-proposed main restricted universe multiverse输入指令安装软件包:
sudo apt install binfmt-support qemu-user-static gcc-10-aarch64-linux-gnu kernel-package fakeroot simg2img img2simg mkbootimg bison flex gcc-aarch64-linux-gnu pkg-config libncurses-dev libssl-dev unzip git克隆仓库代码:
git clone https://github.com/OpenStick/linux.git --depth=1此时不急着去编译源码,为了获得更佳的性能,先对其进行超频修改
进入目录 linux/drivers/clk/qcom 找到 a53-pll.c文件,进行修改
打开文件后,可根据下图为参考,21-27行内,第一块为运行频率,第二块则为供电电压。根据前面的规律,大致可以判断为每提升200Mhz增加10电压值,但是由于再往后就超出了芯片设计频率,同时要考虑功耗与发热,因此往后提升时要略增加一些电压值,如 { 1841600000, 96, 0x0, 0x1, 0 }
static const struct pll_freq_tbl a53pll_freq[] = {
{ 998400000, 52, 0x0, 0x1, 0 },
{ 1094400000, 57, 0x0, 0x1, 0 },
{ 1152000000, 62, 0x0, 0x1, 0 },
{ 1209600000, 63, 0x0, 0x1, 0 },
{ 1248000000, 65, 0x0, 0x1, 0 },
{ 1363200000, 71, 0x0, 0x1, 0 },
{ 1401600000, 73, 0x0, 0x1, 0 },
{ 1621600000, 84, 0x0, 0x1, 0 },
{ 1841600000, 96, 0x0, 0x1, 0 },
{ 1951600000, 103, 0x0, 0x1, 0 },
{ }
};
找到第二个目录 linux/arch/arm64/boot/dts/qcom 修改其中的 msm8916.dtsi 文件,在220行左右出现默认频率,在此之后进行增加,增加的频率需要在前一个文件内添加好 opp-1363200000 {
opp-hz = /bits/ 64 <1363200000>;
};
opp-1401600000 {
opp-hz = /bits/ 64 <1401600000>;
};
opp-1621600000 {
opp-hz = /bits/ 64 <1621600000>;
};
opp-1841600000 {
opp-hz = /bits/ 64 <1841600000>;
};
opp-1951600000 {
opp-hz = /bits/ 64 <1951600000>;
};回到刚刚git拉取的终端,开始执行编译前的配置
cd linux
export CROSS_COMPILE=aarch64-linux-gnu-
export ARCH=arm64
make msm8916_defconfig
make menuconfig具体的make配置可以参考网上公共教程,也可以直接使用默认配置进行下一步
这里的 -j4 请根据自己CPU的核心数或虚拟机分配核心数来修改
make -j4生成debian格式的deb软件包:
fakeroot make-kpkg --initrd --cross-compile aarch64-linux-gnu- --arch arm64 kernel_image kernel_headers生成结束后,输入 ls ../ 即可查看生成的deb文件包
在上一级目录创建bak文件夹,将必要的文件提取出来备用
路径:arch/arm64/boot/Image.gz
设备树dtb路径:arch/arm64/boot/dts/qcom/msm8916-handsome-openstick-xxxxxx 这里要根据设备型号选择,本文使用001B设备
也可以一次性打包多个设备版本,如再拉取一个 003 的棒子的设备树(与001c通用)
mkdir ../bak
cp arch/arm64/boot/Image.gz ../bak/
cp arch/arm64/boot/dts/qcom/msm8916-handsome-openstick-ufi001b.dtb ../bak/
cp arch/arm64/boot/dts/qcom/msm8916-handsome-openstick-ufi001c.dtb ../bak/下载debian底包,并将解压后的rootfs.img放到bak目录内
cd ../bak
wget https://github.com/OpenStick/OpenStick/releases/download/v1/debian.zip && unzip debian.zip
mv ./debian/rootfs.img ./simg2img rootfs.img root.img
sudo mount root.img /mnt
sudo mount --bind /proc /mnt/proc
sudo mount --bind /dev /mnt/dev
sudo mount --bind /dev/pts /mnt/dev/pts
sudo mount --bind /sys /mnt/sys将前面生成的deb软件包复制到 /mnt 目录
sudo cp ../linux-*.deb /mnt
使用 chroot 进入挂载的系统,移除系统内原有的linux-image包,并安装刚刚生成的deb软件包,安装后删除deb文件
sudo chroot /mnt
dpkg -l | grep -E "linux-headers|linux-image" |awk '{print $2}'|xargs dpkg -P
dpkg -i *.deb
rm linux-*.deb 与正常debian系统一样进行换源等常规优化操作
换源:
cat>/etc/apt/sources.list<<EOF
deb http://mirrors.ustc.edu.cn/debian stable main contrib non-free
# deb-src http://mirrors.ustc.edu.cn/debian stable main contrib non-free
deb http://mirrors.ustc.edu.cn/debian stable-updates main contrib non-free
# deb-src http://mirrors.ustc.edu.cn/debian stable-updates main contrib non-free
EOF安装常用软件并调整时区 区域:6 Asia 时区:70 Shanghai
apt install locales usbutils curl wget fdisk net-tools nano
dpkg-reconfigure locales
dpkg-reconfigure tzdata启用Root并默认自动登录,并修改root密码(本文设置为123123)
sed -i '/PermitRootLogin /c PermitRootLogin yes' /etc/ssh/sshd_config
sed -i '/PasswordAuthentication /c PasswordAuthentication yes' /etc/ssh/sshd_config
passwd root创建 rc.local 开机启动脚本
cat>>/etc/systemd/system/rc-local.service<<EOF
[Unit]
Description=/etc/rc.local
ConditionPathExists=/etc/rc.local
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99
[Install]
WantedBy=multi-user.target
EOFcat <<EOF >/etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
exit 0
EOF
systemctl daemon-reload && systemctl enable rc-local
history -c配置结束,输入 exit 可退出
将 /mnt/boot/initrd**.img 取出到 bak 文件夹内备用
cp /mnt/boot/initrd.img-* ./取消刚刚的boot.img的挂载
sudo umount /mnt/proc
sudo umount /mnt/dev/pts
sudo umount /mnt/dev
sudo umount /mnt/sys
sudo umount /mnt将 boot.img 转为刷机用的 rootfs.img 格式
img2simg root.img rootfs.img将Image和dtb合并(由于前面拉了两个设备树,这里合并两次)
cat Image.gz msm8916-handsome-openstick-ufi001b.dtb>ufi001b-kernel-dtb
cat Image.gz msm8916-handsome-openstick-ufi001c.dtb>ufi001c-kernel-dtb将前面提取出来的 initrd**.img 改名为 initrd.img
mv initrd.img-* initrd.img生成001b的镜像
mkbootimg --base 0x80000000 --kernel_offset 0x00080000 --ramdisk_offset 0x02000000 --tags_offset 0x01e00000 --pagesize 2048 --second_offset 0x00f00000 --ramdisk initrd.img --cmdline "earlycon root=PARTUUID=a7ab80e8-e9d1-e8cd-f157-93f69b1d141e console=ttyMSM0,115200 no_framebuffer=true rw" --kernel ufi001b-kernel-dtb -o ufi001b-boot.img生成001c/003的镜像
mkbootimg --base 0x80000000 --kernel_offset 0x00080000 --ramdisk_offset 0x02000000 --tags_offset 0x01e00000 --pagesize 2048 --second_offset 0x00f00000 --ramdisk initrd.img --cmdline "earlycon root=PARTUUID=a7ab80e8-e9d1-e8cd-f157-93f69b1d141e console=ttyMSM0,115200 no_framebuffer=true rw" --kernel ufi001c-kernel-dtb -o ufi001c-boot.img
整理文件,将boot与rootfs.img整理出来(可选)
mkdir ufi_debian
mv ufi001*.img ./ufi_debian/
mv rootfs.img ./ufi_debian/最后,将这些文件从虚拟机复制到主机,接入棒子,准备下一个环节:开始刷机
要想把Debian刷入到棒子内,需要在棒子的fastboot模式下刷入。如果棒子是刚做完第一章的备份工作后,只需要跳过第0节继续往下跟着做即可;如果棒子已经刷入过openwrt或者Debian等linux系统,请备份好必要资料后,看下面第0节进入fastboot模式。除了esim,务必不要插入sim卡的时候刷机,否则可能会无法检测到卡,出现这种情况重新刷入就可以了(除非刷机包有要求插卡刷入)
已刷机的棒子进fastboot
如果你的棒子是新买的并且已经做完备份工作了,可以直接跳过该小节,直接使用adb重启至fastboot
备份好必要文件后,拔下棒子
按板子上的RST按钮,并插入到电脑,此时电脑会识别到9008设备
使用第一章的软件 Qualcomm Premium Tool V2.4 ,打开后扫描分区,按下图所示格式化boot分区
格式化完成后,拔掉棒子,重新插入,即可自动进入fastboot模式
打开第一章的adb工具包 tools 文件夹,在文件夹上方地址栏输入cmd,打开cmd窗口
输入指令 fastboot devices 即可查看是否有设备连接
如果连接成功,即可开始跳转到第2节
进入到fastboot模式,如果是从第0节完成,则可以跳过这一节往下看;如果棒子刚买回来且做了备份工作后,可以看这一节进入fastboot
正常插入棒子,等待其开机,设备管理器显示adb即可
如果显示如下图,同时出现adb与9091设备,代表设备还没有完全开机,稍等片刻即可
打开第一章内的adb工具包 tools 文件夹,在文件夹上方地址栏输入cmd,打开cmd窗口
输入指令 adb devices ,查看是否有adb设备连接,如有,可继续执行指令 adb reboot bootloader
此时电脑会提示新设备接入,输入指令 fastboot devices 即可查看是否有设备连接
此时棒子成功进入fastboot模式,可以进行刷机
准备Debian\linux\openwrt刷入工具包,优先刷入ufi003(001c)
如果使用社区提供的刷机镜像压缩包,里面一般有全部分区文件和 flash.bat 刷机脚本,可以直接使用包里面的 flash.bat 一键刷入;如果只准备了rootfs.img 与 boot.img 和本文一样,那就需要下载基础包,将这俩文件放基础包内,并把 *-boot.img 改名为 boot.img 即可
基础包链接:https://www.123pan.com/s/Dpq0Vv-p9UHd.html 提取码:dkdF (本文采用这一个)
源链接:https://github.com/OpenStick/OpenStick/releases/tag/v1 (建议使用前面链接,本文有改动刷入脚本,可自动刷入lk2nd与rootfs、boot)
源链接配合源教程食用更佳:https://www.kancloud.cn/handsomehacker/openstick/2636506
将基础包下载后解压,可得到一个base文件夹。将前面生成的 rootfs.img 与 ufi001c-boot.img 复制到该文件夹内,并将 ufi001c-boot.img 改名为 boot.img ,然后运行 flash.bat 即可开始刷入,不会超过3分钟(如果rootfs包较大,耗时也会久,如果长时间不跑进度可以尝试重新刷入,进入fastboot方法看第0节)
等显示 All done!! 之后棒子会自动重启,并尝试开机
如果在电脑里面找不到设备,可以参考文章:https://www.kancloud.cn/handsomehacker/openstick/2636506
本文结束,后续折腾请等待更新
终于想升级到win11了,结果是因为眼馋WSLg这个功能,不过既然都到Win11了,顺手也安装一下WSA吧,既然有特性就算不用也得要装(
本篇学习自:https://www.tjsky.net/tutorial/384
由于很晚才升级win11,以至于想用Magisk+GApps的WSA时,却发现Github的项目页面一个醒目的提醒:This repository has been disabled.
查了一下,原来是因为太多人用Github的Action流导致项目被封禁了,看样子云端编译是没辙了。所幸LSposed团队又出了一个项目 MagiskOnWSALocal ,我们可以使用这个项目进行本地编译,只需要有WSL子系统环境或者虚拟机Linux系统都可以编译运行。正好网上也有大佬做了博客,我就根据自己的经验二次整理了一下。
系统环境:
编译环境:



不想自己构建可以去下面的“安装”章节下载本篇文章构建好的
0、 (可选) 打开Github,前往作者团队的项目MagiskOnWSALocal(https://github.com/LSPosed/MagiskOnWSALocal) 并Star,支持作者团队
1、打开虚拟机,打开终端,输入指令sudo apt update来更新软件源,稍后我们要安装几个软件包(保持网络畅通)
2、切换到Home目录,然后安装Git工具并克隆项目,如果网络不好可能会很慢,耐心等待
cd ~
sudo apt install git -y
git clone https://github.com/LSPosed/MagiskOnWSALocal.git
3、等克隆完毕且没有明显报错(报错可能就是网络不好无法继续克隆)后,切换目录到项目内
cd MagiskOnWSALocal4、开始运行一键脚本,自动安装与配置环境
sudo ./scripts/run.sh
5、经过大概20分钟的等待,终端内会显示选项,此时开始自定义安装;如果中途有选择错误,强制退出再重新执行脚本即可
接下来的小标题格式为:菜单选项 | 大致意思 | 推荐选择
5-1、Build Arch | 编译架构 | 默认
用键盘方向键选择X64 (个人电脑一般都是Intel或者AMD,大多数为X64架构,可能也有部分Arm设备,可以自行编译试试看)

5-2、WSA release type | WSA发行类型 | 默认
一般选择retail,零售版,也解释为稳定版;如果想体验预览版,可选择Beta或者Dev通道的版本

5-3、Magisk version | 面具版本通道 | 默认
顾名思义是面具的更新通道,一般来说稳定就好,和手机上刷root用的面具玩法一样

5-4、Install GApps | 安装GApps | 是
如果没有一个好的网络环境也可以不安装,可以使用第三方安装器安装软件

5-5、Which GApps do you want to install? | 安装哪种版本的GApps | OpenGApps
推荐使用OpenGapps,体验过就明白了

5-6(略过)、Variants of gapps | 选择安装什么体积的GApps | 无
此选择目前略过,因为GApps没跟上WSA安卓版本(12)的更新,目前只有Pico量级的能用,默认跳过
5-7、 Remove Amazon Appstore | 移除亚马逊市场 | 否
憨憨亚马逊市场,app真的少,大部分游戏还都是益智游戏,建议选否,不保留

5-8、Root solution | Root解决方案 | Magisk
嗯,就一个面具,就选它,或者你不想root可以选none,这样就可以构建个无root但有GApps的WSA了

5-9、Compress output | 压缩构建包 | 是
如果你是老电脑,建议选否,压缩是一件很吃cpu的事情,虚拟机推荐压缩,方便导出文件,咱这边要分享到社区,所以选择压缩

5-10、Compress format | 压缩格式 | zip
同上述,压缩很吃cpu,7z更吃,tar.xz会好一些,但是在win下需要压缩软件支持,zip适合大众需求,空格选择,回车即确定

6、选择完成后,即可开始构建WSA安装包(会下载一些软件包,需要保持好的网络环境)

7、等待十几分钟,即可构建完毕(包体大概八百多MB)


此处为第一次安装WSA,如果之前有WSA请先卸载再安装,如果之前也是MagiskOnWSA,需要更新的话看下文,本篇文章构建包分享:https://www.123pan.com/s/Dpq0Vv-ORuHd提取码:CcO3
1、将上一步中构建完成的包(或是本文分享的构建包)解压到D盘/WSA文件夹中,文件夹可自行创建,但解压后不可删除,解压路径即为运行路径,我给解压到了D:/Users/xxxx
(一开始没改名,改名时检测被占用,一看果然这个文件夹是WSA的本体,悲,只能等下次更新的时候找机会换掉)

(和我上一次构建的版本一样,就是不知道里面小版本有没有改,本文会放出本次构建的共享链接)
(云盘校验没通过无法秒传,看样子里面小版本可能修改过,也可能只是文件属性变了)
2、进入文件夹,找到run.bat,运行即可(图中为我上一次构建的安装,稍后会讲到更新MagiskOnWSA,那时候再把我自己的包更新了)

3、等待安装完毕,会自动打开Magisk软件与Play商店,也可能只弹出一个,但是只要能运行即可代表安装完成。我参考的那篇教程里面说,Magisk默认是没开Zygisk,需要手动安装LSposed_Zygisk,但是在本文编写的时候,Zygisk就已经内置进Magisk内了

首先,请勿在微软商店内更新WSA,并且记得关掉微软商店的自动更新
更新方法:删除上一次git克隆文件夹,重新拉取代码并重新构建,得到压缩完的构建包后,先关闭WSA(用适用于Androidtm的windows子系统设置),再解压替换文件夹,并再次运行run.bat,用户数据会被保留
(确实会保留,我那小米12的Win11WSA还在(doge))
此处摘抄原文教程(链接在顶部)
安装WSAHelper(https://github.com/LSPosed/WSAHelper/releases/tag/v1.0),重新恢复开始菜单里的APP图标。
]]>