====== 树莓派 rashbarry ======
===== 安装系统 =====
==== Raspberry OS ====
原生系统是基于Debian的。原生系统默认用户名 pi 密码 raspberry 。使用原生系统可以在刻录之前,ctrl+shift+X 进行系统配置,如网络、开通ssh等。
[[https://zh.m.wikipedia.org/zh-hans/Raspberry_Pi_OS|内核版本]]
==== Ubuntu ====
树莓派安装Ubuntu 参考文章:
(([[https://ywnz.com/linuxaz/6997.html|在Raspberry Pi上安装Ubuntu 20.04 LTS的方法]]))
(([[https://zhuanlan.zhihu.com/p/137115309#:~:text=01.将SD 卡插入,的Pi 版本进行选择。|如何在 Raspberry Pi 上安装 Ubuntu]]))
(普通主机从usb启动安装ubuntu请参考 (([[https://zhuanlan.zhihu.com/p/101307629|win10+Ubuntu双系统的正确打开方式]])))
第一次插电的时候,连不上显示器,回头发现network-config之前改了,也被重新覆盖。把SD卡插回电脑,再改一次,然后断电,重新插电。第二次通电后显示器连接上了。填写网络名需要注意后面的冒号。第一次进不去,启动第二次就好了。
⌘ + ⇧ + X 打开网络设置窗口
network-config 文件需要添加WIFI信息
wifis:
wlan0:
dhcp4: true
optional: true
access-points:
:
password: "<密码>"
iPhone:
password: "12345678"
一定要注意空格。
第一次登录默认的用户名是 ubuntu,密码是 ubuntu。用户没有修改公共区域的权限,需要用root用户登陆,但是root用户默认不允许ssh登陆。详情参阅[[it:server:ubuntu|ubuntu 系统]]
开机一直停留在 cloud-init 的问题 (//需用root身份才能改//)
''%%touch /etc/cloud/cloud-init.disabled%%''
安装桌面环境 ''$sudo apt-get install gnome''
* 当前图形界面时,按Ctrl+Alt+F1切换到字符界面;
* 当前字符界面时,按Ctrl+Alt+F7切换到图形界面;
如果想开机默认进入命令行模式: 输入命令:''%%sudo systemctl set-default multi-user.target%%'' 开机默认进入图形用户界面: 输入命令:''%%sudo systemctl set-default graphical.target%%'' 。然后重启一下:reboot 如果想暂时回到图形界面,只需要输入命令:startx 从图形界面切换回命令行:Ctrl+Alt+F7
使用''$:sudo apt-get install htop''进行安装htop工具,查看cpu以及内存使用情况 ''$ htop''
===== 挂载硬盘 =====
''%%lsblk%%'' 查看硬盘情况,''%%df -h%%'' 查看对应的文件系统。
sudo mkdir /mnt/usb
mount /dev/sdb1 /mnt/usb // 挂载usb到树莓派
mount /dev/sda2 /mnt/hdisk // 挂载移动硬盘到树莓派
开机自动挂载
- ''%%sudo blkid%%'' 查看硬盘ID
- 编辑 /etc/fstab 文件,追加两行
UUID=0d6fe93b-b6a0-456f-b11d-91a002b608f0 /mnt/hdisk xfs defaults 0 2
UUID=12037b69-0605-4a19-a5e0-9969de4a8228 /mnt/usb xfs defaults 0 2
第一数字0,0是开机不检查磁盘,1是开机检查磁盘\\
第二个数2,0表示交换分区,1表示启动分区,2表示普通分区
===== 备份系统 =====
==== 使用脚本 ====
全部安装完成,稳定运行一段时间以后,就要考虑将系统做一个镜像备份,以便将来的不时之需。(([[https://post.smzdm.com/p/apzkgne7/|树莓派4B 的系统备份方法大全]] / [[https://github.com/BigBubbleGum/RaspberryBackup|Github 仓库]]))
(([[https://blog.csdn.net/qingtian11112/article/details/99825257|制作树莓派img镜像文件]]))
(无法访问Github的话可以在本站下载脚本 {{ :it:server:raspberrybackup-master.zip |rpi-backup.sh}}
)尤其是当前的树莓上安装并运行了OMV,它安装了很多工具和扩展,重新恢复将会是一件非常痛苦的事情。(脚本有个错误,''%%'s/.*(loop[0-9]+)p.*/\1/g'%%'' 原先 [0-9]后面缺一个加号。会导致找不到正确的设备符)
上面的文章已经为我们准备了一份脚本,按照说明就可以将当前的系统做出镜像文件。使用脚本之前检查一下里面的命令,如果没有安装的先安装,例如:
sudo apt-get install dosfstools dump parted kpartx
通过 df -h 查看到自己树莓派上的 boot 和 root 设备分别为 /dev/mmcblk0p1 和 /dev/root (不是 /dev/mmcblk0p2)。进而执行脚本 (注意参数的先后顺序不能搞反)
path-to/rpi-backup.sh /dev/mmcblk0p1 /dev/root
对挂载在 /srv/* 下的数据硬盘在或许要设置 d 标记 (([[https://www.cyberciti.biz/faq/freebsd-solaris-unix-linux-dump-exclude-directories-files/|Linux Dump Command Exclude Directories / Files]]))
# 设置d标记,在ddump命令中就会被忽略
chattr +d /var/spool/squid
# 查看某个目录是否被设置了d标记
lsattr -d /var/spool/squid/
* 发现脚本执行结束后不能删除 tg_Root 目录,需要手工卸载镜像设备,然后才删除
losetup -f --show rpi-20210730-0544.img
# /dev/loop1 显示img中挂载的设备
sudo losetup -d /dev/loop0
sudo losetup -d /dev/loop1
rmdir tgt_Root
==== dd 命令 ====
关闭树莓,将SD卡插入到Mac系统上(([[https://howchoo.com/pi/create-a-backup-image-of-your-raspberry-pi-sd-card-in-mac-osx|How to Back Up and Restore Your Raspberry Pi SD Card on Mac]]))
# find the sd-card name
diskutil list
# changing /dev/disk1 to your disk's name and path
sudo dd if=/dev/disk1 of=~/PiSDCardBackup.img
* 因为时间很长,因此大概需要显示备份进程。(([[https://www.cyberciti.biz/faq/linux-unix-dd-command-show-progress-while-coping/|Linux dd Command Show Progress]]))
# 管道压缩
sudo dd bs=1M if=/dev/mmcblk0 status=progress | gzip > /srv/ssd/work/ftp/PiOS.img.gz
恢复一个镜像
diskutil unmountDisk /dev/disk1
sudo dd if=~/PiSDCardBackup.img of=/dev/disk1
有个很重要的前提,虽然压缩后的img文件也是只有实际数据的量。但烧录的时候,需要目标盘跟原来的盘一样大小。这就很尴尬了。否则就只能用前面脚本的方法。
===== 检查磁盘 =====
1 下载 smartctl 工具 ''%%sudo apt-get install smartmontools
%%'' (([[https://blog.csdn.net/u012611644/article/details/80843704|Linux 下检测磁盘坏道的方式]]))
查看帮助文档 ''%%man smartctl%%'' 或者 ''%%smartctl -h%%''
2 检查坏道
用 ''%%sudo fdisk -l%%'' 找到盘符, 如 /dev/sda
检查 ''%%sudo smartctl -H /dev/sda10%%''
===== 检查镜像 =====
使用 VirtualBox 建立子个新的Linux虚拟系统,然后将镜像拷贝到系统中(([[https://superuser.com/questions/554862/how-to-convert-img-to-usable-virtualbox-format/555170|How to convert .img to usable VirtualBox format]]))。命令格式为
VBoxManage convertdd rpi.img mypi.vdi
===== 其它 =====
获取 cpu 温度
vcgencmd measure_temp
curl 不通的时候要清理dns缓存
sudo systemd-resolve --flush-caches
{{tag>ubuntu vps raspbarry}}