官方的 Ubuntu Server 镜像就是个坑货,还是刷 Armbian( armbian 商业网/) 省心~~
Orange Pi 官方有为 Orange Pi Lite 准备官方的 Ubuntu Server 镜像,下载下来用 dd 拷贝到 TF 卡上就行。
1、去 github /Joshua-Riek/ubuntu-orange-pi5/releases/ 下载 ubuntu_server_For_OrangePi_Lite
2、解压下载下来的 xz 文件
xz -d ubuntu_server_lite.img.xz
3、确定 TF 卡所属的磁盘设备
sudo fdisk -l
结果为:
Disk /dev/sda: 119.2 GiB, 128035676160 bytes, 250069680 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x18b918b8
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 16779263 16777216 8G 82 Linux swap / Solaris
/dev/sda2 16779264 100665343 83886080 40G 83 Linux
/dev/sda3 100665344 250069679 149404336 71.2G 83 Linux
Disk /dev/sdb: 29.7 GiB, 31914983424 bytes, 62333952 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xdeee394b
Device Boot Start End Sectors Size Id Type
/dev/sdb1 40960 172031 131072 64M b W95 FAT32
/dev/sdb2 172032 62332928 62160897 29.7G 83 Linux
这里可以看到 TF 卡所属的磁盘文件为 /dev/sdb
4、写入镜像文件到 TF 卡
sudo dd bs=1M if=ubuntu_server_lite.img of=/dev/sdb
不过官方的 Ubuntu Server 其实是有问题的,需要做一番修改
写入镜像到 TF 卡后,你会发现TF卡被分成了两个分区,一个是 BOOT 分区,一个是 linux 分区。
由于 Orange Pi Lite 只有 wifi 接口,因此还需要配置 wifi 才能让 Orange Pi Lite 连接上网络。
挂载 TF 卡上的 linux 分区,这里由于我使用了 udiskie 来自动挂载可移动磁盘,因此系统自动将该分区挂载到了 /var/media/$USER/linux 下了
1、进入 linux 分区的挂载点
cd /var/media/lujun9972/linux
2、使用 wpa_passphrase 生成配置
sudo wpa_passphrase $SSID $WIFIPWD |sudo tee etc/network/wpa_passphrase.conf
注意这里用了 sudo tee 来将结果存入 etc/network/NETGEAR90.conf 中,而 不能直接用 > 来重定向。
可以配置多个wifi
sudo wpa_passphrase $SSID $WIFIPWD |sudo tee -a etc/network/wpa_passphrase.conf
3、将 wlan 加入 etc/network/interfaces 中
sudo cat <<EOF |sudo tee -a etc/network/interfaces
auto wlan1
iface wlan1 inet dhcp
wpa-conf /etc/network/wpa_passphrase.conf
EOF
至此 wifi 就设置好了,退出 TF 卡,插入 Orange Pi Lite 后通电,Orange Pi Lite 就会自动连接上 wifi 了
在路由器上查到 Orange Pi Lite 分配的IP后,通过ssh登陆
ssh root@orangepilite
第一次登陆会看到提示,这时 ubuntu server 只会用到TF卡中的部分空间
[lujun9972@T520 ~]$ ssh root@192.168.1.8
root@192.168.1.8's password:
Welcome to Ubuntu 14.04.3 LTS (GNU/Linux 3.4.39 armv7l)
* Documentation: https://help.ubuntu.com/
Last login: Thu Jan 1 00:19:28 1970
****************************************
WARNING: TO RESIZE FILESYSTEM RUN:
sudo fs_resize
to remove this message run:
sudo rm /usr/local/bin/fs_resize_warning
****************************************
按照提示运行
fs_resize
重启后,ubuntu server 自动扩展到使用 TF 卡的所有空间
后面的操作都是通过 ssh 在 Orange Pi Lite 上执行
sed -i 's/ports.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/' /etc/apt/sources.list
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
刷完官网上的 Ubuntu Server 后你会发现无法运行 apt update,总是提示
Reading package lists... Error!
E: Encountered a section with no Package: header
E: Problem with MergeList /var/lib/dpkg/status
E: The package lists or status file could not be parsed or opened.
这是因为官网 Ubuntu Server 上的 /var/lib/dpkg/status 和 /var/lib/dpkg/available 被损坏了。
查看 status 文件发现文件头多了几行莫名其妙的文字,文件后面出现很多乱码,把这些乱七八糟的东西删掉。
sed -i '3436,$d' /var/lib/dpkg/status
sed -i '1,11d' /var/lib/dpkg/status
然后用root用户执行
dpkg --clear-avail
apt-get update
apt-get install -f
apt-get --reinstall install liblockfile1 liblockfile-bin usbmount alsa-base linux-sound-base alsa-utils
apt-get dist-upgrade
升级成功
虽然可以升级,但是升级后重启貌似就无法登陆了
安装更新管理器核心 update-manager-core
apt-get install update-manager-core
编辑 /etc/update-manager/release-upgrades 配置文件,设置 Prompt=lts
启动升级进程
sudo do-release-upgrade
