<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>慶靈</title><description>博客小站</description><link>https://iiii.fun/</link><language>zh_CN</language><item><title>RouterOS基础安装与配置</title><link>https://iiii.fun/posts/routeros/routeros-setup/</link><guid isPermaLink="true">https://iiii.fun/posts/routeros/routeros-setup/</guid><description>在PVE中安装MikroTik RouterOS（CHR），包括授权激活、初次配置和安全加固</description><pubDate>Wed, 06 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;RouterOS基础安装&lt;/h1&gt;
&lt;h2&gt;安装&lt;/h2&gt;
&lt;p&gt;从 https://github.com/elseif/MikroTikPatch 下载&lt;br /&gt;
分配第一网卡为wan，第二网卡为lan&lt;br /&gt;
&lt;code&gt;qm importdisk 117 ros/chr-7.19.4.qcow2 local-lvm&lt;/code&gt;&lt;br /&gt;
删除CD&lt;br /&gt;
设置QEMU-GA开启&lt;br /&gt;
添加串口用于xterm.js访问&lt;br /&gt;
显示调整为串行终端0（最好在数据中心里设置默认xterm.js）&lt;/p&gt;
&lt;h2&gt;初次登入&lt;/h2&gt;
&lt;p&gt;用户admin，无密码&lt;/p&gt;
&lt;h2&gt;授权&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;system/telnet 127.0.0.1&lt;/code&gt;&lt;br /&gt;
用devel登入(初始无密码)&lt;br /&gt;
输入&lt;code&gt;keygen&lt;/code&gt;命令&lt;br /&gt;
&lt;code&gt;exit&lt;/code&gt;&lt;br /&gt;
确认授权正确&lt;code&gt;system/license/print&lt;/code&gt; 输出如下&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[admin@MikroTik] &amp;gt; system/license/print 
         system-id: 手动打码        
             level: p-unlimited        
  limited-upgrades: no                 
       deadline-at: 2100-01-01 00:00:00
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;level为p-unlimited表示正常&lt;/p&gt;
&lt;h2&gt;初次配置&lt;/h2&gt;
&lt;p&gt;所有配置一定要先按apply再按ok进行配置，避免因为bug产生不安全因素&lt;/p&gt;
&lt;p&gt;&lt;code&gt;ip/address/print&lt;/code&gt;看一下地址，用浏览器或者winbox访问&lt;br /&gt;
进入后QuickStart即可&lt;br /&gt;
Password也先改，不然有bug，一改完配置全白写，改一下安全的，不然很快就被盗了&lt;br /&gt;
注意不要分配到255广播IP，ROS会从大向小分配，直接就分配不了了&lt;/p&gt;
&lt;p&gt;QuickStart例如:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;IP Address:192.168.28.1
Netmask 255.255.255.0/24
DHCP Server: Enable
NAT： Enable
DHCP Server Range 192.168.28.2-192.168.28.254
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;不推荐范围写这么大，不好分配静态IP，直接写&lt;code&gt;192.168.28.100-192.168.28.200&lt;/code&gt;就好了&lt;br /&gt;
然后改下Router Identity，默认是MikroTik，改成你喜欢的名字&lt;br /&gt;
最后 Apply Configuration&lt;br /&gt;
右上角切换Advanced&lt;br /&gt;
IP-&amp;gt;DNS-&amp;gt;Allow Remote Requests打开&lt;br /&gt;
最后重启路由器即可&lt;/p&gt;
&lt;h2&gt;安全配置&lt;/h2&gt;
&lt;h3&gt;账户配置&lt;/h3&gt;
&lt;p&gt;System-&amp;gt;Users，创建新账户并禁用默认管理员账户&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;    Name: 随机（大小写+数字）
    Group: full
    Allowed Address: 192.168.88.0/24（可以不配）
    Password: 随机（大小写+数字+特殊字符）
    Confirm Password: 同上
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;服务配置&lt;/h3&gt;
&lt;p&gt;IP-&amp;gt;Services，关闭除了winbox以外的服务（除了前面带D无法关闭的）&lt;br /&gt;
修改winbox端口&lt;br /&gt;
IP-&amp;gt;Neighbors-&amp;gt;Discovery Settings，interface改为none&lt;br /&gt;
Tools-&amp;gt;MAC Server-&amp;gt;MAC Telnet Server/MAC WinBox Server/MAC Ping Server 全部改为端口none/关闭&lt;br /&gt;
Tools-&amp;gt;BTest Server 关闭&lt;/p&gt;
&lt;h3&gt;防火墙配置&lt;/h3&gt;
&lt;p&gt;由于IP-&amp;gt;Services中部分服务无法关闭，将其中无法关闭的除管理需要的winbox外都配置成drop，例子如下：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Genral:
 Chain: input
 Protocol: 6(tcp)（根据services中信息选择）
 Dst.Port 53
 In.Interface: wan
Action:
 Action: drop
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>CS2服务器配置自定义</title><link>https://iiii.fun/posts/cs2/cs2-server-config/</link><guid isPermaLink="true">https://iiii.fun/posts/cs2/cs2-server-config/</guid><description>CS2服务器插件配置，包括MatchZy配置、推荐插件列表等</description><pubDate>Fri, 16 May 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;MatchZy&lt;/h1&gt;
&lt;p&gt;设定&lt;code&gt;/cfg/MatchZy/admins.json&lt;/code&gt;把steamid换成自己的&lt;br /&gt;
设定&lt;code&gt;/addons/counterstrikesharp/configs/core.json&lt;/code&gt; ，编辑 core.json 文件，将&quot;ServerLanguage&quot;: &quot;en&quot; 改成&quot;ServerLanguage&quot;: &quot;zh-Hans&quot;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;MatchZy\warmup.cfg&lt;/code&gt;&lt;br /&gt;
添加预览窗口&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sv_grenade_trajectory_prac_pipreview 1
sv_disable_teamselect_menu false
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;MatchZy\live_override.cfg&lt;/code&gt;&lt;br /&gt;
允许扔掉匕首&lt;br /&gt;
禁止子弹伤害&lt;br /&gt;
不许换边&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;mp_drop_knife_enable 1
ff_damage_reduction_bullets 0
sv_disable_teamselect_menu true
sv_grenade_trajectory_prac_pipreview 0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;MatchZy\knife.cfg&lt;/code&gt;&lt;br /&gt;
允许扔掉匕首&lt;br /&gt;
不许换边&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;mp_drop_knife_enable 1
sv_disable_teamselect_menu true
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;server.cfg&lt;/h1&gt;
&lt;p&gt;添加以下录制demo&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;tv_enable 1
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;推荐插件&lt;/h1&gt;
&lt;p&gt;找插件的地方 https://bbs.csgocn.net/forum-7.htm&lt;br /&gt;
丢刀 https://github.com/lengran/CS2DropKnife&lt;br /&gt;
C4倒计时 https://github.com/R0mz1k/css-C4-Timer&lt;br /&gt;
管理 https://github.com/daffyyyy/CS2-SimpleAdmin&lt;br /&gt;
服务器状态 https://github.com/hks27d/CSSharpServerStatus&lt;/p&gt;
</content:encoded></item><item><title>CS2服务器搭建</title><link>https://iiii.fun/posts/cs2/cs2-server-setup/</link><guid isPermaLink="true">https://iiii.fun/posts/cs2/cs2-server-setup/</guid><description>在Linux上搭建CS2专用服务器，包括steamcmd安装、服务器配置、插件安装等完整流程</description><pubDate>Thu, 15 May 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;基础准备&lt;/h1&gt;
&lt;p&gt;开启x86 packages并安装steamcmd&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;dpkg --add-architecture i386
apt update
apt install steamcmd -y
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;服务端安装&lt;/h1&gt;
&lt;h2&gt;打开steamcmd&lt;/h2&gt;
&lt;p&gt;输入&lt;code&gt;steamcmd&lt;/code&gt;先更新一下，等待出现&lt;code&gt;steamcmd&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;修改安装目录&lt;/h2&gt;
&lt;p&gt;输入&lt;strong&gt;force_install_dir [安装路径]&lt;/strong&gt; 确定安装位置
&lt;code&gt;force_install_dir /mnt/server/cs2&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;登录steam账号&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;login steam用户名&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;login anonymous&lt;/code&gt;&lt;br /&gt;
然后交互操作&lt;/p&gt;
&lt;h2&gt;安装&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;app_update 730 validate&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;更好的操作&lt;/h2&gt;
&lt;p&gt;安装/更新&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;steamcmd +force_install_dir 安装目录 +login anonymous +app_update 730 +quit
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;服务器配置&lt;/h1&gt;
&lt;h2&gt;server.cfg&lt;/h2&gt;
&lt;p&gt;位于安装目录的&lt;code&gt;game/csgo/cfg&lt;/code&gt;下，进行如下修改&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;hostname &quot;xxx&apos;s CS2 Server&quot; //设置CS2服务器的名称
sv_region 4 //设置服务器区域为亚洲
sv_password &quot;&quot; //在引号内填写客户端连接服务器的密码，引号内不填就是不设密码
rcon_password &quot;&quot; //在引号内填写远程连接服务器控制台的密码，引号内不填就是不设密码
mp_autokick 0 //防止因 挂机、友伤、自杀 等原因被服务器踢出房间
mp_drop_knife_enable 1 //可以扔掉匕首
mp_friendlyfire 0 // 队伍伤害 1=启用,0=禁用
sv_cheats 1 //打开作弊
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;可以在server.cfg中添加指令 host_workshop_map 来加载创意工坊地图&lt;br /&gt;
以上指令并非全都要写入的，可以根据个人需求增减，其他的指令请参考CS2官方社区文档：&lt;br /&gt;
&lt;a href=&quot;https://developer.valvesoftware.com/wiki/List_of_Counter-Strike_2_console_commands_and_variables&quot;&gt;CS2 Console Commands&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;启动&lt;/h2&gt;
&lt;p&gt;创建个脚本&lt;code&gt;start.sh&lt;/code&gt;，写入如下内容：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!/bin/sh
安装目录/game/bin/linuxsteamrt64/cs2 -dedicated -insecure -usercon -console -nomaster +port 27015 +map de_dust2 +game_type 0 +game_mode 0 +exec server.cfg -maxplayers_override 10
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果有很多&lt;code&gt;(null)&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!/bin/sh
CS2_EXECUTABLE=&quot;/mnt/server/cs2/game/bin/linuxsteamrt64/cs2&quot;
CS2_ARGS=&quot;-dedicated -insecure -usercon -console -nomaster +port 27015 +map de_dust2 +game_type 0 +game_mode 0 +exec server.cfg -maxplayers_override 10&quot;
&quot;$CS2_EXECUTABLE&quot; $CS2_ARGS | sed &apos;s/(null)//g&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;通过&lt;code&gt;sh start.sh&lt;/code&gt;启动，可能会遇到&lt;br /&gt;
/home/election6204/.steam/sdk64/steamclient.so: cannot open shared object file: No such file or directory&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ln -s ~/.local/share/Steam/steamcmd/linux64 ~/.steam/sdk64

ln -s ~/.local/share/Steam/steamcmd/linux32 ~/.steam/sdk32
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;会遇到缺dll&lt;br /&gt;
https://github.com/ValveSoftware/csgo-osx-linux/issues/3624&lt;br /&gt;
&lt;code&gt;export LD_LIBRARY_PATH=&quot;/mnt/server/cs2/game/bin/linuxsteamrt64:$LD_LIBRARY_PATH&quot;&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;防火墙&lt;/h2&gt;
&lt;p&gt;这是udp游戏，放行udp的27015端口&lt;/p&gt;
&lt;h1&gt;加入&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;connect xx.xx.xx.xx:27015;password xxx&lt;/code&gt;&lt;/p&gt;
&lt;h1&gt;插件添加&lt;/h1&gt;
&lt;h2&gt;MetaMod&lt;/h2&gt;
&lt;p&gt;下载 https://www.metamodsource.net/downloads.php?branch=dev&lt;br /&gt;
下载后放在game/csgo下，即把整个addons文件夹放在里面&lt;/p&gt;
&lt;p&gt;编辑gameinfo.gi(game/csgo下)&lt;br /&gt;
搜索Game_LowViolence	csgo_lv，放在它的下一行&lt;br /&gt;
&lt;code&gt;Game	csgo/addons/metamod&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;MatchZy&lt;/h2&gt;
&lt;p&gt;下载 https://github.com/shobhit-pathak/MatchZy/releases&lt;br /&gt;
下载后放在game/csgo下，即把整个addons文件夹放在里面&lt;br /&gt;
安装后启动输入&lt;code&gt;meta list&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;meta list
Listing 1 plugin:
  [01] CounterStrikeSharp (v1.0.315 @ 169d43e) by Roflmuffin
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果需要更换CSS版本，记得复制dotnet文件夹，然后把plugins下的MatchZY复制过去&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cp plugin/matchzy/addons/counterstrikesharp/dotnet cs2/game/csgo/addons/counterstrikesharp -r
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;通过&lt;code&gt;css_plugins list&lt;/code&gt;检查是否安装成功&lt;br /&gt;
插件配置参考cs2服务器配置自定义&lt;/p&gt;
&lt;h2&gt;无法启动&lt;/h2&gt;
&lt;p&gt;/mnt/server/cs2/game/bin/linuxsteamrt64/cs2
&lt;code&gt;bash -c &apos;cd /mnt/server/cs2/game/bin/linuxsteamrt64/ &amp;amp;&amp;amp; for lib in libv8*.so; do ln -s &quot;$(pwd)/$lib&quot; /mnt/server/cs2/game/csgo/bin/linuxsteamrt64/; done&apos;&lt;/code&gt;&lt;/p&gt;
</content:encoded></item><item><title>XFS分区扩容</title><link>https://iiii.fun/posts/linux/xfs-partition-resize/</link><guid isPermaLink="true">https://iiii.fun/posts/linux/xfs-partition-resize/</guid><description>使用growpart和xfs_growfs扩展XFS文件系统分区大小</description><pubDate>Sun, 20 Apr 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;先安装个工具&lt;code&gt;apt install cloud-guest-utils&lt;/code&gt;&lt;br /&gt;
然后&lt;code&gt;growpart 磁盘 分区号&lt;/code&gt;&lt;br /&gt;
最后&lt;code&gt;xfs_growfs 挂载点&lt;/code&gt;即可&lt;br /&gt;
例子：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;growpart /dev/sdb 1
xfs_growfs /mnt/openwrt
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>CUDY-TR3000 OpenWrt编译指南</title><link>https://iiii.fun/posts/openwrt/compile/cudy-tr3000-openwrt-compile/</link><guid isPermaLink="true">https://iiii.fun/posts/openwrt/compile/cudy-tr3000-openwrt-compile/</guid><description>为CUDY TR3000路由器编译OpenWrt固件，实现114M大分区，支持immortalwrt和官方源码</description><pubDate>Sun, 20 Apr 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;博主是在淘宝花141购买并且按照其他人教程刷入的openwrt，但是觉得其他人编译的不好用，才有如下文章&lt;/p&gt;
&lt;p&gt;先换个大uboot&lt;br /&gt;
参考 https://zhuanlan.zhihu.com/p/14574477622&lt;br /&gt;
使用uboot: https://www.right.com.cn/forum/thread-8415351-1-1.html&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cd /tmp/upload/
mtd write dhcp-mt7981_cudy_tr3000-fip-fixed-parts-multi-layout.bin FIP
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;找到&lt;code&gt;target/linux/mediatek/dts/mt7981b-cudy-tr3000-v1.dts&lt;/code&gt;&lt;br /&gt;
修改&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;reg = &amp;lt;0x5c0000 0x4000000&amp;gt;; -&amp;gt; reg = &amp;lt;0x5C0000 0x7a40000&amp;gt;;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;即可改为114Mib大分区固件，如果要112Mib，则对应0x7000000&lt;/p&gt;
&lt;h2&gt;官方源码配置&lt;/h2&gt;
&lt;p&gt;在&lt;code&gt;make menuconfig&lt;/code&gt;后进行配置&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Target System -&amp;gt; Mediatek ARM
Subtarget -&amp;gt; Filogic 8x0 (MT798x)
Target Profile -&amp;gt; Cudy TR3000 v1
Target Images -&amp;gt;
 ramdisk关掉
 Root filesystem partition size (in MiB) -&amp;gt; 64
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;其余的 都是基础自定义&lt;br /&gt;
编译完成会直接生成在&lt;code&gt;bin/targets/mediatek/filogic&lt;/code&gt;下&lt;/p&gt;
&lt;h2&gt;immortalwrt&lt;/h2&gt;
&lt;p&gt;由于官方的不能用大uboot，所以转向这个版本，内容与官方一致&lt;br /&gt;
在&lt;code&gt;make menuconfig&lt;/code&gt;后进行配置&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Target System -&amp;gt; Mediatek ARM
Subtarget -&amp;gt; Filogic 8x0 (MT798x)
Target Profile -&amp;gt; Cudy TR3000 v1
Target Images -&amp;gt;
 ramdisk关掉
 Root filesystem partition size (in MiB) -&amp;gt; 114
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;其余的 都是基础自定义&lt;br /&gt;
编译完成会直接生成在&lt;code&gt;bin/targets/mediatek/filogic&lt;/code&gt;下&lt;/p&gt;
</content:encoded></item><item><title>已编译OpenWrt固件导航</title><link>https://iiii.fun/posts/openwrt/compile/openwrt-firmware-nav/</link><guid isPermaLink="true">https://iiii.fun/posts/openwrt/compile/openwrt-firmware-nav/</guid><description>个人编译的OpenWrt固件下载链接汇总</description><pubDate>Sun, 20 Apr 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;2025.4.20&lt;/h2&gt;
&lt;p&gt;PVE AP固件&lt;br /&gt;
https://www.right.com.cn/forum/thread-8425292-1-1.html&lt;/p&gt;
&lt;p&gt;cudy 114M大分区固件&lt;br /&gt;
https://www.right.com.cn/forum/thread-8425329-1-1.html&lt;/p&gt;
</content:encoded></item><item><title>小主机配置单</title><link>https://iiii.fun/posts/daily/mini-pc-build-list/</link><guid isPermaLink="true">https://iiii.fun/posts/daily/mini-pc-build-list/</guid><description>ITX小主机配置清单，基于精粤B760i主板的小型服务器配置</description><pubDate>Mon, 14 Apr 2025 00:00:00 GMT</pubDate><content:encoded>&lt;pre&gt;&lt;code&gt;箱电 梦寐C86定制  547
主板 精粤B760i雪之梦D5 500
CPU 剪脚i5 13400 667
内存 D5 5600 玖合 星域 48Gx2 1487.46
小计 3,201.46

电源
华为光宝LITEON 750W PS-2751-7H 49.9
电源线 25.5
小计 75.4

硬盘
光威 奕系列2TB 596
小计 596

散热
散热器 axp90-R47 66.5
4070公版风扇改装套件 56
利民LGA1700 AXP90 12代扣具 16.92
散热器铁丝扣该螺丝固定AXP90 25
6025风扇 33.8
小计 198.22

PCIE：
PCIe转Oculink 64.9
PCIe延长线 70
小计 134.9

合计 4,205.98
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>Linux配置Wake On LAN（WOL）</title><link>https://iiii.fun/posts/linux/linux-wol-setup/</link><guid isPermaLink="true">https://iiii.fun/posts/linux/linux-wol-setup/</guid><description>在Linux上配置WOL网络唤醒功能，自动识别网络设备并创建systemd服务</description><pubDate>Sun, 06 Apr 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;参考 https://zhuanlan.zhihu.com/p/666676538&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;搞一个名为wol的脚本：&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;vim wol.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;粘贴以下内容(已包含网络设备自动识别)：&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;#!/bin/bash

# 判断系统发行版
if [ -f /etc/redhat-release ]; then
    DISTRO=&quot;centos&quot;
elif cat /etc/issue | grep -q -E &quot;Debian&quot;; then
    DISTRO=&quot;debian&quot;
elif cat /etc/issue | grep -q -E &quot;Ubuntu&quot;; then
    DISTRO=&quot;ubuntu&quot;
elif cat /etc/issue | grep -q -E &quot;Proxmox&quot;; then
    DISTRO=&quot;debian&quot;
else
    echo &quot;无法识别发行版,请检查!&quot;
    exit 1
fi

# 安装 ethtool
case &quot;$DISTRO&quot; in
    centos)
        yum -y install ethtool net-tools
        ;;
    debian|ubuntu)
        apt-get update
        apt-get -y install ethtool net-tools
        ;;
    *)
        echo &quot;不支持的发行版: $DISTRO&quot;
        exit 1
        ;;
esac

# 获取网络设备名并编号
echo &quot;检测到以下网络设备:&quot;
ip link show | awk -F &apos;: &apos; &apos;/^[0-9]+:/{print $1 &quot;: &quot; $2}&apos;

# 提示用户选择网络设备
read -p &quot;请输入要配置的网络设备编号: &quot; CHOICE

# 获取用户选择的设备名
DEVICE=$(ip link show | awk -F &apos;: &apos; &apos;/^[0-9]+:/{print $2}&apos; | sed -n &quot;${CHOICE}p&quot;)

# 确认用户选择
read -p &quot;您选择的设备是: $DEVICE，是否确认？(y/n): &quot; CONFIRM

if [[ &quot;$CONFIRM&quot; != &quot;y&quot; ]]; then
    echo &quot;操作已取消。&quot;
    exit 1
fi

# 生成服务文件
cat &amp;gt;/etc/systemd/system/wol.service&amp;lt;&amp;lt;EOF
[Unit]
Description=Configure Wake On LAN
After=network-online.target
Wants=network-online.target

[Service]
Type=oneshot
ExecStart=/sbin/ethtool -s $DEVICE wol g

[Install]
WantedBy=basic.target
EOF

# 启用服务
sudo systemctl enable wol.service
sudo systemctl start wol.service

echo &quot;WOL配置完成，请关闭计算机后测试启用情况&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;完成后输入:wq保存退出&lt;/p&gt;
</content:encoded></item><item><title>OpenWrt WiFi开机自启配置</title><link>https://iiii.fun/posts/openwrt/openwrt-wifi-autostart/</link><guid isPermaLink="true">https://iiii.fun/posts/openwrt/openwrt-wifi-autostart/</guid><description>通过procd服务脚本解决OpenWrt WiFi不能自动启动的问题</description><pubDate>Sun, 06 Apr 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;创建 &lt;code&gt;/etc/init.d/wifiup&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!/bin/sh /etc/rc.common

USE_PROCD=1
START=99

start_service() {
    procd_open_instance WifiUP
    procd_set_param command /sbin/wifi
    procd_append_param command up
    procd_set_param stdout 1
    procd_set_param stderr 1
    procd_close_instance
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后启用该服务：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sed -i &apos;s/\r//&apos; /etc/init.d/wifiup
chmod +x /etc/init.d/wifiup
/etc/init.d/wifiup start
/etc/init.d/wifiup enable
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>Docker代理配置</title><link>https://iiii.fun/posts/docker/docker-proxy-config/</link><guid isPermaLink="true">https://iiii.fun/posts/docker/docker-proxy-config/</guid><description>为Docker配置HTTP代理，解决国内拉取镜像慢的问题</description><pubDate>Sat, 05 Apr 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;代理方法1&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;mkdir /etc/systemd/system/docker.service.d
vim /etc/systemd/system/docker.service.d/http-proxy.conf
写入如下内容
[Service]
Environment=&quot;HTTP_PROXY=http://192.168.26.1:7890&quot;
vim /etc/systemd/system/docker.service.d/https-proxy.conf
[Service]
Environment=&quot;HTTPS_PROXY=http://192.168.26.1:7890&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;代理方法2&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;vim /etc/docker/daemon.json&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{
  &quot;proxies&quot;: {
    &quot;http-proxy&quot;: &quot;http://192.168.9.156:7890&quot;,
    &quot;https-proxy&quot;: &quot;http://192.168.9.156:7890&quot;
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;使用任意方法后&lt;/h2&gt;
&lt;p&gt;重启docker&lt;br /&gt;
sudo systemctl daemon-reload&lt;br /&gt;
sudo systemctl restart docker&lt;br /&gt;
验证&lt;code&gt;sudo docker info | grep -A 1 &apos; HTTP Proxy&apos;&lt;/code&gt;&lt;/p&gt;
</content:encoded></item><item><title>PVE导入OpenWrt虚拟机</title><link>https://iiii.fun/posts/pve/pve-import-openwrt/</link><guid isPermaLink="true">https://iiii.fun/posts/pve/pve-import-openwrt/</guid><description>在Proxmox VE中导入并配置OpenWrt虚拟机</description><pubDate>Sat, 05 Apr 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;机型q35，bios UEFI，不添加EFI磁盘&lt;br /&gt;
不添加磁盘&lt;br /&gt;
cpu 1&lt;br /&gt;
mem 512M 不Ballooning&lt;br /&gt;
第一个网卡默认Lan，第二个才是Wan&lt;br /&gt;
选项打开QEMU Gust Agent&lt;/p&gt;
&lt;p&gt;添加磁盘&lt;br /&gt;
&lt;code&gt;qm importdisk 104 ./openwrt/openwrt-x86-64-generic-squashfs-combined-efi.qcow2 local-lvm&lt;/code&gt;&lt;br /&gt;
命令解析：
&lt;code&gt;qm importdisk &amp;lt;vmid&amp;gt; &amp;lt;qcow2&amp;gt; &amp;lt;storage&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;进到管理，编辑未使用的磁盘0进行添加&lt;br /&gt;
选项，引导顺序，去掉net0，开启scsi0&lt;br /&gt;
启动，等开&lt;/p&gt;
</content:encoded></item><item><title>OpenWrt基础编译教程</title><link>https://iiii.fun/posts/openwrt/compile/openwrt-compile-basics/</link><guid isPermaLink="true">https://iiii.fun/posts/openwrt/compile/openwrt-compile-basics/</guid><description>在Debian系统上编译OpenWrt/ImmortalWrt固件的完整流程，包括环境配置、代理加速和编译</description><pubDate>Sat, 05 Apr 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;部署一个基础的Debian系统&lt;br /&gt;
配置如下图：&lt;br /&gt;
&lt;img src=&quot;https://cdn.sa.net/2025/04/05/od5a7K9HYiOt4PA.png&quot; alt=&quot;image.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;共享dl目录&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;mkdir ../dl
ln -s ../dl dl
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果需要重新配置：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;rm -rf .config
make menuconfig
make V=s -j$(nproc)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;编译完成后输出路径：bin/targets&lt;/p&gt;
&lt;p&gt;以上为参考内容，下面实操&lt;/p&gt;
&lt;p&gt;安装环境（来自lede)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;    sudo apt update -y
    sudo apt full-upgrade -y
    sudo apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \
    bzip2 ccache clang cmake cpio curl device-tree-compiler flex gawk gcc-multilib g++-multilib gettext \
    genisoimage git gperf haveged help2man intltool libc6-dev-i386 libelf-dev libfuse-dev libglib2.0-dev \
    libgmp3-dev libltdl-dev libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libpython3-dev \
    libreadline-dev libssl-dev libtool llvm lrzsz msmtp ninja-build p7zip p7zip-full patch pkgconf \
    python3 python3-pyelftools python3-setuptools qemu-utils rsync scons squashfs-tools subversion \
    swig texinfo uglifyjs upx-ucl unzip vim wget xmlto xxd zlib1g-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;额外需要的内容&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install python3-venv
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;盘不够大，挂个盘先&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo -i
fdisk /dev/sda1
mkfs.xfs /dev/sda1
mount /dev/sda1 openwrt/
chown -R ksqeib:ksqeib openwrt
exit
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;下载源码&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cd /mnt/openwrt/
git clone git@github.com:immortalwrt/immortalwrt.git
cd immortalwrt
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;此时建议备份一次，或者使用复制后的，而不是直接在拉下来的进行修改，可以节约后续为其他路由器编译时拉取源码的时间&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cp -R immortalwrt immortalwrt_bak
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;可以使用openwrt编译添加小猫包（其他文章）而不是用下段代码&lt;br /&gt;
常规：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;添加小猫包的：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sed -i &apos;$a src-git kenzo https://github.com/kenzok8/openwrt-packages&apos; feeds.conf.default
sed -i &apos;$a src-git small https://github.com/kenzok8/small&apos; feeds.conf.default
git pull
./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;根据需求参考编译自定义合集进行修改&lt;/p&gt;
&lt;h1&gt;代理配置&lt;/h1&gt;
&lt;h2&gt;使用国内镜像加速更新 crate 拉取&lt;/h2&gt;
&lt;p&gt;将如下配置写入 &lt;code&gt;$HOME/.cargo/config&lt;/code&gt; 文件&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 放到 `$HOME/.cargo/config` 文件中
[source.crates-io]
registry = &quot;https://github.com/rust-lang/crates.io-index&quot;

# 替换成你偏好的镜像源
replace-with = &apos;sjtu&apos;

# 清华大学
[source.tuna]
registry = &quot;https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git&quot;

# 中国科学技术大学
[source.ustc]
registry = &quot;git://mirrors.ustc.edu.cn/crates.io-index&quot;

# 上海交通大学
[source.sjtu]
registry = &quot;https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;export GOPROXY=&quot;https://mirrors.aliyun.com/goproxy&quot;
export RUSTUP_DIST_SERVER=&quot;https://rsproxy.cn&quot;
export RUSTUP_UPDATE_ROOT=&quot;https://rsproxy.cn/rustup&quot;
export CARGO_BUILD_JOBS=16
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;开始下载&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt; make download -j8
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;开始编译&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;make V=s -j16
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;为什么不是j1？&lt;br /&gt;
先j16编译，报错再j1来提速&lt;/p&gt;
&lt;p&gt;编译完成去找我们的编译后文件&lt;br /&gt;
在&lt;code&gt;bin/targets&lt;/code&gt;下&lt;/p&gt;
</content:encoded></item><item><title>OpenWrt编译自定义配置合集</title><link>https://iiii.fun/posts/openwrt/compile/openwrt-compile-customization/</link><guid isPermaLink="true">https://iiii.fun/posts/openwrt/compile/openwrt-compile-customization/</guid><description>OpenWrt编译时的各种自定义配置，包括IPv6、应用包、主题、无线驱动等</description><pubDate>Sat, 05 Apr 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;内部设置&lt;/h1&gt;
&lt;h2&gt;ipv6开启&lt;/h2&gt;
&lt;p&gt;lede:
Extra packages-&amp;gt;ipv6helper，空格点选&lt;br /&gt;
再找Network-&amp;gt;Firewall-&amp;gt;ip6tables，回车进去，把能看见的全空格点选&lt;br /&gt;
（一般为ipv6tables-extra和ipv6tables-mod-nat）&lt;/p&gt;
&lt;p&gt;offical/immortalwrt:
Network-&amp;gt;Firewall-&amp;gt;
ipv6tables-extra
ipv6tables-mod-nat&lt;/p&gt;
&lt;h2&gt;cloudflare DDNS脚本&lt;/h2&gt;
&lt;p&gt;Network -&amp;gt; IP Addresses and Names-&amp;gt;ddns-scripts-&amp;gt;ddns-scripts-cloudflare&lt;/p&gt;
&lt;h2&gt;MT7922&lt;/h2&gt;
&lt;p&gt;Kernel modules-&amp;gt;Wireless Drivers-&amp;gt;
kmod-mt7922-firmware
kmod-mt7921e
Firmware-&amp;gt;mt7922bt-firmware&lt;br /&gt;
&lt;strong&gt;警告：lede会有大量报错，建议使用官方源码&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;application&lt;/h2&gt;
&lt;p&gt;lede
LuCI-&amp;gt;Applications-&amp;gt;
luci-app-openclash
luci-app-bypass
去掉luci-app-ssr-plus
luci-app-ttyd
luci-app-uhttpd&lt;/p&gt;
&lt;p&gt;官方
LuCI-&amp;gt;Applications-&amp;gt;
luci-app-cloudflared
luci-app-ddns
luci-app-filemanager
luci-app-firewall
luci-app-openclash
luci-app-package-manager
luci-app-passwall2
luci-app-ttyd
luci-app-uhttpd
luci-app-wol&lt;/p&gt;
&lt;p&gt;immortalwrt:&lt;br /&gt;
LUCI-&amp;gt;Collections:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;luci&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;LuCI-&amp;gt;Applications:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;luci-app-advanced-reboot&lt;/li&gt;
&lt;li&gt;luci-app-autoreboot&lt;/li&gt;
&lt;li&gt;luci-app-cloudflared&lt;/li&gt;
&lt;li&gt;luci-app-ddns&lt;/li&gt;
&lt;li&gt;luci-app-filemanager&lt;/li&gt;
&lt;li&gt;luci-app-firewall&lt;/li&gt;
&lt;li&gt;luci-app-openclash&lt;/li&gt;
&lt;li&gt;luci-app-package-manager&lt;/li&gt;
&lt;li&gt;luci-app-passwall2&lt;/li&gt;
&lt;li&gt;luci-app-ttyd&lt;/li&gt;
&lt;li&gt;luci-app-uhttpd&lt;/li&gt;
&lt;li&gt;luci-app-wol&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;主题&lt;/h2&gt;
&lt;p&gt;LuCI-&amp;gt;Themes-&amp;gt;luci-theme-material&lt;/p&gt;
&lt;h2&gt;无线&lt;/h2&gt;
&lt;h3&gt;添加协议&lt;/h3&gt;
&lt;p&gt;Netowrk-&amp;gt;WirelessAPD-&amp;gt;
wpa-supplicant
wpa-cli
hostapd
第一次启动需要在启动项添加&lt;code&gt;/sbin/wifi up&lt;/code&gt;否则wifi不会自启，没用的话可以参考wifi自启&lt;/p&gt;
&lt;h2&gt;Administration&lt;/h2&gt;
&lt;p&gt;Administration-&amp;gt;btop&lt;/p&gt;
&lt;h1&gt;中文&lt;/h1&gt;
&lt;p&gt;immortalwrt:
LuCI-&amp;gt;default-settings-chn&lt;/p&gt;
&lt;p&gt;offical：
LuCI -&amp;gt; Modules -&amp;gt; Translations -&amp;gt; Simp Chinese （）
&lt;code&gt;feeds/luci/modules/luci-base/root/etc/config/luci&lt;/code&gt;
修改&lt;code&gt;option lang&lt;/code&gt;，auto-&amp;gt;zh_cn&lt;/p&gt;
&lt;h1&gt;外部设置&lt;/h1&gt;
&lt;h2&gt;改默认ip&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;sed -i &apos;s/192.168.1.1/192.168.9.1/g&apos; package/base-files/files/bin/config_generate&lt;/code&gt;
&lt;img src=&quot;https://cdn.sa.net/2025/04/05/OuaeLyZPzD3nA6Y.png&quot; alt=&quot;image.png&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;修改ssid&lt;/h2&gt;
&lt;p&gt;lede:
&lt;code&gt;package/kernel/mac80211/files/lib/wifi/mac80211.sh&lt;/code&gt;&lt;br /&gt;
&lt;img src=&quot;https://cdn.sa.net/2025/04/05/J9sOeHikzQ2wCY7.png&quot; alt=&quot;image.png&quot; /&gt;&lt;/p&gt;
&lt;h1&gt;改banner&lt;/h1&gt;
&lt;p&gt;修改 &lt;code&gt;package/base-files/files/etc/banner&lt;/code&gt;&lt;br /&gt;
初始banner:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 %D %V, %C
 -----------------------------------------------------
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;改动:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 %D %V, %C  compile by mkapr
 -----------------------------------------------------
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>OpenWrt编译常见问题与解决方案</title><link>https://iiii.fun/posts/openwrt/compile/openwrt-compile-issues/</link><guid isPermaLink="true">https://iiii.fun/posts/openwrt/compile/openwrt-compile-issues/</guid><description>OpenWrt编译过程中遇到的各种问题汇总，包括v2ray、geoview、venv、mt76等</description><pubDate>Sat, 05 Apr 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;用不到的v2ray&lt;/h1&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.sa.net/2025/04/05/rx6A1McamhT5bRf.png&quot; alt=&quot;5674560e276ad04b934d9e948f6a09e7.png&quot; /&gt;
Network-&amp;gt;Web Servers/Proxies-&amp;gt;v2ray-plugin，取消勾选&lt;/p&gt;
&lt;h1&gt;用不上的geoview&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;make[3]: *** [Makefile:51: /mnt/openwrt/x86/build_dir/target-x86_64_musl/geoview-0.1.2/.built] Error 1
make[3]: Leaving directory &apos;/mnt/openwrt/x86/feeds/packages/net/geoview&apos;
time: package/feeds/packages/geoview/compile#0.17#0.09#180.33
    ERROR: package/feeds/packages/geoview failed to build.
make[2]: *** [package/Makefile:116: package/feeds/packages/geoview/compile] Error 1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Netowork-&amp;gt;IP Addresses and Names-&amp;gt;geoview，取消勾选&lt;br /&gt;
也可以尝试：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;export GOPROXY=https://mirrors.aliyun.com/goproxy/
或者
export GOPROXY=https://goproxy.cn
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;创建不了venv&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;*** Ouch! ***

Python&apos;s ensurepip module is not found.
It&apos;s normally part of the Python standard library, maybe your distribution packages it separately?
Either install ensurepip, or alleviate the need for it in the first place by installing pip and setuptools for &apos;/mnt/openwrt/x86/staging_dir/host/bin/python3&apos;.
(Hint: Debian puts ensurepip in its python3-venv package.) 

ERROR: python venv creation failed
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;sudo apt install python3-venv&lt;/code&gt;&lt;/p&gt;
&lt;h1&gt;mt76无法编译&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;ERROR: module &apos;/mnt/openwrt/x86/build_dir/target-x86_64_musl/linux-x86_64/mt76-2024-04-04-8f301a5c/mt76-connac-lib.ko&apos; is missing.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;参考 https://github.com/coolsnowwolf/lede/issues/13130&lt;/p&gt;
&lt;p&gt;使用这个 80211 &lt;a href=&quot;https://github.com/sbwml/package_kernel_mac80211&quot;&gt;https://github.com/sbwml/package_kernel_mac80211&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;使用 openwrt 上游最新的 mt76 &lt;a href=&quot;https://github.com/openwrt/openwrt/tree/openwrt-24.10/package/kernel/mt76&quot;&gt;https://github.com/openwrt/openwrt/tree/openwrt-24.10/package/kernel/mt76&lt;/a&gt;&lt;br /&gt;
加上这两个 patch &lt;a href=&quot;https://github.com/sbwml/r4s_build_script/tree/master/openwrt/patch/mt76/patches&quot;&gt;https://github.com/sbwml/r4s_build_script/tree/master/openwrt/patch/mt76/patches&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;最终换官方源码了，不用lede啥事没有=-=&lt;br /&gt;
&lt;img src=&quot;https://cdn.sa.net/2025/04/05/sT6OAp8hf3wudBJ.png&quot; alt=&quot;ba7c1ea5f173ab804705f338c5e671d9.png&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>冒死为精岳B760i升级Bios</title><link>https://iiii.fun/posts/daily/jginyue-b760i-bios-upgrade/</link><guid isPermaLink="true">https://iiii.fun/posts/daily/jginyue-b760i-bios-upgrade/</guid><description>为精岳B760i雪之梦主板升级Bios的经历，包括Bios配置和XMP内存设置</description><pubDate>Wed, 19 Mar 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;今天打开精岳主板官网，发现有个精岳B760i雪之梦 D5 V1.3有bios更新，而我的版本却没有对应的更新&lt;br /&gt;
于是乎，我抱着升级会更强的想法下载并升级&lt;br /&gt;
&lt;img src=&quot;https://cdn.sa.net/2025/03/19/CbGEKDN7AusTIJg.png&quot; alt=&quot;13b1cea2c43d963a29d3b28178ce80d5.png&quot; /&gt;
&lt;img src=&quot;https://cdn.sa.net/2025/03/19/62OUatrF3WREwMd.png&quot; alt=&quot;fe51b15731db3ba3b6f6051c3d9391e4.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;完成后果然能亮，但是bios配置都没了&lt;br /&gt;
果然，这俩板子没差多少，bios可以通刷&lt;br /&gt;
配置一下bios&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;主页-&amp;gt;
 系统语言 中文
芯片组-&amp;gt;
 系统代理配置-&amp;gt;
  显示配置-&amp;gt;
   主显 IGFX(非必要不要调，会导致开机很慢)
   内部图形 Enabled
 PCH-IO配置-&amp;gt;
  来电恢复状态 开机
  冷唤醒 打开
 智能风扇配置-&amp;gt;
  CPU+系统风扇温度 50 60 70 80 90
超频-&amp;gt;
 超频 打开
 内存超频设置-&amp;gt;
  DIMM配置文件 XMP配置1
  内存电压 1.35
 CEP禁用-&amp;gt;
  IA CEP启用 关闭
  GT CEP启用 关闭
启动-&amp;gt;
 设置逾时值 1
 全屏LOGO显示 关闭
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;没错 我超频就炸&lt;br /&gt;
XMP怎么都打不开，我也是服了&lt;br /&gt;
就这样吧 反正也能用&lt;/p&gt;
&lt;p&gt;https://www.jginyue.com.cn/index/Article/show/cat_id/22/id/198&lt;br /&gt;
4.9又更新了12c微码，更！&lt;br /&gt;
c，我的是D5版本，结果我把D4的bios写进去了，甚至还开机了能用&lt;/p&gt;
&lt;p&gt;这主板，XMP有点小问题，必须自己指定内存电压，auto的上不去&lt;/p&gt;
&lt;p&gt;https://www.jginyue.com.cn/index/Article/show/cat_id/22/id/176&lt;br /&gt;
发现更新12F 2025-08-30，也许是这主板bios更新最后一舞了吧，依旧D4版本直接刷&lt;br /&gt;
D4D5通用的bios，都是两边的选项都有，XMP是板子太烂了，能不能开全看运气&lt;/p&gt;
</content:encoded></item><item><title>Docker安装（Debian/Ubuntu）</title><link>https://iiii.fun/posts/docker/docker-install/</link><guid isPermaLink="true">https://iiii.fun/posts/docker/docker-install/</guid><description>在Debian/Ubuntu系统上安装Docker CE，使用阿里云镜像源</description><pubDate>Sat, 15 Mar 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;本文参考 https://docs.docker.com/engine/install/debian/&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt-get update
sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
sudo mkdir -m 0755 -p /etc/apt/keyrings
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
echo \
  &quot;deb [arch=$(dpkg --print-architecture)] https://mirrors.aliyun.com/docker-ce/linux/debian \
  $(lsb_release -cs) stable&quot; | sudo tee /etc/apt/sources.list.d/docker.list &amp;gt; /dev/null
sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>OpenWrt IPv6改全中继模式</title><link>https://iiii.fun/posts/openwrt/openwrt-ipv6-relay/</link><guid isPermaLink="true">https://iiii.fun/posts/openwrt/openwrt-ipv6-relay/</guid><description>将OpenWrt的IPv6配置改为全中继模式，实现IPv6直通</description><pubDate>Sat, 15 Mar 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;lan关于ipv6的设定全改中继模式&lt;br /&gt;
编辑/etc/config/dhcp&lt;br /&gt;
在wan下添加以下内容&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;option ra &apos;relay&apos;                        
option dhcpv6 &apos;relay&apos;  
option ndp &apos;relay&apos;    
option master &apos;1&apos;
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>Debian安装NVIDIA GRID vGPU驱动</title><link>https://iiii.fun/posts/linux/debian-nvidia-grid-driver/</link><guid isPermaLink="true">https://iiii.fun/posts/linux/debian-nvidia-grid-driver/</guid><description>在Debian上安装NVIDIA GRID驱动，包括Secure Boot配置和驱动安装步骤</description><pubDate>Sun, 09 Mar 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;bios配置&lt;/h1&gt;
&lt;p&gt;开机按esc进bios Device Manager-&amp;gt;Secure Boot Configuration-&amp;gt;Attempt Secure Boot 按回车把[X]去掉&lt;br /&gt;
F10保存后重启&lt;/p&gt;
&lt;h1&gt;驱动安装&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;apt install build-* dkms
apt install linux-headers-$(uname -r)
chmod +x *.run
./NVIDIA-Linux-x86_64-535.230.02-grid.run
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.sa.net/2025/03/09/8qpAYkuGRwzPNMT.png&quot; alt=&quot;image.png&quot; /&gt;&lt;br /&gt;
完美搞定&lt;/p&gt;
</content:encoded></item><item><title>Debian部署QwQ大模型（Ollama）</title><link>https://iiii.fun/posts/linux/debian-ollama-qwq/</link><guid isPermaLink="true">https://iiii.fun/posts/linux/debian-ollama-qwq/</guid><description>在Debian上通过Ollama部署QwQ:32b大语言模型，包括API配置和持久化运行</description><pubDate>Sun, 09 Mar 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;Ollama安装&lt;/h1&gt;
&lt;p&gt;先装个Ollama&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;curl -fsSL https://ollama.com/install.sh | sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;还是先下载下来吧&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cd /opt
proxychains curl -fsSL https://ollama.com/install.sh -o ollama_install.sh
#这里一定要加sudo，不然useradd会未找到
#这里需要代理，因为下载Linux bundle太慢了
sudo proxychains bash ollama_install.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;坐等&lt;br /&gt;
提示出&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; The Ollama API is now available at 127.0.0.1:11434.
&amp;gt;&amp;gt;&amp;gt; Install complete. Run &quot;ollama&quot; from the command line.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;就ok了&lt;br /&gt;
&lt;strong&gt;注意，下面几个连续操作都是改变ollama.service，你可以一次配完&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;开放一下api&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;nano /etc/systemd/system/ollama.service
#在[Service]里面加
Environment=&quot;OLLAMA_HOST=0.0.0.0&quot;
Environment=&quot;OLLAMA_ORIGINS=*&quot;
#重启一下服务
systemctl daemon-reload
systemctl restart ollama
systemctl status ollama
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;修改模型路径&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;chown -R ollama:ollama /mnt/model
chmod -R 775 /mnt/model

#在[Service]里面加
Environment=&quot;OLLAMA_MODELS=/mnt/model&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;添加一下代理&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;#在[Service]里面加
Environment=&quot;https_proxy=192.168.40.1:7890&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;保持加载&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;#在[Service]里面加
Environment=&quot;OLLAMA_KEEP_ALIVE=-1&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;上面的方法保持效果不好，用下面的&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;nano /etc/systemd/system/ollama-run.service
[Unit]
Description=Ollama Run Service
After=network.target

[Service]
ExecStart=/usr/local/bin/ollama run qwq
Restart=always
User=root
WorkingDirectory=/root
Environment=&quot;PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin&quot;

[Install]
WantedBy=multi-user.target

systemctl daemon-reload
systemctl enable --now ollama-run
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;安装模型&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;ollama pull qwq:32b
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;curl http://localhost:11434/api/generate -d &apos;{&quot;model&quot;: &quot;qwq&quot;, &quot;keep_alive&quot;: -1}&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;ok，pull下来的话就可以使用了&lt;/p&gt;
&lt;h1&gt;调整layer&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;#在[Service]里面加
Environment=&quot;OLLAMA_GPU_LAYER=cuda&quot;
Environment=&quot;CUDA_VISIBLE_DEVICES=GPU-6b53d422-019c-11f0-b3ec-82c4d041ae01&quot;
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>Linux笔电服务器配置低电量自动关机与电池保护</title><link>https://iiii.fun/posts/linux/linux-laptop-battery-server/</link><guid isPermaLink="true">https://iiii.fun/posts/linux/linux-laptop-battery-server/</guid><description>为作为服务器使用的Linux笔记本配置低电量自动关机脚本和TLP电池保护</description><pubDate>Sat, 08 Mar 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;低电量关机&lt;/h1&gt;
&lt;p&gt;文中使用的脚本为电池量低于40%进行关机，处于充电状态取消关机&lt;/p&gt;
&lt;p&gt;部署脚本如下&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;nano /opt/batterydown.sh
nano /usr/lib/systemd/system/batterydown.service
systemctl daemon-reload
systemctl enable --now batterydown.service
systemctl status batterydown.service
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;sh文件：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin
_shut=false
sleep 20

while :
do
    # 获取电池电量
    capacity=$(cat /sys/class/power_supply/BAT0/capacity)

    # 获取电池状态
    status=$(cat /sys/class/power_supply/BAT0/status)
    echo &quot;Battery Status: $status&quot;
    echo &quot;Battery Capacity: $capacity%&quot;

    if [[ $capacity -lt 40 ]]; then
        if [[ $status != &quot;Full&quot; &amp;amp;&amp;amp; $status != &quot;Charging&quot; ]]; then
            echo &quot;Battery capacity is below 40%. Going down!&quot;
            if [ &quot;$_shut&quot; == &quot;false&quot; ]; then
                echo &quot;Going Down!!!!&quot;
                shutdown -h +10
            fi
            _shut=true
        else
            if $_shut; then
                echo &quot;Battery is Charging. Canceling shutdown!&quot;
                shutdown -c
                _shut=false
            fi
        fi
    else
        if $_shut; then
            echo &quot;Battery capacity is above 40%. Canceling shutdown!&quot;
            shutdown -c
            _shut=false
        fi
    fi

    sleep 20
done
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;service文件：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[Unit]
Description=batterydown Service

[Service]
User=root
ExecStart=/bin/bash /opt/batterydown.sh

[Install]
WantedBy=default.target
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;电池保护&lt;/h1&gt;
&lt;p&gt;先装一下相关的软件包&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;apt install tlp
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;nano /etc/tlp.conf
#找到下面两行进行取消注释和修改
START_CHARGE_THRESH_BAT0=50
STOP_CHARGE_THRESH_BAT0=80
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;systemctl restart tlp
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;状态查看&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;tlb-stat -b
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>PVE安装飞牛OS（fnOS）</title><link>https://iiii.fun/posts/pve/pve-fnos-install/</link><guid isPermaLink="true">https://iiii.fun/posts/pve/pve-fnos-install/</guid><description>在Proxmox VE虚拟机中安装飞牛OS NAS系统</description><pubDate>Sat, 08 Mar 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;使用4c 4G内存+32G硬盘的分配方式&lt;br /&gt;
机型q35 uefi&lt;/p&gt;
&lt;h1&gt;bios配置&lt;/h1&gt;
&lt;p&gt;开机按esc进bios Device Manager-&amp;gt;Secure Boot Configuration-&amp;gt;Attempt Secure Boot 按回车把[X]去掉&lt;br /&gt;
F10保存后重启&lt;/p&gt;
&lt;h1&gt;系统安装&lt;/h1&gt;
&lt;p&gt;直接iso进了图形点点点 没什么好说的&lt;br /&gt;
安装后默认端口: 5666&lt;/p&gt;
&lt;h1&gt;系统配置&lt;/h1&gt;
&lt;p&gt;web中打开ssh&lt;br /&gt;
进入ssh进行&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;apt update
apt upgrade -y
apt install qemu-guest-agent
reboot
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;其他的就web随便配吧，好像没什么需要特别注意的&lt;/p&gt;
</content:encoded></item><item><title>PVE安装NVIDIA vGPU驱动</title><link>https://iiii.fun/posts/pve/pve-nvidia-vgpu/</link><guid isPermaLink="true">https://iiii.fun/posts/pve/pve-nvidia-vgpu/</guid><description>在Proxmox VE主机和虚拟机中安装NVIDIA vGPU驱动（以P100为例）</description><pubDate>Tue, 04 Mar 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;去 https://yun.yangwenqing.com/ESXI_PVE/vGPU/NVIDIA/16.5 下载&lt;br /&gt;
主机安装这个&lt;br /&gt;
&lt;a href=&quot;https://yun.yangwenqing.com/ESXI_PVE/vGPU/NVIDIA/16.5/NVIDIA-Linux-x86_64-535.161.05-vgpu-kvm-custom.run&quot;&gt;NVIDIA-Linux-x86_64-535.161.05-vgpu-kvm-custom.run&lt;/a&gt;&lt;br /&gt;
安装过程会让你关闭nouveau，确认然后重启一次就好&lt;/p&gt;
&lt;p&gt;虚拟机安装：&lt;br /&gt;
https://yun.yangwenqing.com/ESXI_PVE/vGPU/NVIDIA/16.5/NVIDIA-GRID-Linux-KVM-535.161.05-535.161.08-538.46/Guest_Drivers/538.46_grid_win10_win11_server2019_server2022_dch_64bit_international.exe&lt;/p&gt;
&lt;p&gt;我的显卡是P100，太简单了，没什么好说的&lt;br /&gt;
我用17.5根本跑不起来&lt;br /&gt;
16.9也能用 https://yun.yangwenqing.com/ESXI_PVE/vGPU/NVIDIA/16.9&lt;/p&gt;
&lt;p&gt;&lt;code&gt;apt install pve-headers-$(uname -r)&lt;/code&gt;&lt;/p&gt;
</content:encoded></item><item><title>PVE Intel核显SR-IOV虚拟化配置</title><link>https://iiii.fun/posts/pve/pve-intel-sriov/</link><guid isPermaLink="true">https://iiii.fun/posts/pve/pve-intel-sriov/</guid><description>在Proxmox VE上配置Intel核显SR-IOV，实现多虚拟机共享核显GPU直通</description><pubDate>Tue, 04 Mar 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;使用项目 https://github.com/strongtz/i915-sriov-dkms/&lt;/p&gt;
&lt;h2&gt;kernel配置&lt;/h2&gt;
&lt;p&gt;先查一下kernel列表，改到6.8.太高了不兼容&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;proxmox-boot-tool kernel list

apt-cache search pve-kernel

#准备装6.8
apt install proxmox-headers-6.8 proxmox-kernel-6.8

proxmox-boot-tool kernel pin 6.5.13-5-pve
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果你的就是6.8，那进行以下操作&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#装header
apt install pve-headers-$(uname -r)
proxmox-boot-tool kernel list
#根据列出的信息进行以下操作
proxmox-boot-tool kernel pin 6.8.12-8-pve
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;切换完内核重启一次&lt;/p&gt;
&lt;h2&gt;grub配置&lt;/h2&gt;
&lt;p&gt;加一下cmdline&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;vim /etc/default/grub
#GRUB_CMDLINE_LINUX_DEFAULT
#加入intel_iommu=on iommu=pt i915.enable_guc=3 i915.max_vfs=7 module_blacklist=xe
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;安装&lt;/h2&gt;
&lt;p&gt;下载本体&lt;br /&gt;
&lt;code&gt;wget -O /tmp/i915-sriov-dkms_2025.02.03_amd64.deb &quot;https://github.com/strongtz/i915-sriov-dkms/releases/download/2025.02.03/i915-sriov-dkms_2025.02.03_amd64.deb&quot;&lt;/code&gt;&lt;br /&gt;
进行基础安装操作&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;apt install build-* dkms
dpkg -i /tmp/i915-sriov-dkms_2025.02.03_amd64.deb
#完成后
update-initramfs -u
update-grub
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;配置sysfutils&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;apt install sysfsutils
echo &quot;devices/pci0000:00/0000:00:02.0/sriov_numvfs = 7&quot; &amp;gt; /etc/sysfs.conf
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;完成后重启即可&lt;/p&gt;
&lt;h2&gt;完成验证&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;lspci | grep VGA&lt;/code&gt;输出如下为正常&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;00:02.0 VGA compatible controller: Intel Corporation Alder Lake-S GT1 [UHD Graphics 730] (rev 0c)
00:02.1 VGA compatible controller: Intel Corporation Alder Lake-S GT1 [UHD Graphics 730] (rev 0c)
...
00:02.7 VGA compatible controller: Intel Corporation Alder Lake-S GT1 [UHD Graphics 730] (rev 0c)
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;注意事项&lt;/h2&gt;
&lt;p&gt;后面开虚拟机的时候cpu一定要选host模式，分配vgpu要在高级选上pcie，主显卡也要打勾，一定不要选全部功能，不能错选根设备00:02.0!&lt;/p&gt;
&lt;p&gt;因为Intel的驱动将pciid固定到02.0，我们使用02.1/2/3等sriov核显时，不能被正常驱动，即便是直通的sriov核显中勾选了PCI-Express显示正常驱动，但是也会因为pciid的原因导致一些软件工作不正常，比如流媒体Jellyfin Emby等无法硬解和转码。&lt;/p&gt;
&lt;p&gt;我们需要在虚拟机conf中把直通的核显指定地址&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;nano /etc/pve/qemu-server/虚拟机序号.conf
添加：
args: -set device.hostpci0.addr=02.0 -set device.hostpci0.x-igd-gms=0x2
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;卸载：&lt;code&gt;dkms remove i915-sriov-dkms/6.1&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;建议搭配&lt;/h2&gt;
&lt;p&gt;https://github.com/nomi-san/parsec-vdd&lt;br /&gt;
https://github.com/HaliComing/parsec-vdd-cli&lt;br /&gt;
添加开机启动：&lt;code&gt;shell:startup&lt;/code&gt;&lt;/p&gt;
</content:encoded></item><item><title>PVE初次安装后必备配置</title><link>https://iiii.fun/posts/pve/pve-initial-setup/</link><guid isPermaLink="true">https://iiii.fun/posts/pve/pve-initial-setup/</guid><description>新安装Proxmox VE后的必要配置，包括磁盘挂载、换源、IOMMU、IPv6、去除local-lvm等</description><pubDate>Tue, 04 Mar 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;刚安装的新鲜PVE，都需要进行一番配置&lt;/p&gt;
&lt;h2&gt;磁盘挂载&lt;/h2&gt;
&lt;h3&gt;添加系统挂载&lt;/h3&gt;
&lt;p&gt;先挂载一块硬盘，以便还原一些数据&lt;br /&gt;
首先通过 &lt;code&gt;ls /dev/disk/by-id/&lt;/code&gt; 查看想要挂载的磁盘id&lt;br /&gt;
&lt;strong&gt;一定不要使用/dev/sdx或者/dev/nvmexxx这种方式，就算是虚拟机环境下，磁盘也会窜来窜去导致无法挂载&lt;/strong&gt;&lt;br /&gt;
下一步就是&lt;code&gt;nano /etc/fstab&lt;/code&gt;，写入挂载信息了，为什么不用 vim？因为刚装的PVE没有&lt;br /&gt;
我的是 &lt;code&gt;/dev/disk/by-id/nvme-GLOWAY_YCT2TNVMe-M.2_80_M23041112171-part1 /mnt/gw2t ext4 defaults,nofail 0 1&lt;/code&gt; 添加到行尾即可&lt;br /&gt;
其中比较重要的是&lt;code&gt;nofail&lt;/code&gt;，加了这个参数可以保证磁盘出问题也可以开机&lt;br /&gt;
后续进行&lt;code&gt;systemctl daemon-reload&lt;/code&gt; &lt;code&gt;mount -a&lt;/code&gt; 验证挂载效果，记得新建挂载的文件夹。。&lt;/p&gt;
&lt;h3&gt;添加到PVE存储&lt;/h3&gt;
&lt;p&gt;然后去数据中心存储里添加一个目录类型的，ID随便，文件夹就填自己挂载的，内容全选上&lt;/p&gt;
&lt;h2&gt;换源&lt;/h2&gt;
&lt;p&gt;删除系统自带的所有源&lt;br /&gt;
&lt;code&gt;rm /etc/apt/sources.list.d/*&lt;/code&gt;&lt;br /&gt;
然后&lt;br /&gt;
&lt;code&gt;nano /etc/apt/sources.list&lt;/code&gt;&lt;br /&gt;
写入以下内容&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;deb http://mirrors.ustc.edu.cn/debian/ trixie main non-free contrib
deb http://mirrors.ustc.edu.cn/debian/ trixie-updates main non-free contrib
deb http://mirrors.ustc.edu.cn/debian/ trixie-backports main non-free contrib
deb-src http://mirrors.ustc.edu.cn/debian/ trixie main non-free contrib
deb-src http://mirrors.ustc.edu.cn/debian/ trixie-updates main non-free contrib
deb-src http://mirrors.ustc.edu.cn/debian/ trixie-backports main non-free contrib
deb http://mirrors.ustc.edu.cn/debian-security/ trixie-security main non-free contrib
deb-src http://mirrors.ustc.edu.cn/debian-security/ trixie-security main non-free contrib

#PVE
deb https://mirrors.ustc.edu.cn/proxmox/debian trixie  pve-no-subscription
deb https://mirrors.ustc.edu.cn/proxmox/debian/ceph-squid trixie  main
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;安装点小软件&lt;/h2&gt;
&lt;p&gt;安装前可能DNS不通，先通过PVE面板把DNS设置为&lt;code&gt;223.5.5.5&lt;/code&gt;再进行&lt;br /&gt;
&lt;code&gt;apt update&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;apt upgrade -y&lt;/code&gt;&lt;br /&gt;
请注意：&lt;strong&gt;upgrade可能会导致多网卡机器网卡对换，upgrade后不要重启，后面会说怎么修正&lt;/strong&gt;&lt;br /&gt;
安装一些PVE必备的玩意 &lt;code&gt;apt install vim libgl1 libegl1&lt;/code&gt;&lt;br /&gt;
安装一些我平常用的 &lt;code&gt;apt install htop glances net-tools iotop btop screen&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;配置IOMMU&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;nano /etc/default/grub&lt;/code&gt;&lt;br /&gt;
更改&lt;code&gt;GRUB_CMDLINE_LINUX_DEFAULT&lt;/code&gt;，在quiet后写入&lt;br /&gt;
intel CPU:&lt;br /&gt;
&lt;code&gt;intel_iommu=on iommu=pt&lt;/code&gt;&lt;br /&gt;
AMD CPU:&lt;br /&gt;
&lt;code&gt;amd_iommu=on iommu=pt&lt;/code&gt;&lt;br /&gt;
然后 &lt;code&gt;nano /etc/modules&lt;/code&gt;&lt;br /&gt;
添加&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;跑一下&lt;code&gt;update-initramfs -u -k all&lt;/code&gt; 和 &lt;code&gt;update-grub&lt;/code&gt;&lt;br /&gt;
重启即可配置完成&lt;/p&gt;
&lt;p&gt;如果遇到iommu分组问题，内核参数还需要添加&lt;code&gt;pcie_acs_override=downstream,multifunction&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;开启IPV6&lt;/h2&gt;
&lt;p&gt;在 /etc/network/interfaces 添加如下内容重启后启用 ipv6&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;iface vmbr0 inet6 dhcp
    accept_ra 2
    request_prefix 1
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;net.ipv6.conf.vmbr0.accept_ra=2
net.ipv6.conf.vmbr0.autoconf=1
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;锁定DUID&lt;/h2&gt;
&lt;p&gt;在&lt;code&gt;/etc/dhcp/dhclient.conf&lt;/code&gt;添加&lt;br /&gt;
长的：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;interface &quot;vmbr0&quot; {
    send dhcp6.client-id 00:01:00:01:2f:ef:8b:a6:00:e0:1f:6d:0e:ba;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;短的（比如MAC地址是：00:e0:4c:76:cd:b4 2a:14:4d:04:24:b8）：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;interface &quot;vmbr0&quot; {
    send dhcp6.client-id 2f:ef:91:03:2a:14:4d:04:24:b8;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;修改后重启生效&lt;/p&gt;
&lt;h2&gt;去除local-lvm&lt;/h2&gt;
&lt;p&gt;卸载数据池&lt;br /&gt;
&lt;code&gt;lvchange -an /dev/pve/data&lt;/code&gt;&lt;br /&gt;
删除数据池&lt;br /&gt;
&lt;code&gt;lvremove /dev/pve/data&lt;/code&gt;&lt;br /&gt;
扩展根池&lt;br /&gt;
&lt;code&gt;lvextend -r -l +100%FREE /dev/pve/root&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;然后在数据中心中调整存储，移除local-lvm，调整local可以存储全部类型&lt;/p&gt;
&lt;h2&gt;永久关闭SWAP&lt;/h2&gt;
&lt;p&gt;编辑&lt;code&gt;/etc/fstab&lt;/code&gt;，注释掉swap对应行即可&lt;/p&gt;
&lt;h2&gt;绑定网卡（防止多网卡跳序）&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;nano /etc/systemd/network/90-eno0.link&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[Match]
MACAddress=00:e0:1f:6d:0e:ba
[Link]
Name=eno0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;pve9的方法（在&lt;code&gt;/usr/local/lib/systemd/network/&lt;/code&gt;下添加link文件）：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# setup by the Proxmox installer.
[Match]
MACAddress=2a:14:4d:04:24:b8
Type=ether

[Link]
Name=nic0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;注意：一定不要叫ethx，会冲突&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;CPU调度调整（省电模式）&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;apt install linux-cpupower
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在 &lt;code&gt;/etc/systemd/system/cpupower.service&lt;/code&gt; 写入：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[Unit]
Description=Set CPU Frequency Governor

[Service]
Type=oneshot
ExecStart=/usr/bin/cpupower -c all frequency-set -g powersave
ExecStop=/usr/bin/cpupower -c all frequency-set -g performance
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;systemctl enable --now cpupower&lt;/code&gt;以启用（注意：测试发现省电模式会让服务器变卡）&lt;/p&gt;
</content:encoded></item><item><title>禁止ntQQ自动更新</title><link>https://iiii.fun/posts/daily/disable-ntqq-update/</link><guid isPermaLink="true">https://iiii.fun/posts/daily/disable-ntqq-update/</guid><description>通过替换文件的方式阻止ntQQ自动更新</description><pubDate>Tue, 24 Dec 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;找到&lt;code&gt;C:\Users\用户名\AppData\Roaming\Tencent\QQ\Temp\NTQQDownLoadCache&lt;/code&gt;把&lt;code&gt;NTQQCache.exe&lt;/code&gt;替换掉，并且把属性改成只读&lt;/p&gt;
</content:encoded></item><item><title>Docker部署BlessingSkin皮肤站</title><link>https://iiii.fun/posts/docker/docker-blessingskin/</link><guid isPermaLink="true">https://iiii.fun/posts/docker/docker-blessingskin/</guid><description>使用Docker Compose部署BlessingSkin Minecraft皮肤站</description><pubDate>Tue, 24 Dec 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;参考&lt;br /&gt;
https://neko.lzc256.com/notes/9iyoemzakdft46f1&lt;/p&gt;
&lt;p&gt;先安装docker，参考 &lt;a href=&quot;/posts/docker-install/&quot;&gt;Docker安装（Debian/Ubuntu）&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;整个文件&lt;code&gt;docker-compose.yml&lt;/code&gt;，内容如下&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;services:
  blessingskin:
    image: lzc256/blessingskin:6.0.2
    container_name: blessingskin
    restart: always
    ports:
      - 8080:80
    volumes:
      - ./storage:/app/storage
      - ./app:/app
    command:
       - sh
       - -c 
       - |
            mkdir -p /app/storage/framework/sessions /app/storage/framework/views /app/storage/framework/cache
            touch /app/storage/sqlite.db
            chown -R www-data:www-data /app; chmod -R 700 /app
            sed -i &apos;s/;extension=pdo_mysql/extension=pdo_mysql/g&apos; /usr/local/etc/php/php.ini-production
            sed -i &apos;s/;extension=mysqli/extension=mysqli/g&apos; /usr/local/etc/php/php.ini-production
            docker-php-entrypoint apache2-foreground
    networks:
      - blessingskin
  mysqldb:
    image: mysql:8.0.32
    container_name: blessingskin-mysql
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=onlyForTestRoot
      - MYSQL_USER=blessingskin
      - MYSQL_PASSWORD=onlyForTest
      - MYSQL_DATABASE=blessingskin
    volumes:
      - ./mysql:/var/lib/mysql
    networks:
      - blessingskin
networks:
  blessingskin:
    external: false
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果需要可以进入&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker exec -it 容器ID /bin/bash
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>AutoPCR部署</title><link>https://iiii.fun/posts/linux/autopcr-deploy/</link><guid isPermaLink="true">https://iiii.fun/posts/linux/autopcr-deploy/</guid><description>在Linux上部署AutoPCR（公主连结自动化工具）</description><pubDate>Tue, 24 Dec 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;先进行apt的基础安装&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;apt update
apt install python3 pip python3.11-venv pkg-config libssl-dev git make build-essential curl proxychains
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;创建并切换到autopcr账户，进行一些基础信息配置&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;adduser autopcr
su autopcr
cd
git clone https://github.com/cc004/autopcr.git
cd autopcr
python3 -m venv .venv

echo &apos;export RUSTUP_DIST_SERVER=&quot;https://rsproxy.cn&quot;&apos; &amp;gt;&amp;gt; ~/.bashrc
echo &apos;export RUSTUP_UPDATE_ROOT=&quot;https://rsproxy.cn/rustup&quot;&apos; &amp;gt;&amp;gt; ~/.bashrc
source ~/.bashrc
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;安装cargo和rustc&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;curl --proto &apos;=https&apos; --tlsv1.2 -sSf https://rsproxy.cn/rustup-init.sh | sh
source &quot;$HOME/.cargo/env&quot;

cat &amp;gt; ~/.cargo/config &amp;lt;&amp;lt; EOF
[source.crates-io]
replace-with = &apos;rsproxy-sparse&apos;
[source.rsproxy]
registry = &quot;https://rsproxy.cn/crates.io-index&quot;
[source.rsproxy-sparse]
registry = &quot;sparse+https://rsproxy.cn/index/&quot;
[registries.rsproxy]
index = &quot;https://rsproxy.cn/crates.io-index&quot;
[net]
git-fetch-with-cli = true
EOF

rustc --version
cargo --version
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;进行autopcr的基础配置&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;proxychains .venv/bin/pip3 install -r requirements.txt

.venv/bin/python3 _download_web.py
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;切换回root创建一个服务&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cat &amp;gt; /usr/lib/systemd/system/autopcr.service &amp;lt;&amp;lt; EOF
[Unit]
Description=autopcr
After=network.target

[Service]
User=autopcr
ExecStart=bash /home/autopcr/autopcrstart.sh
TimeoutSec=2

[Install]
WantedBy=default.target
EOF

cat &amp;gt; /home/autopcr/autopcrstart.sh &amp;lt;&amp;lt; EOF
#!/bin/bash
cd /home/autopcr/autopcr
git pull
.venv/bin/python3 _download_web.py
.venv/bin/python _httpserver_test.py
EOF
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;最后的访问地址为&lt;br /&gt;
&lt;code&gt;:13200/daily/login&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;更新&lt;/h2&gt;
&lt;p&gt;切换到autopcr用户运行如下命令&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo systemctl stop autopcr
cd ~/autopcr
proxychains git pull
proxychains .venv/bin/python3 _download_web.py
sudo systemctl start autopcr
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>Git私钥导入与初始配置</title><link>https://iiii.fun/posts/daily/git-ssh-gpg-setup/</link><guid isPermaLink="true">https://iiii.fun/posts/daily/git-ssh-gpg-setup/</guid><description>Git SSH私钥配置、GPG签名配置及用户信息设置</description><pubDate>Mon, 23 Dec 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;去用户主文件夹下，创建 &lt;code&gt;.ssh&lt;/code&gt; 文件夹&lt;br /&gt;
创建&lt;code&gt;config&lt;/code&gt;文件，内容如下&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Host github.com
    User git
    HostName ssh.github.com
    Port 443
    IdentityFile ~/.ssh/你的密钥文件名
Host *
    IdentityFile ~/.ssh/你的密钥文件名
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后根据IdentityFile中你所填的密钥文件名，把密钥放进去就行&lt;br /&gt;
如果你在用linux，密钥要进行&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;chmod 600 密钥文件名
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;git第一次配置用户信息：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git config --global user.email 邮箱
git config --global user.name 名字
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;gpg导入&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;gpg --import ./gpg文件名
git config --global user.signingkey gpgkeyid
git config --global commit.gpgsign true
git config --global user.email 邮箱
git config --list
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>Ventoy移动硬盘VHD多系统启动-基础篇</title><link>https://iiii.fun/posts/ventoy/ventoy-vhd-multiboot-basics/</link><guid isPermaLink="true">https://iiii.fun/posts/ventoy/ventoy-vhd-multiboot-basics/</guid><description>使用Ventoy配置移动硬盘实现VHD多系统启动，包括分区规划、VHD创建和插件配置</description><pubDate>Sun, 17 Nov 2024 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;基础准备&lt;/h1&gt;
&lt;p&gt;下载ventoy &lt;a href=&quot;https://www.ventoy.net/cn/download.html&quot;&gt;https://www.ventoy.net/cn/download.html&lt;/a&gt;&lt;br /&gt;
配置后再进行安装，分区类型选GPT，分区设置要选NTFS
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/kbKtf8xCDEh6Sqs.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/AJtQknLx6BKIqjF.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;这里要配置在磁盘最后保留一段空间来压缩ventoy分区大小，最好把ventoy分区大小压缩到1~64G。&lt;br /&gt;
因为ventoy后续可以使用link来link别的分区的镜像文件，没必要把镜像文件再放到ventoy分区。&lt;br /&gt;
后部的空分区直接格式化成新NTFS分区用来后续存放VHD。&lt;br /&gt;
格式化后分区表示例&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.sa.net/2024/11/17/4wuymza6AVNqXDH.png&quot; alt=&quot;image.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;DG下载：&lt;a href=&quot;https://www.diskgenius.cn/download.php&quot;&gt;https://www.diskgenius.cn/download.php&lt;/a&gt;&lt;br /&gt;
添加ventoy插件&lt;br /&gt;
Windows用的 https://www.ventoy.net/cn/plugin_vhdboot.html&lt;br /&gt;
下载后如图放置，新建一个ventoy文件夹在ventoy分区放&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.sa.net/2024/11/17/AjCgBdvPGtT5IQq.png&quot; alt=&quot;image.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Linux不需要添加插件，但是需要下载一个ISO用于后续引导&lt;br /&gt;
参考地址 &lt;a href=&quot;https://www.ventoy.net/cn/plugin_vtoyboot.html&quot;&gt;https://www.ventoy.net/cn/plugin_vtoyboot.html&lt;/a&gt;&lt;br /&gt;
ISO下载地址 &lt;a href=&quot;https://github.com/ventoy/vtoyboot/releases&quot;&gt;https://github.com/ventoy/vtoyboot/releases&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;下载系统镜像&lt;br /&gt;
Windows：&lt;a href=&quot;https://next.itellyou.cn/&quot;&gt;https://next.itellyou.cn/&lt;/a&gt;&lt;br /&gt;
Linux：&lt;br /&gt;
Debian：&lt;a href=&quot;https://mirrors.tuna.tsinghua.edu.cn/debian-cd/current-live/amd64/iso-hybrid/&quot;&gt;https://mirrors.tuna.tsinghua.edu.cn/debian-cd/current-live/amd64/iso-hybrid/&lt;/a&gt;&lt;br /&gt;
ArchLinux：https://mirrors.tuna.tsinghua.edu.cn/archlinux/iso/&lt;/p&gt;
&lt;h1&gt;VHD从系统创建和挂载&lt;/h1&gt;
&lt;p&gt;如果你只想安装 Windows，那你可以直接参考我的 Windows 安装，后面的部分可以不看&lt;/p&gt;
&lt;p&gt;右键此电脑管理，计算机管理-&amp;gt;存储-&amp;gt;磁盘管理-&amp;gt;更多操作-&amp;gt;创建 VHD&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.sa.net/2024/11/17/u1EI4yMQRer8Gb9.png&quot; alt=&quot;image.png&quot; /&gt;
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/YSXuGnMjV56UENe.png&quot; alt=&quot;image.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;位置直接放在我们移动硬盘的新分区里，这一步 linux 要选固定大小，windows 用动态扩展。&lt;br /&gt;
一定不要选 VHDX，我一般 256 G，大小自己任选。
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/BdzO4cv1e7HML6E.png&quot; alt=&quot;image.png&quot; /&gt;
创建完会如图直接挂载到系统&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.sa.net/2024/11/17/WMexHd98buA2XoQ.png&quot; alt=&quot;image.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;如果安装windows不用动，安装linux一定要先解除挂载&lt;/p&gt;
</content:encoded></item><item><title>Ventoy移动硬盘VHD多系统启动-Windows安装</title><link>https://iiii.fun/posts/ventoy/ventoy-vhd-windows/</link><guid isPermaLink="true">https://iiii.fun/posts/ventoy/ventoy-vhd-windows/</guid><description>使用WinNTSetUp在VHD中安装Windows系统，并通过Ventoy引导启动</description><pubDate>Sun, 17 Nov 2024 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;已知问题&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;Windows 无法在非虚拟机环境更新&lt;/li&gt;
&lt;li&gt;Windows 可能会因为更新后导致无法启动&lt;/li&gt;
&lt;/ol&gt;
&lt;h1&gt;Windows系统安装&lt;/h1&gt;
&lt;h2&gt;Ventoy 配置&lt;/h2&gt;
&lt;p&gt;请参阅 &lt;a href=&quot;/posts/ventoy-vhd-multiboot-basics/&quot;&gt;Ventoy移动硬盘VHD多系统启动-基础篇&lt;/a&gt; 中的配置过程&lt;/p&gt;
&lt;h2&gt;VHD 创建&lt;/h2&gt;
&lt;p&gt;使用WinNTSetUp，没找到好的下载地址，不提供了&lt;br /&gt;
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/X83DqHrwC27TJYu.png&quot; alt=&quot;&quot; /&gt;
我们要选右下角的VHD，创建&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.sa.net/2024/11/17/RmNKe9hIaovVsfy.png&quot; alt=&quot;&quot; /&gt;
用这个创建win的会自动帮你分好区
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/zq3PBjDnbhOx4WS.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;系统安装&lt;/h2&gt;
&lt;p&gt;VHD创建后回到主界面选系统ISO&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.sa.net/2024/11/17/grqueOMKQ2oEaxZ.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;引导选新挂的VHD的ESP
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/xXkPNty7zRndw1v.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;系统则是选新挂的虚拟磁盘主分区
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/AHsdR19t34NnyU5.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;优化调整稍微调一下
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/cxFJuZ32ON8D96i.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;然后直接安装&lt;br /&gt;
弹这个，不用管
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/ZRdTK7lnwMyDokU.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/iB3zFDcx4hu7P2T.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;确定，就是往下走就行了。&lt;br /&gt;
系统安装完成
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/3G5YztVFqvb81mN.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;第一次启动&lt;/h2&gt;
&lt;p&gt;来到VMWare这边&lt;br /&gt;
最新的vmware下载教程 &lt;a href=&quot;https://www.mikeroysoft.com/post/download-fusion-ws/&quot;&gt;https://www.mikeroysoft.com/post/download-fusion-ws/&lt;/a&gt;&lt;br /&gt;
创建一台虚拟机，完事直接把硬盘移除。&lt;br /&gt;
添加磁盘，选择现有磁盘&lt;br /&gt;
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/VErGvR9lI5g4q7b.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;选上我们的VHD
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/ZUfTDxuLV48EnpK.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;这里保持现有
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/WNjq2ksvbXDMQfB.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;添加完记得去设备管理器解挂 VHD，否则会报错&lt;br /&gt;
然后直接开机即可&lt;/p&gt;
&lt;p&gt;等待安装跑完，进入 OOBE
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/NTA9u7ewxdPGzvL.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;可以直接关机虚拟机了，也可以选择安装到你满意的状态再关&lt;/p&gt;
&lt;h2&gt;Link 到 Ventoy&lt;/h2&gt;
&lt;p&gt;关机后我们进行Link操作，打开Ventoy带的VentoyVlnk.exe&lt;br /&gt;
创建，文件选择刚才的VHD文件
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/fg2iEuKnrslPYwj.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;这个会生成在VentoyVlnk.exe所在目录，我们直接把这个文件复制到Ventoy分区就可以了。
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/PJFmWxVfci5CIQZ.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;安装结束！大功告成！&lt;/p&gt;
&lt;h1&gt;已知问题解决方法&lt;/h1&gt;
&lt;h2&gt;一、VMWare 提示&quot;Disk&quot;模块启动失败&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.sa.net/2024/11/17/PaYrgJ3CE965HlK.png&quot; alt=&quot;&quot; /&gt;
这种是没取消挂载或者用了 VHDX 格式&lt;/p&gt;
&lt;p&gt;计算机管理-》磁盘管理
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/VMKJyCt8D2kj6d5.png&quot; alt=&quot;&quot; /&gt;
分离后即可正常&lt;/p&gt;
&lt;h2&gt;二、安装完成后无法开机&lt;/h2&gt;
&lt;p&gt;第一次启动一定要在 VMWare 中，否则会因为更新引导代码失败导致 windows 无法进行安装&lt;br /&gt;
在 VMWare 中等待启动后重启一次，进入到 OOBE 即可完成虚拟机中的操作，如果需要，后续也可以都在虚拟机中操作。&lt;/p&gt;
</content:encoded></item><item><title>Ventoy移动硬盘VHD多系统启动-Linux安装（Ubuntu为例）</title><link>https://iiii.fun/posts/ventoy/ventoy-vhd-linux/</link><guid isPermaLink="true">https://iiii.fun/posts/ventoy/ventoy-vhd-linux/</guid><description>在VHD中安装Linux系统（Ubuntu）并配置Ventoy引导，包括vtoyboot脚本安装和常见问题解决</description><pubDate>Sun, 17 Nov 2024 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;Linux 系统安装&lt;/h1&gt;
&lt;h2&gt;Ventoy 配置&lt;/h2&gt;
&lt;p&gt;请参阅 &lt;a href=&quot;/posts/ventoy-vhd-multiboot-basics/&quot;&gt;Ventoy移动硬盘VHD多系统启动-基础篇&lt;/a&gt; 中的配置过程&lt;/p&gt;
&lt;h2&gt;VHD 创建&lt;/h2&gt;
&lt;p&gt;VHD创建和最开始基础准备介绍中相同，记得先解除挂载&lt;br /&gt;
先等待个漫长的创建过程，因为是全部分配，所以要全部写入磁盘，要写入 256G，所以建议用个好点的移动硬盘，或者分区写小点。
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/lJBKDNPduSHgtyY.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;创建完直接取消挂载
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/cunTsGbjLwICi52.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;后缀改名，加.vtoy
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/gEjGS9sefbK8dYt.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;系统安装&lt;/h2&gt;
&lt;p&gt;本篇以ubuntu为例&lt;br /&gt;
等待的时候先创建个虚拟机&lt;br /&gt;
创建后进行一些调整&lt;br /&gt;
常规这里改的和图上一样
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/YHi9kwBC8Fo2Zns.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;高级改到UEFI，因为我们现在基本上都是用UEFI
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/w1RQ23IW6hBd9ql.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;磁盘直接选改了名的
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/kVydp3EQStuTzKU.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;然后保留现有格式，挂上去就行了。&lt;br /&gt;
开机，按正常流程安装Ubuntu，按照OOBE一直操作，等就行了。&lt;br /&gt;
如果要求你选磁盘，那说明你创建虚拟机时候没删除默认创建的磁盘，要只保留VHD磁盘以保证安装正确。
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/jgTVEbkmesDWcJx.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;一直到从硬盘启动正常进入到系统。&lt;/p&gt;
&lt;h2&gt;VtoyBoot 配置&lt;/h2&gt;
&lt;p&gt;进入系统后ISO切换到
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/1NEtGvPr78pCfVZ.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;然后把它连接到虚拟机
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/1kzNtv2lcoAMSyJ.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;如图，复制到随便一个位置然后解压
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/hKrOeo7zUpjZIWf.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/zhlZQ7Tf81DuMRy.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;tar -zxvf 文件名
cd 文件夹
sudo bash vtoyboot.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.sa.net/2024/11/17/IGEf7xnBzMjOSZr.png&quot; alt=&quot;&quot; /&gt;
完成后poweroff关闭虚拟机，准备启动到物理机进行验证&lt;/p&gt;
&lt;h2&gt;LinkVHD&lt;/h2&gt;
&lt;p&gt;进行一次link，复制到Ventoy分区，重启验证&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.sa.net/2024/11/17/HSfIgyTxjwdbK7E.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h1&gt;已知问题的解决&lt;/h1&gt;
&lt;h2&gt;一、进入安装后黑屏卡死&lt;/h2&gt;
&lt;p&gt;显示器把3D加速关了，有Bug，会黑屏死机&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.sa.net/2024/11/17/UCGpleJ87FkWqjr.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;二、安装后无法开机&lt;/h2&gt;
&lt;p&gt;大 EFI 这里面，boot 目录如果有 &lt;code&gt;bootx64.efi&lt;/code&gt; 是没问题的。&lt;br /&gt;
如果没有需要执行一下命令把你的 grub 的启动引导复制出来&lt;br /&gt;
&lt;code&gt;sudo cp /boot/efi/EFI/系统名/grubx64.efi /boot/efi/EFI/boot/bootx64.efi&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.sa.net/2024/11/17/JpPnZITyHkcDLU4.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>MixedVelocity：Minecraft盗版与正版共存方案</title><link>https://iiii.fun/posts/project/mixedvelocity-minecraft/</link><guid isPermaLink="true">https://iiii.fun/posts/project/mixedvelocity-minecraft/</guid><description>基于魔改Velocity实现Minecraft离线和正版玩家混合登录，支持VC嵌套和AuthME二次验证</description><pubDate>Sun, 17 Nov 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;一套离线+正版的VC登入方案，支持VC嵌套，通过AuthME及其配套插件进行二次验证，已确认可用。&lt;br /&gt;
相关代码开源 https://github.com/MixedLogin&lt;/p&gt;
&lt;h2&gt;魔改后特性&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;支持VC嵌套&lt;/li&gt;
&lt;li&gt;允许选择不同的后端信息传递&lt;/li&gt;
&lt;li&gt;支持离线和正版混合使用&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;需要的文件清单&lt;/h2&gt;
&lt;p&gt;offline.yml 为添加到MultiLogin中的yggd服务&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;id: 1
name: &apos;Offline&apos;
serviceType: BLESSING_SKIN
yggdrasilAuth:
blessingSkin:
apiRoot: &apos;http://127.0.0.1:26748/api/yggdrasil&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;MultiLogin-MixedLoginVelocity 为接入到魔改VC的MultiLogin&lt;br /&gt;
MixedVelocity-proxy-3.4.0-SNAPSHOT-all.jar 为魔改VC本体&lt;br /&gt;
AuthMeVelocity-MixedVelocity-4.1.2.jar 为魔改过的AuthMEVC，支持跳过正版玩家的登入&lt;br /&gt;
bukkit下的Authme和AuthMeVelocity是未经魔改的，可以随意替换&lt;/p&gt;
&lt;h2&gt;使用方法&lt;/h2&gt;
&lt;h3&gt;基础安装&lt;/h3&gt;
&lt;p&gt;plugins放入魔改的MulitLogin以方便多认证源和档案管理，将offline.yml拖入multilogin\services&lt;br /&gt;
plugins放入魔改的AuthMeVelocity以支持跳过在线玩家的认证和设定登入后行为&lt;/p&gt;
&lt;h3&gt;兼容情况&lt;/h3&gt;
&lt;p&gt;低于1.19.1:&lt;br /&gt;
域名前加o-或者offline识别为离线玩家&lt;br /&gt;
高于1.19.1:&lt;br /&gt;
直接进入即可&lt;/p&gt;
&lt;h3&gt;下层VC设定&lt;/h3&gt;
&lt;p&gt;mixedvc.toml 编辑 其中lobby为下层VC服务器&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[server-forwarding-mode]
#设定不同服务器的转发模式
lobby = &quot;none&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;并且下层vc添加以下参数并启用在线模式以确保资料被正确转发&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;-Dmojang.sessionserver=&quot;http://127.0.0.1:26749/api/yggdrasil/sessionserver/session/minecraft/hasJoined&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;下层普通服务器设定&lt;/h3&gt;
&lt;p&gt;mixedvc.toml 编辑 其中login为下层服务器，转发模式自己根据需要写即可&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[server-forwarding-mode]
#设定不同服务器的转发模式
login = &quot;modern&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;下层登入服务器设定&lt;/h3&gt;
&lt;p&gt;首先参考下层普通服务器设定，进行设定后装入AuthMe和AuthMeVelocity来进行离线认证&lt;/p&gt;
&lt;h3&gt;其他注意&lt;/h3&gt;
&lt;p&gt;AuthMeVelocity自行设置，参考设置如下&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;advanced {
    debug=true
    random-attempts=5
}
auth-servers=[
    login
]
commands {
    allowed-commands=[
        login,
        register,
        l,
        reg,
        email,
        captcha
    ]
    blocked-message=&quot;&amp;lt;red&amp;gt;You cannot execute commands if you are not logged in yet&quot;
}
ensure-auth-server {
    ensure-auth-server=false
    send-mode=TO_FIRST
}
send-on-login {
    require-permission=false
    send-mode=RANDOM
    send-on-login=true
    teleport-servers=[
        lobby
    ]
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如有问题请提交issue或加QQ群反馈 群号：946864759&lt;/p&gt;
</content:encoded></item><item><title>ArchLinux配置RDP远程桌面</title><link>https://iiii.fun/posts/linux/archlinux-rdp/</link><guid isPermaLink="true">https://iiii.fun/posts/linux/archlinux-rdp/</guid><description>在ArchLinux上配置xrdp实现远程桌面连接，支持Intel/AMD/Nvidia显卡</description><pubDate>Sat, 16 Nov 2024 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;跑起来&lt;/h1&gt;
&lt;p&gt;首先，安装核心软件包：&lt;br /&gt;
&lt;code&gt;yay -S xrdp&lt;/code&gt;&lt;br /&gt;
这里需要注意 xrdp最新版本和xorgxrdp-glamor并不兼容 如果需要xorgxrdp-glamor 你需要&lt;br /&gt;
&lt;code&gt;yay -S package-name --editmenu&lt;/code&gt;&lt;br /&gt;
修改pkgver为1.10.1，子版本号为1&lt;br /&gt;
sha256sums全都改成SKIP&lt;/p&gt;
&lt;p&gt;然后，安装 Xorg 后端：&lt;br /&gt;
（三选一即可）&lt;/p&gt;
&lt;p&gt;&lt;code&gt;yay -S xorgxrdp-glamor&lt;/code&gt; （英特尔与 AMD 核显）&lt;br /&gt;
&lt;code&gt;yay -S xorgxrdp&lt;/code&gt; （不使用显卡渲染，CPU 占用率会比较高）&lt;br /&gt;
&lt;code&gt;yay -S xorgxrdp-nvidia&lt;/code&gt; （英伟达独显，没有测试过，可能需要根据安装时的提示修改配置文件）&lt;/p&gt;
&lt;p&gt;接下来，在 &lt;code&gt;/etc/X11/Xwrapper.config&lt;/code&gt; 中加入一行 &lt;code&gt;allowed_users=anybody&lt;/code&gt; （如果没有这个文件则手动创建一个）。&lt;br /&gt;
（不知道为什么，这个步骤没有出现在英文版的 arch wiki 中，但没有它远程桌面是起不来的）&lt;/p&gt;
&lt;p&gt;再接下来，创建 &lt;code&gt;~/.xinitrc&lt;/code&gt; ，并写入 &lt;code&gt;/usr/lib/plasma-dbus-run-session-if-needed startplasma-x11&lt;/code&gt; 。&lt;br /&gt;
（正常步骤应该是修改原有的 &lt;code&gt;.xinitrc&lt;/code&gt; ，但是，再次，我压根就没有这个东西，于是手动创建一个）&lt;br /&gt;
启用服务，再重启一下系统：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo systemctl enable xrdp.service
sudo systemctl enable xrdp-sesman.service
sudo reboot
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Nvidia使用&lt;/h2&gt;
&lt;p&gt;会提示&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;xorgxrdp-nvidia only use the first gpu, if you need multi gpus support, edit /etc/X11/xrdp/xorg_nvidia.conf manually.(黄色警告)

remember to edit &quot;/etc/xrdp/sesman.ini&quot;, change &quot;param=xrdp/xorg.conf&quot; to &quot;param=xrdp/xorg_nvidia.conf&quot; in the section &quot;[Xorg]&quot;.(红色)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;那我们改一下&lt;code&gt;/etc/xrdp/sesman.ini&lt;/code&gt;，把&lt;code&gt;&quot;param=xrdp/xorg.conf&quot;&lt;/code&gt; 改成&lt;code&gt;&quot;param=xrdp/xorg_nvidia.conf&quot;&lt;/code&gt;&lt;/p&gt;
&lt;h1&gt;已知问题&lt;/h1&gt;
&lt;h2&gt;没声音&lt;/h2&gt;
&lt;p&gt;安装 pipewire-module-xrdp&lt;/p&gt;
&lt;h2&gt;卸载切换&lt;/h2&gt;
&lt;p&gt;还需要卸载一个-debug 所以卸载命令如下&lt;br /&gt;
&lt;code&gt;yay -R xorgxrdp-glamor xorgxrdp-glamor-debug&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;yay -R xorgxrdp xorgxrdp-debug&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;yay -R xorgxrdp-nvidia xorgxrdp-nvidia-debug&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;给笔记本电脑用会炸&lt;/h2&gt;
&lt;p&gt;暂时没啥办法，先用kde自带的rdp&lt;/p&gt;
&lt;h1&gt;参考资料&lt;/h1&gt;
&lt;p&gt;https://blog.xzr.moe/archives/237/&lt;/p&gt;
</content:encoded></item></channel></rss>