分类目录归档:Others

Xfinity Gateway 桥接模式使用

给手上的 RT-ACRH17 刷了梅林,然后实在是看那个 Double-NAT 不爽,打算把 Xfinity 的那个 modem 改成桥接模式。折腾一番之后终于搞定了,这里记录下几个问题。

我这个 modem 是 ARRIS TG1682G,型号是 XB3,调成桥接模式只要按照 Xfinity 的文档操作即可,调整完以后理论上只有 LAN1 可用,用一根网线从 modem 的 LAN1 直接接到 PC 上,看下通不通,如果通的话,说明 modem 本身没有问题,然后记录下 PC 有线网卡的 MAC 地址。

之后进入 RT-ACRH17 的设置界面,按照下图调整:

这里 DNS 我用的是 CloudFlare 的 public DNS,也可以换成例如 Google DNS 之类,这个无所谓。重点在于,在 ISP 特殊要求下,将 MAC 地址一栏中填入刚刚记下的 PC 有线网卡 MAC 地址,然后将 DHCP 查询频率改成普通。似乎 Xfinity 那里会限制这个 MAC 地址,如果不做克隆的话会无法完成 DHCP。也就是说,垃圾 Comcast 实际上是限制你用自己的无线路由的。

然后是 IPv6 的配置:

如果没有将 modem 改为桥接模式的话,这里类型应该选 Passthrough,在本文的场景下,应选择 Native,其他选项按照图内配置。同样的,这里的 DNS 我用的是 CloudFlare 的 DNS,可以改成其他你喜欢的地址。

稍等一段时间这里会出现一个 /64 的 prefix,说明配置成功。这里响应稍微有些慢,在 IPv4 上线以后可能还要两三分钟这里才会出现,是正常情况,等一下就好。

然后就结束了,重点就在于 MAC 地址要克隆 PC 的有线网卡地址,不然服务端会做一些奇怪的限制导致 DHCP 失败连不上网。

P2419H 显示器校色文件

设备:i1 Display Studio

Correction file:LCD White LED IPS (Dell, DELL P2419H (i1 Pro 2) by son01490517)

Target:sRGB, D65, 120cd/m²

显示器设置:亮度 50%,对比度 75%,R 99%,G 96%,B 92%

ICC:P2419H #2 2020-03-30 23-32 D6500 2.2 M-S XYZLUT+MTX

3dlut:P2419H #2 2020-03-30 23-32 D6500 2.2 M-S XYZLUT+MTX.Rec709.B0.0,2.4eGawt65

 

 

另外一个版本:(非常神奇,这个设置下的 Gamut 比之前一个版本大)

显示器设置:亮度 50%,对比度 75%,R 96%,G 93%,B 84%

ICC:P2419H #2 2020-05-24 14-17 D6500 2.2 S XYZLUT+MTX

3dlut:P2419H #2 2020-05-24 14-17 D6500 2.2 S XYZLUT+MTX.Rec709.B0.0,2.4eGawt65

关于 VSCode SSH 插件出现 flock: 99: Input/output error 的解决方案

VSCode 的 SSH 插件默认会在 ~/.vscode-server 下获取 lock,但是在某些 home 目录挂载在 NFS 的服务器上会出现 > flock: 99: Input/output error 的错误。

解决方案是在 /tmp 下获取 lock,在 SSH 插件的设置中选中 LockFiles In Temp 即可,或者搜索 remote.SSH.lockfilesInTmp 也可以找到这个设置。

在 Thunderbird 中使用 Outlook 风格回复

在之前的一篇文章中已经探讨了如何在 Linux 下使用 Office365 的各种组件,然而 Thunderbird 的默认回复风格和 Outlook 不同,在每次回复都会加入缩进,而非 Outlook 的同级顶端回复,这篇文章就为了在 Thunderbird 上尽量模拟 Outlook 的回复风格。

为了达到这个效果,我们需要两个插件:SmartTemplate4ReFwdFormatter。其中前者是收费的,5 刀一年的 standard license,也不算太贵,后者是免费的。

首先我们需要调整 Thunderbird 的默认回复行为,尽可能以 HTML 而非纯文本模式回复:

之后在 ReFwdFormatter 中删除增加回复缩进的选项:

最后使用 SmartTemplate4 更改回复的 header 样式:

样式代码如下:

<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="divRplyFwdMsg" dir="ltr"><font style="font-size:11pt" face="Calibri, sans-serif" color="#000000">
<b>From:</b> %from(name,bracketMail(angle))%
<b>Sent:</b> %X:=sent% %A%, %B% %d%, %Y% %l%:%M%%p(3)%
[[<b>To:</b> %to(name,bracketMail(angle))%]][[<br><b>Cc:</b> %cc(name,bracketMail(angle))%]]
<b>Subject:</b> %subject%</font>
<div> </div>
</div>

然后就可以了

如果没有 Calibri 字体,需要安装 ttf-mscorefonts-installer 这个包。

从 Chrome 切换至 Firefox

做这个切换还是很有必要性的,为什么呢?Google 掌握了太多我们的个人信息,书签、密码以及各种访问记录,从某种意义上来说,不能让这样一家商业公司控制互联网。另外一个原因是我发现 Chrome 在 Linux 下非 100% 缩放的情况下 PDF 渲染非常瞎眼,边缘糊成一团,对屏幕阅读很不友好。

迁移主要只需要用到两个工具,一是 Firefox 本身,二是 ffpass,用来导入 Chrome 保存的密码。首先在安装好 Firefox 以后,在 Open Menu -> Library -> Bookmarks -> Show All bookmark -> Import and Backup -> Import Data from Another Browser 中导入 Chrome 的书签和 cookie。

之后在 Chrome 保存的密码页面上点击右上角的三个点将保存的密码导出为 .csv 文件,并安装 ffpass。在导入密码之前,首先要在 Firefox 中查找自己的 Profile Directory,这个通过 Open Menu -> Help -> Troubleshooting Information -> Application Basics::Profile Directory 查找到,我们记为 $PROFILE。之后使用 ffpass 进行导入:

ffpass --from <Your password csv> -d <PROFILE>

就可以完成导入了。

之后打开 Firefox account 同步,并且安装上 Chrome 中原来使用的插件,由于绝大多数插件在 FF 和 Chrome 下均存在,因此这一步不会有什么问题。到这里就迁移成功了。

Update: ffpass 虽然能够在 Linux 上正确导入密码,但是似乎无法同步到 Firefox Account 内,如果需要导入密码,在 Windows 上的 Firefox 中直接操作即可,Linux 版本没有这个功能。

参考资料:

https://github.com/louisabraham/ffpass
https://support.mozilla.org/en-US/kb/profiles-where-firefox-stores-user-data#w_how-do-i-find-my-profile
https://support.mozilla.org/en-US/kb/switching-chrome-firefox

关于 Linux 用户界面字体

Noto Sans 是个好东西,但是要选好才好看。

Noto Sans 是个不错的字体,中日英混排也算做得还不错。由于其无衬线 / 黑体设计,注定很适合作为一个屏幕字体而使用。但是在操作系统 UI 这个显示场景下,部分字体显的过宽,看起来就让人很烦躁。在经过一番调试以后,总结出了一些比较好的搭配方式。

Noto Sans 在不考虑地区版本(如 CJK)和等宽版本的情况下,主要有非 UI 和 UI 两个后缀。也就是说曾存在有 Noto Sans Arabic 和 Noto Sans Arabic UI 这样两个版本,其主要区别在与 UI 版本的纵向宽度更窄,根据 Google 的设计指引,带有 UI 后缀的字体应该被使用在 UI 设计的场景下,虽然原文中说的是阿拉伯语,但是从我的经验看来,在 UI 场景下使用纵向较窄的一些的特化版本无论在什么语言下都是一个好的选择。

接下来就是很吊诡的一件事了,Ubuntu 的 fonts-noto 包在 16.04 到 18.04 版本中做了较大的改动,原来的版本中包含 Noto Sans 和 Noto Sans UI 这两个字体,因此对于英文场景,直接照着选就完事了。然而在 18.04 中,不知是不是上游的改动,删除了 Noto Sans UI 这个字体。由于一直没找到比较好的纵向较窄的替代品,因此那个较宽的版本让我眼镜不舒服了很长一段时间。

后来发现,Ubuntu 自带的版本中,有一个叫 Noto Sans Display 的版本,这个相比 Noto Sans,仅仅是修改了字符纵向的宽度,符合 UI 的设计特点。在经过一番调试以后,发现确实是一个很不错的选择。

经过测试的字体配置如下,桌面环境为 Xfce:

  • 窗口内文(Appearance 设置项中)Noto Sans Display Regular 9pt
  • 窗口标题(Window Manager 设置项中)Noto Sans Display Bold 9pt
  • Slight Hinting
  • 96/120 dpi(这个一定要设置)

对于 Seedbox 的 VNC 的场景,如果觉得字体略小阅读吃力,可以使用更大一些配置:

  • 窗口内文 Noto Sans Display Regular 10pt
  • 窗口标题 Noto Sans Bold 9pt(注意这里,使用 NSD 会导致窗口标题显得太窄而和内容不协调)
  • Slight Hinting
  • 96 dpi

其实这个配置在我曾经的某个盒子上被配出来过,但是一直没有将其标准化,所以也一直没有记得……

 

关于 OPAL Drive 和 BitLocker 关系的理解

起因是这样的,美帝良心想这个 X1 Carbon 的官网上在调整 SSD 配置的时候,从 256G 加到 1T 需要增加 591USD,即使算上 45%off 的折扣也要 200 多刀。然而一个 SN750 1T 在美亚不过也才 200 刀,在官网加 SSD 就相当不合算了。

但是我注意到了一点,联想官网上对 SSD 的描述是 OPAL,也就是符合 OPAL 标准的自加密 SSD (Self-Encrypting Drive,SED),机器到手以后也默认开启了 BitLocker。在我的记忆中,BitLocker 是一个纯软件的实现,那么这里 SSD 的自加密和 BitLocker 的关系是什么呢?

查了一圈资料以后发现,BitLocker 存在硬件和软件两种实现方式。在检测到硬盘控制器支持硬件加密的时候,Windows 会直接使用该功能,且不对数据进行任何处理的方式就写入磁盘,由主控完成加密。如果主控不支持加密,则使用软件实现。具体的实现方式可以通过 manage-bde 这个命令查看:

如果是软件实现,那么在 Encryption Method 下就会显示类似于 XTS-AES 128 这样的字眼。在一些比较老的版本上可能只是 AES 128。

如果是启用了硬件加密特性,那么应该是这样:

显示为 Hardware Encryption。

如果是官网购买的 OPAL Drive,那么应该是可以显示为 Hardware Encryption 的,如果是自行购买的 SN700(官网是 SN720,也就是前者的 OEM 版本),那么就是软件加密。

如果没有关闭 BitLocker 就取下了硬盘,在数据可以抹掉的情况下,理论上有两种方法可以解开。一个是使用 BitLocker 恢复密钥,这个会自动同步到自己的 Microsoft Account 上,可以看这里。或者也可以考虑直接使用命令抹掉数据并重新生成密钥,这个可以看 ArchWiki 的详细讲解。

Reference:
https://wiki.archlinux.org/index.php/Self-Encrypting_Drives

How to Enable BitLocker Hardware Encryption with SSDs


https://support.microsoft.com/en-us/help/4026181/windows-10-find-my-bitlocker-recovery-key
https://howtogeek.com/fyi/you-cant-trust-bitlocker-to-encrypt-your-ssd-on-windows-10/
https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/ADV180028

如何压缩 VirtualBox 的 vdi 虚拟磁盘

VMware 的虚拟磁盘管理界面上有两个功能,一个是整理磁盘碎片,另一个是回收未使用的空间。这两个功能配合使用,就可以清理掉虚拟磁盘映像文件里面已经删除了的文件依然占用的空间。然而,辣鸡如 VirtualBox 并没有提供这两个功能,需要手动进行未使用空间填零和压缩磁盘映像文件两个步骤。

首先需要确保使用的映像文件格式是动态分配,这样才有压缩的可能性。

如果是 Windows 客户机,那么首先进行磁盘碎片整理,完成之后,下载 sdelete 工具,使用例如:

sdelete.exe c: -z

这样的命令对 C 盘完成填 0 操作。

如果是 Linux 客户机,那么需要使用 zerofree 命令完成这个操作。由于该命令不能在盘符分区已经挂载的情况下工作,且最近版本的 Ubuntu 在 Recovery 模式下也会挂载所有的盘符,因此如果要进行这个操作,需要使用一个 Live CD 进入系统。安装 zerofree 之后,运行:

# zerofree -v /dev/sda1

这样的命令对 /dev/sda1 进行填 0 操作,之后就可以进行压缩了。

压缩的操作我们需要使用 VBoxManage 命令:

VBoxManage modifymedium disk "/path/to/disk.vdi" --compact

在 Windows 下可能需要手动在 VirtualBox 安装路径下找到 VBoxManage.exe 进行操作。之后就压缩成功了。