ArchLinux 启用 Secure Boot 的最简单方法 —— sbctl
配置背景 最近在我的 Thinkpad 上装了 Windows 11 + Archlinux 双系统。想要开启下 Secure Boot。 其实不开启 Secure Boot 双系统运行也正常。目前 Windows 11 仅在安装阶段要求 Secure Boot,安装完成后可以关闭。不过由于 WSA 以及部分游戏的反作弊模块会校验 Secure Boot。为了不影响 Windows 功能,最终决定开启它。 ...
WSL2 安装 ArchLinux —— In The Arch Way
The Arch Way Arch 的核心原则是 KISS(Keep It Simple Stupid)。这让它和 Ubuntu , RedHat 有着显著的区别。后者会考虑到开箱即用,而Arch不会,Arch会尽可能的保持和上游一致,而只做最小范围的更改。 ...
win10 升级至 win11 跳过TPM限制 (保留应用和数据)
系统升级有风险,请记得提前备份重要数据。 下载 win11的Media Creation Tool下载系统镜像: a) 打开 https://www.microsoft.com/zh-cn/software-download/windows11/ b) 点击 创建 Windows 11 安装 –> 立即下载 c) 使用 mediacreationtool 创建当前系统版本对应的 ISO 运行 Skip_TPM_Check_on_Dynamic_Update.cmd 脚本: https://github.com/AveYo/MediaCreationTool.bat/blob/main/bypass11/Skip_TPM_Check_on_Dynamic_Update.cmd 挂载Windows.iso安装Windows11,安装进程将不会因为检查TPM不通过而被中断。可选择保留应用和数据选项,实现升级。 PS: ...
.Net Core AOP 使用 Autofac 异步拦截器
背景 autofac使用拦截器实现AOP,是基于Castle.Core的.然而Castle.Core并未提供原生异步支持.所以需要使用帮助类实现,这在autofac官方文档的已知问题中有详细说明。 对于该问题的讨论,最早出现于stackoverflow James Skimming基于其中的一个答案,研发了一个帮助包即: Castle.Core.AsyncInterceptor 我之前也一直使用的是该方案,不过thepirat000随后提出了一个使用dynamic的更加简化的实现方法 我对该方法进行了一些封装,实现了一个帮助包,大家可以尝试一下。 ...
.Net Core 中的 AOP 原理
AOP是所有现代OOP语言开发框架中的基础功能,在各类软件开发框架中有着广泛应用。虽然AOP早已不是什么新技术,可知其然还要其所以然。本文将基于.NET环境探讨实现AOP的底层原理。 ...
Hyper-V NAT 网络设置固定 IP / DHCP
Hyper-V 默认的 Default Switch 同时支持了 NAT 网络以及 DHCP,虚拟机能够访问外网。 但使用过程中发现这个 IP 网段经常变化,而且 Hyper-V 没有提供管理其 NAT 网络与 DHCP 的图形化界面功能。 如果开发者需要同时管理多个 VM,且在局域网中无法为他们单独分配固定 IP 时,使用可自行配置的 NAT 网络显得尤为重要。 本文提供一种自定义管理 Hyper-V NAT 网络的方法,虚拟机能够通过固定 IP 连接至该网络,且能够访问外网。 ...
Git Server on Linux
Git 服务器搭建,如果无需权限控制,仅团队内部使用,初始化一个服务器仓库,其他人通过 ssh 访问这个文件夹即可。具体步骤如下: 添加 git-shell which git-shell vim /etc/shells # and add the path to git-shell from last command 添加 Git 用户 useradd git -m -s git-shell 初始化仓库 mkdir -p /opt/git/repo.git git init --bare /opt/git/repo.git chown -R git:git /opt/git 定制欢迎信息 git help shell vim /home/git/git-shell-commands/no-interactive-login --- #!/bin/sh printf '%s\n' "Hi $USER! You've successfully authenticated, but I do not" printf '%s\n' "provide interactive shell access." exit 128 验证配置结果 ssh -T git@ip --- Hi git! You've successfully authenticated, but I do not provide interactive shell access. Clone 仓库 git clone git@git-server:/opt/git/repo.git 参考:https://git-scm.com/book/zh/v2 - 服务器上的git