创建你自己的 DNS 缓存服务器

好长时间没写文章了,琢磨着写些啥。正好今天有个一个需求,需要自建 DNS 来避免污染。于是今天花了些时间,研究了下自建 DNS。也正好将一些过程与心得写下来,期间在两个发行版 ( CentOS 7、Gentoo ) 上尝试了下,正常使用。

自建 DNS 的方案可以多种搭配,不过如果项目团队内部使用的话,个人还是推荐 Dnsmasq + DNSCrypt-proxy 方案,小巧,部署方便。

  • Dnsmasq:
    • 提供 DNS 缓存和 DHCP 服务功能
  • DNSCrypt-proxy:
    • 在客户端与 DNS 服务端之间提供加密与认证

工具清楚了,那么开始动手

Linux 系统的 NTFS-3G 权限

这个知识点居然没有记录,果然时间长久以后就会遗忘,遂记录。

一般情况下,我们在 Linux 下挂载 ntfs,是安装 ntfs-3g 后进行的,即:

# mount -t ntfs-3g /dev/sdb1 /mnt/data

这样临时解决下可以,但是会涉及到权限问题,就是说,/mnt/data 下的所有文件都必须 root 权限。于是我们加入一些参数让当前用户也可以访问修改:

# mount -t ntfs-3g -o uid=username,gid=users /dev/sdb1 /mnt/data      # uid 为当前用户名,gid 为users 用户组

修复 Windows 10 UEFI 启动

这几天一直跟 (U)EFI 打交道,期间遇到过 Clover 启动 Windows 10 出现的引导错误:

Error Code: 0xc0000034

出现这个错误,是因为我升级了主板 BIOS,直接由主板 (U)EFI 启动 Windows 10 是没有问题的,但是转到 Clover 来启动则会出现这个问题,应该是升级主板 BIOS 的过程中 (U)EFI 固件修改了一些信息导致,于是翻阅了一些资料,自己动手修复。

如果你此时任何方式都无法进入 Windows 10,则需要一些安装盘来启动,去修复:

UEFI 固件启动 Gentoo EFI Stub Kernel

前几天,将所有的系统硬盘全部换成 GPT,于是研究了下 (U)EFI 相关的知识点,从而获知,原来在 (U)EFI 下,kernel 3.3 以后,完全可以扔掉 Grub、Syslinux 等引导程序了。

实际上就是将内核启动参数编入内核,通过主板 (U)EFI 固件来直接启动内核,而 (U)EFI 启动项则可以通过 efi shell、efibootmgr 等工具来设置。为了让主板 (U)EFI 直接启动内核,需要打开一些内核开关。

1. Kernel Config

Processor type and features  --->
    [*] EFI runtime service support
    [*]   EFI stub support
    [*]     EFI mixed-mode support
    [*] Built-in kernel command line
    (root=PARTUUID=B91236D2-25B4-4763-875B-A9C52A67957C ro init=/usr/lib/systemd/systemd quiet)
    [*] Built-in command line overrides boot loader arguments

Clover 启动黑苹果、Windows、Linux

这两天花了点时间,将 windows 10 & Gentoo 所在的硬盘全部换成 gpt,然后全部由 Clover 来引导。我本机的情况是,windows 10 & Gentoo 共用一块 SSD,黑苹果单独一块 SSD。

Clover UEFI