osnosn

  博客园 :: 首页 :: 博问 :: 闪存 :: :: 联系 :: 订阅 订阅 :: 管理 ::

Armbian_N1_笔记

转载注明来源: 本文链接 来自osnosn的博客,写于 2020-11-17.

一些笔记/备忘,关于N1(S905)

  • Debian-10 防火墙内核是 nft。默认是通过 iptables/ip6tables 命令转换的。
  • armbian 默认开了 restore-iptables。所以关了它,改用nftables。
    systemctl disable armbian-restore-iptables ,
    apt install nftables; systemctl enable nftables; nft -f /etc/nftables.conf

apt upgrade 之后,文件系统错误

  • cd /tmp 这个目录是挂载在内存的,速度很快,
    find / -ls > /tmp/xxxx.logfind / -ls > /dev/null 触发文件系统错误。(如果有错误的话)
  • 出现文件系统错误后,/dev/mmcblk1p2 挂载的所有点,都会变成 ro (只读)。
    乘此机会,fsck /dev/mmcblk1p2 ,检查出的错误,全部用 y 回答。然后 reboot 即可。

eth0 上添加一个ip (单网口,多IP)

  • 此系统的网口是由 NetworkManager 管理的。
  • 临时:
    • 添加,ip addr add 192.168.1.100/24 dev eth0
    • 删除,ip addr del 192.168.1.100/24 dev eth0
  • 永久:
    • nmtui 编辑 eth0 网口,在ipv4部分,
      保持 IPv4 CONFIGURATION <Automatic>
      Addresses <Add...> 添加一个IP(包括掩码)。如192.168.1.100/24
      reboot 后生效。 (仅 restart NetworkManager 好像不行。)

远程 ssh 升级 Debian

  • 大版本升级, 建议用一个可靠的机器作为跳板,套上 tmux 或 screen,然后连接目标 N1,再次套上 tmux, 再执行大版本的升级操作。
    因为大版本升级,会更新关键库文件。在 sshd 升级完成前,无法再次通过ssh连接机器。新启动的 sshd 进程因为库不兼容会闪退。
    已经连接的 ssh 不会主动断开。
    升级完成前,如果断电重启,会导致 kernel panic 无法启动。
    当 sshd 服务完成升级后 (大约是20分钟后),就没问题了。如果断线可以重新连回去。再用tmux恢复升级的界面。
    如果 tmux 不可用,见【tmux_server_version_is_too_old
  • 小版本升级, 直接连 目标 N1,套上 tmux, 升级即可。

远程 ssh 升级 Debian 过程中掉线,重启失败,需要重装恢复

  • 参考【N1盒子刷Armbian,看这一篇就够了——Armbian全方位安装指导书
    直接从 第二步:制作系统U盘 开始。
  • 重装,会清空N1中原有的所有内容。以下,是步骤的文字描述。
  • Armbian_5.77_Aml-s905_Debian_stretch_default_5.0.2_20190318.img.xz 解压后,用 Win32DiskImager 写入U盘,约 1.9GB
  • meson-gxl-s905d-phicomm-n1.dtb copy到 u盘的 dtb 目录
  • 修改 u盘根目录的 uEnv.ini 文件,核对 dtb文件路径。
  • 将U盘插入靠近hdmi的USB口里,上电重启,会自动进入U盘系统。
  • 用 root、1234 登录系统,修改 root 密码。创建普通用户 (可跳过)。
  • 用命令 nand–sata-install 把系统写入 emmc。
  • shutdownhalt -p 关机,拔掉u盘。重新插拔电源,重启系统。
  • 修改系统的 machine-id。 这样 此机的 DUID, client-id 都会改变。
    rm /etc/machine-id; rm /var/lib/dbus/machine-id; systemd-machine-id-setup;
    /etc/machine-id 可以手工修改。
    /var/lib/dbus/machine-id 不要手工修改,重启后可能导致进不了系统。
  • 写入的文件系统有 bug,
    find / -ls > /dev/null 触发文件系统错误。
    fsck /dev/mmcblk1p2 修复文件系统。
    reboot 重启。
  • nmtui 修改一下机器名。
  • 时区,用 timedatectl 命令设置。
  • 重装完成。
  • nmtui 增加 eth0 的网口,设置 eui64。取消 interfaces 中的 eth0。

n1 的 debian 从 stretch 升级到 bullseys (2021-10记录)

  • 直接修改 sources.list 为 bullseye, apt update 就会出错。说是pgp key错误。
  • 发现可以跳过 buster 直接升级到 bullseye。以下是升级的步骤。
  • 先保留 sources.list 为 stretch,apt update , 发现有错误,update-command-not-found修正。
    然后 apt upgrade 升级到 stretch 的最新。
  • 修改 sources.list 为 bullseye,apt update, 先apt update --fix-missing修正一下,否则 full-upgrade 会有错误。
    然后 apt full-upgrade
  • 重启,完成升级。
  • 发现 root 分区还是有错误。
    需要反复多次 find / -ls > /dev/null 触发错误, 然后fsck -y /dev/mmcblk1p2修复文件系统,然后重启。

完善一下系统

  • nmtui 修改一下机器名。
  • 时区,用 timedatectl 命令设置。【Linux下使用timedatectl命令时间时区操作详解
    timedatectl status 查看系统时间方面的各种状态
    timedatectl list-timezones 列出所有时区
    timedatectl set-local-rtc 1 将硬件时钟调整为与本地时钟一致, 0 为设置为 UTC 时间
    timedatectl set-timezone Asia/Shanghai 设置系统时区为上海
  • date 显示24小时制,在 /etc/default/locale 加一行 LC_TIME=C.UTF-8
    或者 .bashrc 中加入 export LC_TIME=C.UTF-8
    • localectl list-locales 查看列表。
      apt install locales-all 之后可以用 en_DK.UTF-8
    • 如果要自定义 date 的格式,用 alias 吧。
  • 装本地邮件系统 postfix ,邮件客户端 mutt。改 aliases,把root邮件转给自己。
  • 装 tmux。
  • sshd 增加一个端口,为了方便 ipv6 登录。设置一下用 key 登录。
  • 创建一个 ddns 更新脚本,用 crontab 定时启动。
  • 参考【UnRAID_6.8.2_配置_设置】中,关于 Debian 的设置。
  • /var/log/journal 目录,会占用不少空间,需要解决一下。
    Linux 系统 /var/log/journal/ 垃圾日志清理
    N1刷入Armbian后保护emmc – 禁止varlog日志
    N1盒子armbian/ubuntu/linux系统修改日志输出到内存
    • 手动删除到8M journalctl --vacuum-size=8M
    • 配置中限制大小8M /etc/systemd/journald.confSystemMaxUse=8M
  • sshd 配置,仅允许 root 从内网用密码登录。其他地方要用密钥登录。
    配置sshd_除了特定ip外_仅密钥登录
# 修改 /etc/ssh/sshd_config
# 找到 PermitRootLogin yes,改为以下一行。没找到就添加这行。
# 禁止 root 用户通过密码登录。
PermitRootLogin prohibit-password
# 在文件最后添加以下两行
Match LocalAddress 127.0.0.1/32,::1/128,192.168.0.0/16,10.0.0.0/8,172.16.0.0/12,fe80::/16,fd00::/8
   PermitRootLogin yes
  • 太多猜密码的,在 log 中留下不少记录,占用空间。装个 fail2bain 限制一下。只需限制 sshd 的对应端口就够了。
  • N1 的 armbian 有 ntpd 对时服务。不用装 chronyd 了。
  • auth.log 中留下很多 dev/ttyS0: not a tty 的记录,syslog daemaon.log 也有不少 ttyS0 的记录。
    因为 N1 本身没有串口,所以出错。除非 USB 上插了一个。
    systemctl disable serial-getty@ttyS0,service serial-getty@ttyS0 stop 即可

转载注明来源: 本文链接 来自osnosn的博客.

posted on 2020-11-17 15:41  osnosn  阅读(931)  评论(0编辑  收藏  举报