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.log
或find / -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。 shutdown
或halt -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
设置系统时区为上海 - 装本地邮件系统 postfix ,邮件客户端 mutt。
- 装 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.conf
中SystemMaxUse=8M
- 手动删除到8M
- sshd 配置,仅允许 root 从内网用密码登录。其他地方要用密钥登录。
【配置sshd_除了特定ip外_仅密钥登录】
# 修改 /etc/ssh/sshd_config
# 找到 PermitRootLogin yes,改为以下一行。没找到就添加这行。
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