之前一直在本地同步的一篇速记 (笔记), 但是有时候想在 tty 里面的时候通过手机查看…就…

旋转屏幕


# tty 模式
echo x > /sys/class/graphics/fbcon/rotate_all

# x11 模式
xrandr -o left

磁盘备份以及恢复

来源


# 备份
dd if=/dev/hda conv=sync,noerror bs=64K | gzip -c  > /mnt/sda1/hda.img.gz

# 恢复
gunzip -c /mnt/sda1/hda.img.gz | dd of=/dev/hda

磁盘 smart 监控

来源


# 安装 smartmontools
pacman -S smartmontools

# 查看磁盘 smart 信息
smartctl -a /dev/X

# 配置监控
nano /etc/smartd.conf

# 修改以下内容
DEVICESCAN -a -n standby,15,q -m <nomailer> -M  exec /usr/local/bin/smartdnotify

# 添加通知脚本
nano /usr/local/bin/smartdnotify

# 添加以下内容
#!/bin/bash
MESSAGE="time: $(date -R -u) disk: ${SMARTD_DEVICESTRING}, smart warning: ${SMARTD_MESSAGE}"
echo $MESSAGE >> /var/log/smart_warning.log
wall $MESSAGE

# 添加执行权限
chmod +x /usr/local/bin/smartdnotify

# 在 profile 中添加以下内容, 用于在登录时显示 smart 警告信息
[[ -f /var/log/smart_warning.log ]] && cat /var/log/smart_warning.log

# 启动 smartd
systemctl enable --now smartd.service

ACPI 事件

来源


# 配置文件在这些地方
/etc/systemd/logind.conf
/etc/systemd/logind.conf.d/*.conf
/run/systemd/logind.conf.d/*.conf
/usr/lib/systemd/logind.conf.d/*.conf

# 改完后执行这个立即生效
systemctl kill -s HUP systemd-logind

事件处理程序 描述 默认动作
HandlePowerKey 按下电源键后的动作 poweroff
HandleSuspendKey 按下挂起键后的动作 suspend
HandleHibernateKey 按下休眠键后触发的动作 hibernate
HandleLidSwitch 笔记本翻盖后触发的动作,除了下面的情况 suspend
HandleLidSwitchDocked 如果笔记本放到了扩展坞或连接了多个显示器时,笔记本翻盖合上时触发的动作 ignore
HandleLidSwitchExternalPower 如果系统连接到外部电源,笔记本翻盖合上时触发。 HandleLidSwitch 的操作集

挂起与休眠

来源

由于现在不少制造商都向傻逼一样去迎合 Windows 搞什么几把 “现代待机” 导致即使休眠了风扇不停键盘不灭, 鼠标 (USB) 也不断电, 这里直接禁用挂起和睡眠


# 编辑 /etc/systemd/sleep.conf 文件
nano /etc/systemd/sleep.conf

# 修改以下内容

[Sleep]
AllowSuspend=no
AllowHibernation=no
AllowSuspendThenHibernate=no
AllowHybridSleep=no

So, Fuck You Microsoft! 以及去你妈的能源之星!

防火墙 UFW

iptables 太复杂了, 我只想 ban 端口而已


# 包名就是 ufw
pacman -S ufw

# 如果是 ssh 连接的先不要启用, 不然你会后悔的
# 先放行 SSH 流量
ufw allow 22

# 然后再启用
systemctl enable --now ufw
ufw enable

# status 命令可以查看状态和规则
ufw status numbered

# 其他的 help 写得很详细了

双系统 RTC 时区问题

之前一个朋友问过这个, 也顺便记录了吧…


# 设置 RTC 时区为本地时区, 因为有个傻逼系统他存取的是系统语言时区 (Microsoft Windows)
timedatectl set-local-rtc 1

当然 Archwiki 还有另外一种办法…不过这要改 Windows 注册表 Archwiki

OpenWRT 使用系统网络管理器配置 Wireguard

今天接到公司委托给一个驻场设备添加 Wireguard 支持, 但是我又不想使用 initrc 配置…


# 新系统估计还没包索引, 先更新一下
opkg update

# 需要安装的软件包有这些
# 在安装 luci-i18n-wireguard-zh-cn 应该会自动安装其依赖 luci-i18n-wireguard 就不用手动安装了
opkg install kmod-wireguard wireguard-tools luci-i18n-wireguard-zh-cn

装完重启设备…

  • 前往接口页面添加新接口, 协议下拉选择 Wireguard VPN, 名称建议像 Linux 默认的命名一样 wgX (例如: wg0)
  • 然后添加 Wireguard 配置, 配置完记得去防火墙按自己习惯配置规则放行 Wireguard 的数据包
  • 然后摸鱼…