
就比如遇到这种想找黑历史的时候,搜索功能摆在这里却用不了,只能原地感叹一句要你何用。忍忍总也有个限度,当我第 n 次想找历史记录但是无论如何也找不到的时候,一拍脑袋:

就比如遇到这种想找黑历史的时候,搜索功能摆在这里却用不了,只能原地感叹一句要你何用。忍忍总也有个限度,当我第 n 次想找历史记录但是无论如何也找不到的时候,一拍脑袋:
Four months ago I brought an HP Z620 workstation to run virtual machines at home with Hyper-V Server. Some days later I planned to replace the SSD in the workstation from Samsung 860EVO 500G to Intel DC P4510 2TB for more capacity and better performance. But after hardware upgrade I found that P4510 just didn't get recognize by the boot loader. It seemed that I need to do some more work to boot ESXi from this NVMe SSD.
The simplest solution is using Clover Boot Loader as secondary boot loader. But the automatic OS scans provided by Clover does not support VMware ESXi, meanwhile creating a custom entry is quite bother job as writing XML manually by human is just another disaster.
After some simple research I reached out that unified extensible firmware interface itself dose support load driver before OS boot, so EFI Shell with a customized startup script may solve this problem for me. Firstly create a ESP partition on one disk with GUID partition table which is recognizable by the stock firmware, copy UEFI Shell binary as well as the NVMe driver binary to that partition, then create startup.nsh
in that partition with following script:
load -nc fs0:\NvmExpressDxe-64.efi connect -r map -u fs1:\EFI\BOOT\BOOTX64.EFI
The script is quite easy to understand. But remember to change the locations and names of these binaries to your own.
After that, use efibootmgr
under Linux or some utilities under Windows PE to create a new EFI boot entry with EFI shell as the loader, and then set it to default entry. Note that the disk alias may be different on each machine, to find out your own aliases just boot into the efi shell, load the NVMe driver and use the map
command to show partition aliases.
May be the simplest solution is just install ESXi to one HDD and place all virtual disks in the NVMe SSD?
其实这个叫 GitHub Actions 的持续集成已经上线很久了,在刚刚公开测试时我就尝试去使用,结果翻来翻去没找到 MongoDB 数据库的项目应该如何配置基础环境 不要问我当时为什么用了 MongoDB,我现在非常后悔(雾)。今天摸鱼的时候突然想到 Actions 支持 Docker,Docker 又能快速的启动一个 MongoDB 官方提供的容器,那么这就好办了,直接对着自己的博客下手,来试一试这个工具。
在仓库首页里点击 Actions 标签进入配置页面,并直接创建一个新的 Node CI
类型的 Workflow,这样就能获得一个适用于 node.js 项目的配置模版。和 Travis 一样,Actions 的模版配置也是使用 YAML 格式,写起来比 JSON 舒服多了。之后只需要在 steps
中添加以下内容即可启动一个 MongoDB 容器:
- name: Launch MongoDB
run: |
sudo docker container run --name mongo -v $PWD:/src -p 27017:27017 -d mongo
sleep 4s
- name: Import initial database
run: |
sudo docker container ls --all
sudo docker container exec mongo mongo localhost/newBlog /src/db.default.js
在 个人网络配置方案 提到过,之前我的 PS4 代理方案是在 OpenWrt 路由器上通过 LuCI 配置 shadowsocks-libev 来完成的。 此方案理论上并没有什么问题或者不妥,但是在实际游戏中,常常会遇到无法和好友使用 PS4 内置的 Party 进行语音的问题,甚至还会出现彻底无法加入好友的集会所的情况。 这些问题出现时 PS4 大概率会提示说:Cannot use voice chat with the following player: xxxxx. This might be because of NAT type limitations。 考虑到 Monster Hunter World: IceBorne 发售日临近,这个问题若是不解决恐怕又要出现和好基友花半小时开任务十分钟掉线的尴尬画面了。
首先是换掉 shadowsocks,改用 WireGuard 提供 VPN 方案。具体来说的话,shadowsocks 本身是对 socks5 代理进行加密传输来实现代理,本质上是一个应用层代理。而透明代理是对设备的 IP Packet 进行代理,需要额外的工作才能实现,目前主要的两种方式是 ss-redir 和 iptables 流量重定向,或者是使用移动平台上常见的 tun2socks 来完成 L5 转 L3。WireGuard 那边呢,因为这玩意本身就是一个 L3 VPN,在两个 peer 上都会创建一个 tun 接口,并使用 UDP 来完成 tun 接口中流量的传递,对操作系统等来说这就是一个常规的 L3 隧道,也就避免了不必要的麻烦。
人挺多的,手办也挺多的,好看的手办也有不少,只可惜拙劣的拍照技巧让不少照片都非常失败:没对上焦、手抖、光圈太大……
所使用的器材全部是索尼 A73 + 索尼蔡司 FE55。
这里就随便丢几张自己觉得说的过去的吧。页面里的图片都是压缩到 1600 像素长边的,如果需要看原图(6000x4000),点击即可。