Day 5537 UNIFOSA GU512303EP0202 GDDR-1333 2GB

该机器为宏碁(Acer)台式机上的定制内存,所谓的 GDDR 是误导写法。

该内存无法配合其它普通内存条使用,单插其它内存也是开机长鸣(找不到内存),在该帖子中有人提到:

I have the same memory installed on a Gateway with ACER MoBo….here’s what I know so far…that memory is FULLY BUFFERED and the MoBo probably won’t recognize unbuffered SDRAM. Mine is also labeled GDDR3-1333 and bears the part number GU512303EP0202. My conclusion after much surfing and reading is that the machine will run best with the buffered memory in it and I’m simply going to have to wait for 4GB buffered modules to become available. Buffered memory is a tad slower due to the buffer read, but is much less error-prone and thus the machine should be more stable. Servers, routers, and MACs all run buffered memory. As for the GDDR3 it should designate graphics memory which should not work as system memory unless some proprietary MoBo innovation has been created. I wonder if the memory was simply mis-labeled GDDR3?

然而普通台式机用 FBDIMM 内存的很少见,对应的内存条在淘宝上本地存档)也只有一条记录,实属怪哉。

做个笔记。

Day 5536 关于 Vitrite 不能用 Ctrl+Shift+0 切换回 100% 透明度的问题

因需要将部分窗口设置为半透明,找到了Vitrite 这款软件。其使用很简单,在其启动后:

1、按 Ctrl+Shift+主键盘区的0至9的任意数字,设置当前活动窗口的透明度为 100% 或 10%~90%;

2、按 Ctrl+Shift和主键盘的加号键(+/=)可以设置/取消设置当前活动窗口总在最前端。

但是,在系统的默认设置下,Ctrl+Shift+1至9都有效,唯独 Ctrl+Shift+0 无效。原因是该组合键被 Windows 默认指定为切换键盘布局的全局快捷键。

如需要,可按如下步骤取消系统对该组合键的占用(以下针对 Windows 7):

1、在语言栏上点击右键,选择『设置』,并切换到『高级键设置』标签;

2、选择『在输入语言之间』,点击『更改按键顺序』;

3、将右侧的『切换键盘布局』修改为『未指定』或除了『Ctrl+Shift』之外的其他选项;

4、一路确定。

Day 5518 关于 UFW 防火墙和 Bitwarden docker 容器在网络连接管理方面冲突的笔记

注:本文不是教程,只是为了在特定环境下实现特定需求的笔记,仅供参考。

最近被人推荐了 Bitwarden 的服务端开源实现 bitwarden-rs,于是在自己的服务器上做实验。

由于 Chrome 的限制,Web Crypto API 在非 HTTPS 连接上无法使用,所以根据官方建议及其它教程配置 HAProxy 以开启 https 服务,但配置好后,发现一个有点吓人的事情:在 ufw 防火墙没有允许访问 80 端口的情况下,容器的 80 端口仍能正常访问。

经过检索,发现是由于 docker 会直接修改 iptables 配置容器的网络连接,而这部分修改并不会体现在 ufw status 中。

修正笔记如下:

1、停止 docker 服务:systemctl stop docker.socket && systemctl stop docker

2、修改 bitwarden 容器的绑定配置:在 /var/lib/docker/containers/bitwarden容器对应的hash/hostconfig.json 中,找到 PortBindings 段,修改HostIp 为 127.0.0.1(以使服务不发布在本机之外)、HostPort 为 80 以外的其它值(不冲突的话,愿意留着80也可以),如8888。修改完成后保存。

3、重启 docker 服务:systemctl start docker.socket && systemctl start docker

4、修改 HAProxy 中对应的转发端口。

5、修改 ufw 配置,使 HAProxy 的对外端口能被外网访问。

参考资料:

1、https://askubuntu.com/questions/652556/uncomplicated-firewall-ufw-is-not-blocking-anything-when-using-docker

2、https://stackoverflow.com/questions/19335444/how-do-i-assign-a-port-mapping-to-an-existing-docker-container

Day 5517 Aria2 将 RPC 服务绑定到其它网卡的折衷方法笔记

注:本文不是教程,只是为了在特定环境下实现特定需求的笔记,如有更好的方法,欢迎提出。

服务器上运行 Debian 10,有两块网卡,姑且称作 eth0 和 eth1,其中 eth0 是外网连接,通过 DHCP 自动获取 IP 地址,可以访问互联网;eth1 是内网连接,为静态 IP 地址,无法访问互联网。

现想达到如下目的:

1、让下载流量自动走 eth0。

2、使 RPC 服务可以通过 eth1 访问。

Aria2 有一配置选项 interface 可以将整个服务绑定在个网络连接(某块网卡或某个IP)上,但并不支持将下载流量和 RPC 服务分别绑定在不同的网络连接上(按:本文撰写时 Aria2 版本为 1.35),按上述环境,如果将 Aria2 服务绑定在 eth0,则 RPC 服务不可访问;如果绑定在 eth1,则无法下载。此外,Aria2 的 rpc-listen-all 参数受 interface 参数的影响,当 interface 绑定为特定网络连接时,rpc-listen-all 会随之绑定在对应网络连接上,而不是所有的网络连接。

由于我不会写 C,无法对 Aria2 本身的代码做出修改,最终在此处找到一个折衷的解决方案(按:本文撰写时该 issue 已提出6年,官方仍未实现,估计是需求太少),配置成功,操作步骤如下:

1、安装 HAProxy(Debian 下为 apt-get install haproxy,其它系统请自行尝试)

2、修改 HAProxy 配置文件,在末尾增加如下内容(默认位置为 /etc/haproxy/haproxy.cfg):

listen web_port

bind 10.0.0.1:6801 #此处地址为 eth1 上的内网地址,6801 为要开放的端口,依据实际情况自行修改

mode http

log global

server aria2 127.0.0.1:6800 check inter 3000 fall 2 rise 5 #此处6800为 Aria2 的 RPC 端口,依据实际情况自行修改

3、重启 HAProxy 服务:systemctl restart haproxy

4、修改 aria2 配置文件,包含如下两处修改:

(1)删除 rpc-listen-all 行(此时 RPC 服务会被绑定到本地回环设备 lo 上)

(2)修改 interface 行为下载流量要绑定的设备或 IP,如:interface=eth0(注意:Windows 下必须使用 IP 地址或主机名

5、重启 Aria2服务:systemctl restart aria2

此时使用 Aria2 的 UI 服务(如 AriaNg 等)去连接内网地址上的 HAProxy 转发端口,即可连上 RPC 服务,同时下载将通过外网连接进行。

Day 5515 修复在 VMWare ESXi 中误将主机阵列卡设置为直通设备后,ESXi 存储变为 NaN,且无法取消阵列卡直通的问题

手里有一台二手的戴尔 R420 服务器,在上面安装了 VMWare ESXi 6.5 作为虚拟化平台。有一次出于好奇,将主机的 PERC 阵列卡设置为了直通设备,结果重启主机之后发现两个问题:

1、ESXi Web 控制台报告存储空间为 NaN,且数据存储列表为空、存储设备中的本地硬盘消失。

2、所有虚拟机变为无效状态。

VMWare 官方给出的方案是在 VMKernel 控制台修改 /etc/vmware/esx.conf,将其中的 passthru 设备修改为 vmkernel,但对于该情况而言,修改保存后重启,阵列卡仍然会报告为直通启用,且再次查看修改后的文件时,会发现刚刚修改的内容又变回原样。

惊恐之下到处搜索,终于找到如下可用的方案,并成功修复问题。

以下内容来自 https://blog.51cto.com/fengwan/2497520,其原文来自 https://communities.vmware.com/t5/ESXi-Discussions/How-to-disable-ESXi-Passthrough-my-findings/m-p/2732447#2592922

1、使用 Ubuntu Desktop Live CD 引导系统(不要用服务器版),并在安装界面选择 Try Ubuntu(试用 Ubuntu)

2、打开终端,输入以下指令切换到 root 账户:sudo su –

3、执行如下指令查看当前硬盘分区:parted -l

4、挂载 VMKernel 所在分区,原文直接提到为编号 5 的分区,我的情况也一样,但中文版教程提到他的分区是编号 6,请按自身情况选择(能找到接下来的文件就算正确):mount /dev/sda5 /mnt

5、依次执行如下指令解压缩打包的配置文件:

tar xvf state.tgz (此时本目录(~)下会解压出一个 local.tgz来)

tar xvf local.tgz(此时本目录下会解压出一个 etc 目录来)

6、使用 vi 或 nano 修改 etc/vmware/esx.conf,将其中对应阵列卡的 device 行有 passthru 字样之处修改为 vmkernel(也可以将所有 passthru 都修改为 vmkernel,缺点是如果有其他直通设备,需要重启后重新配置),保存退出。

7、此时应仍在 ~ 目录下,依次执行如下指令重新打包配置文件:

tar czf local.tgz etc/ (此时会将 etc 目录打包为 local.tgz)

tar cvf state.tgz local.tgz(此时会将 local.tgz 打包为 state.tgz)

8、执行如下指令替换 VMKernel 分区下的文件:cp -rf state.tgz /mnt/

9、重启主机即可。

Day 5273 在Debian 10上安装Dell OpenManage

环境为Debian 10默认安装。

1、为PATH变量增加/usr/sbin(永久修改位置为/etc/login.defs):

export PATH=$PATH:/usr/sbin

2、在root下运行以下指令安装OpenManage软件包(来自此Reddit帖子,感谢作者):

gpg –keyserver hkp://pool.sks-keyservers.net:80 –recv-key 1285491434D8786F
gpg -a –export 1285491434D8786F | apt-key add –
echo “deb http://linux.dell.com/repo/community/openmanage/930/bionic bionic main” > /etc/apt/sources.list.d/linux.dell.com.sources.list
wget http://archive.ubuntu.com/ubuntu/pool/universe/o/openwsman/libwsman-curl-client-transport1_2.6.5-0ubuntu3_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/universe/o/openwsman/libwsman-client4_2.6.5-0ubuntu3_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/universe/o/openwsman/libwsman1_2.6.5-0ubuntu3_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/universe/o/openwsman/libwsman-server1_2.6.5-0ubuntu3_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/universe/s/sblim-sfcc/libcimcclient0_2.2.8-0ubuntu2_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/universe/o/openwsman/openwsman_2.6.5-0ubuntu3_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/multiverse/c/cim-schema/cim-schema_2.48.0-0ubuntu1_all.deb
wget http://archive.ubuntu.com/ubuntu/pool/universe/s/sblim-sfc-common/libsfcutil0_1.0.1-0ubuntu4_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/multiverse/s/sblim-sfcb/sfcb_1.4.9-0ubuntu5_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/universe/s/sblim-cmpi-devel/libcmpicppimpl0_2.0.3-0ubuntu2_amd64.deb
dpkg -i libwsman-curl-client-transport1_2.6.5-0ubuntu3_amd64.deb
dpkg -i libwsman-client4_2.6.5-0ubuntu3_amd64.deb
dpkg -i libwsman1_2.6.5-0ubuntu3_amd64.deb
dpkg -i libwsman-server1_2.6.5-0ubuntu3_amd64.deb
dpkg -i libcimcclient0_2.2.8-0ubuntu2_amd64.deb
dpkg -i openwsman_2.6.5-0ubuntu3_amd64.deb
dpkg -i cim-schema_2.48.0-0ubuntu1_all.deb
dpkg -i libsfcutil0_1.0.1-0ubuntu4_amd64.deb
dpkg -i sfcb_1.4.9-0ubuntu5_amd64.deb
dpkg -i libcmpicppimpl0_2.0.3-0ubuntu2_amd64.deb

apt update
apt install srvadmin-all
touch /opt/dell/srvadmin/lib64/openmanage/IGNORE_GENERATION
srvadmin-services.sh enable && srvadmin-services.sh start

3、此时已可通过https://IP:1311/看到网页界面,但命令行omreport功能暂时不可用,会提示:

omconfig: error while loading shared libraries: libxslt.so.1: cannot open shared object file: No such file or directory

执行以下指令安装所缺失的libxslt1.1:

apt-get install libxslt1.1

此时执行omreport的查询命令(如omreport system summary),会提示(即使在root下执行也是如此):

Error! User has insufficient privileges to run command.

依据此处内容提示(帖子下方的回复),应为缺失libncurses5,运行如下指令安装之,并重启OpenManage相关服务:

apt install libncurses5

systemctl start dsm_sa_datamgrd
systemctl start dsm_sa_eventmgrd
systemctl start dsm_sa_snmpd
systemctl start dsm_om_connsvc
systemctl start dsm_om_shrsvc

现在终于可以使用omreport在CLI下查看系统概况了。

Day 4849 自行组装RAID10磁盘阵列

以前的时候,由于家里的网速一直不是很快,加上由于环境受限,一直没有外网环境,从来没有做过资源党,也就对硬盘空间没有多高的需求。事实上,从第一台电脑开始,家中的台式机几乎一一直是单(机械)硬盘配置,依次经历了2G、20G、120G、600G、1T和2T的容量台阶,并且在600G以前一直是IDE接口。

然而对存储空间的追求是永无止境的,为了在一段时间内暂时不再受台式机硬盘的限制,又忌惮于群晖的价格,一狠心,实践了一次用阵列卡自行组装磁盘阵列的想法。

这中间也算学到了点东西。

继续阅读 “Day 4849 自行组装RAID10磁盘阵列”

Day 4768 关于Excel中录入15位以上数字时(例如身份证号),COUNTIF函数返回的结果数量不正确的问题

最近帮同事做一个表格,要求在录入数据时,自动查找同一列下是否有相同的值,有则进行提示,而需要这个提示功能的其中一列是『身份证号』。

众所周知,中国大陆地区的身份证号是18位。鉴于Excel采用了IEEE 754的浮点数存储规范,对于正整数最高支持到15位。这也是在Excel中录入身份证号时,如果身份证号中不含X,经常会在按下回车的时候变成一串科学记数法的原因,而实际上此时第16位起的数字已经丢失了。

对于只使用表格本身的场合,可以简单地将对应单元格的数字格式修改为『文本』,虽然这样一来相关数字就不能参与运算,但多半也没有需要对身份证号进行运算的情形。

然而,当涉及到使用COUNTIF函数时,即使对应单元格的数字格式是文本,COUNTIF对于传入的数据也会进行自动的类型判断。试观察如下VBA语句:

‘sShenfenzheng是之前传入的单元格内容(身份证号),变量类型为String
n = Application.WorksheetFunction.CountIf(Range(“B1:B65535”), sShenfenzheng)

此时如果在B列中录入如下数据:

110000199901012333
110000199901012334
110000199901012335

然后对sShenfenzheng传入『110000199901012336』的话,n的值将会是3,而不是预期的0。

解决方法:

在调用CountIf时,将传入的查找目标后面跟上一个『*』,强制CountIf按照字符串形式对数据进行查找,即可获得正确的结果。

以前述代码为例,应修改为:

n = Application.WorksheetFunction.CountIf(Range(“B1:B65535”), sShenfenzheng & “*”)

Day 4763 关于Windows Update更新Windows Defender定义时,返回8050800C错误的解决方法

情况说明:

在Windows 7 x64下,使用Windows Update进行系统更新时,无法安装Windows Defender恶意软件定义的相关更新,始终返回8050800C错误。此时,直接打开Windows Defender对定义进行更新时,也会报错无法更新。

解决方法: 继续阅读 “Day 4763 关于Windows Update更新Windows Defender定义时,返回8050800C错误的解决方法”

Day 4713 关于在VMWare Workstation中安装Windows Thin PC时,网卡和SCSI驱动无法安装的问题

情况说明:

1、在VMWare Workstation 12中选择系统类型为Windows 7、安装Windows Thin PC并安装VMWare Tools后,发现网络无法正常使用。
2、到设备管理器中查看时,可发现有感叹号设备Ethernet Controller和SCSI Controller。

解决方法:

可能有更简单的解决方式,不过可以选择手动下载对应驱动进行安装:网卡驱动SCSI控制器驱动