前言
在树莓派上安装过了Openwrt
,Lakka
以及官方的Raspbian
后,我决定在树莓派上尝试下最爱的Ubuntu
,毕竟这是开始的地方
安装
- 首先去树莓派官网下载
Ubuntu
系统镜像,我选的是Ubuntu 20.04 Server
版本,由于我树莓派4b比较新,所以还没有针对他的专属版本,于是我就选树莓派4的64-bit版本进行了一个尝试。 友情提示
建议出国,否则龟速! - 下完后通过
balenaEtcher
把系统烧进TF卡中 - 在引导文件夹中添加一个空白的ssh文件来开启默认ssh连接
- 插卡插网线通电
- 在
DHCP
中找到树莓派的IP
地址,通过putty
进行首次连接
调试
通过上述的步骤就能顺利进入到树莓派Ubuntu 20.04 Server
的后台了,在正常使用前还要绕过下面几个坑:
坑1:系统时间不正确
默认安装后系统时间是错误的,比正确的北京时间早了一个多月,这会导致执行apt update
后报错无法更新源或者下载软件。这种问题通常情况下只要切换下时区就能顺利校正并保存日期时间,但在树莓派上却不行,因为树莓派是没有bios电池
的,每次断电或重启就会导致时间重置,所以除了切换时区外还得用到ntp服务器
来同步时间
解法:
#切换时区,选择Asia-Shanghai并保存
sudo dpkg-reconfigure tzdata
----------------------------------------------
#安装ntp服务
#打开ntp配置文件
sudo nano /etc/ntp.conf
#添加国内可用的ntp服务器
server ntp.fudan.edu.cn iburst perfer
server time.asia.apple.com iburst
server asia.pool.ntp.org iburst
server ntp.nict.jp iburst
server time.nist.gov iburst
#同步时间
sudo ntpd -s -d
#重启ntp服务
sudo /etc/init.d/ntp restart
#检验下是否已校正
date
#在rc.local中添加开机启动
sudo ntpd -s -d &
sudo /etc/init.d/ntp restart &
#重启看是否生效
坑2:替换源
说到替换源,这种安装后的常规操作在树莓派上又是一个坑,因为树莓派是Arm
架构所以导致我一开始没注意直接把X86
替换进去…GG。。后来我又找了Arm
架构的清华源,阿里源,中科源以及163源,执行apt update && apt upgrade -y
时都提示E类型错误,无法成功升级…崩溃 其实后来发现关键是要用替换关键词的方法,而不是直接把原来的标注掉再添加上述的源
解法:
#编辑源文件
sudo nano /etc/apt/sources.list
#替换关键字而不是直接添加源地址
将地址ports.ubuntu.com替换为mirrors.aliyun.com
#以下2条地址不要替换,替换后将导致无法更新安全补丁,猜测是阿里源的问题
deb http://ports.ubuntu.com/ubuntu-ports focal-security main restricted
deb http://ports.ubuntu.com/ubuntu-ports focal-security universe
坑3:搜索不到5Ghz信号
默认安装好后,通过iwlist wlan0 scan | grep SSID
是搜索不到我家的5Ghz
信号的,通过iwlist channel
来查看当前扫描的信道发现,我家的无线信道并不在内,看来原因出在无线信道上,那就好办了,通过crda
就能改变无线的国家区域设定
解法:
#安装crda
sudo apt install crda
#编辑crda配置文件
nano /etc/default/crda
#在最后的REGDOMAIN后加入想要设置的国家区域,我设置的是美国
REGDOMAIN=US
#重启树莓派
sudo reboot
经过上述步骤后再通过iwlist wlan0 scan | grep SSID
就能看到我的5Ghz
信号了,接下来就可以配置连接了
#编辑 /etc/netplay/*.yaml来配置无线
nano /etc/netplay/*.yaml
#添加相应配置(空格需完全一样)
network:
ethernets:
eth0:
dhcp4: true
version: 2 // 以上是原有的,下面的是新增
wifis:
wlan0:
dhcp4: true
access-points:
"无线名称":
password: "无线密码"
之后就可以拔掉网线,把树莓派接上电源,角落安排咯,通过无线来进项管理控制
一些日常使(zhe)用(teng)
将终端设置成中文
默认安装完后终端显示的是英语,把他调成中文有2个好处,一是看起来更舒服,二来在解压某些中文压缩包时也能正常显示文件名。
- 通过如下命令
sudo dpkg-reconfigure --force locales
- 选择最后的
zh_CN.UTF-8
和zh_CN.GBK
- 将选择停留在
zh_CN.UTF-8
上并确认 - 注销并重新登录后即可发现终端语言已经调整为中文
配置阿里DDNS
虽然我有白裙以及华硕自带的两个DDNS
,日常使用非常棒,但若我要是在内网服务器上配置一些web
服务,比如Apache2
或则Nextcloud
之类,就需要用Https
以及相应的证书来配置开启小绿锁。由于家用宽带一般没有VPS
那样的固定公网IP,家用宽带一般都是动态公网IP,有的甚至直接是内网IP,所以不能像配置VPS
那样直接在域名控制台添加一条解析记录完事儿,要通过DDNS
的方式来动态解析我们的公网IP。我在Github
上翻到由mgsky1开发的这款阿里DDNS脚本,真心感谢!先说下本脚本仅适用于动态公网IP的用户,内网用户不用折腾了,出门右转frp
或nps
吧~安装配置不复杂,官方文档说的具体了,我稍微总结下:
- 安装
python
环境pip3 install aliyun-python-sdk-core-v3
- 这里下载配置文件并上传到服务器中
- 修改
src
目录中的config.json
,填入相应的AccessKeyId
,AccessKeySecret
,First-level-domain
以及Second-level-domain
(阿里的这些key以及id如何获取不再赘述) - 运行DDNS.py
python3 src/DDNS.py
- 可以看到提示解析成功,并且控制台中也可以看到一条成功解析的记录
- 添加
crob
任务来定时解析,我设置的是10分钟解析一次*/10 * * * * python3 /home/aliddns/src/DDNS.py
- 在
/etc/rc.local
中添加sudo python3 /root/aliddns/src/DDNS.py &
来支持开机启动 - 至此树莓派已经可以通过阿里
DDNS
自动解析动态公网IP咯
配置Nextcloud
配置过程以及后续排雷可以参照这篇
这次看到有新版本18.0.4
就直接上新版本。这边值得一提的是硬盘挂载这块,Ubuntu 20.04
默认带了ntfs-3g
,所以可以直接挂载ntfs
格式的硬盘或U盘。
#查看硬盘序号,例如我这里是/dev/sda1
fdisk -l
#挂载硬盘到mnt目录
mount /dev/sda1 /mnt/
#查看是否挂载成功,应该可以看到mnt下挂载的硬盘了
df -h
#在NextCloud中启用外部存储后挂载本地存储即可看到新挂载的硬盘
-------------------------------------------
#查看磁盘分区的UUID
sudo blkid
#配置开机自动挂载
sudo nano /etc/fstab
#填入相应参数
UUID=12345678-1234-123f-1234-123456789876 /data ntfs defaults 0 1
#配置硬盘不工作时自动休眠,通过crontab执行定时任务
*/10 * * * * sudo hdparm -y /dev/sdb1 //硬盘盘符根据自己来定义,时间我设置10分钟
#查看硬盘状态
hdparm -C /dev/sdb1 //激活为active,省电为standby
-------------------------------------------
#若要卸载硬盘则使用umount
umount /dev/sda1
***2020.5.18挂载硬盘碰到的权限问题***
由于默认data
分区是在我16g的TF卡上,于是我想把默认的存储空间换到我挂载的移动硬盘上,操作还是挺简单的:
#建立和原data目录同级目录,我这里以2233为例
mkdir /var/www/html/nextcloud/2233
#拷贝原data目录下所有文件及文件夹至2233目录下
cp或rsync选一个
#编辑nextcloud配置文件
nano /var/www/html/nextcloud/config/config.php
#修改nextcloud默认存储路径
把'datadirectory' => '/var/www/html/nextcloud/data',修改为'datadirectory' => '/var/www/html/nextcloud/2233',
#重启网络服务器(以Apache为例)
service apache2 restart
解法:在Nextcloud
的配置文件中添加一行'check_data_directory_permissions' => false,
即不检查文件夹权限即可绕过该校验。
最后
至此树莓派4b上的Ubuntu 20.04 Server
初体验基本到此为止,接下来就阔以日(ji)常(xu)使(zhe)用(teng)咯
以下文章对本次折腾起到了很大的帮助,特此感谢:
发表回复