|
第七节 使用破解的UGOSPro系统启动盘
与破解UGOS系统时一样,我们需要写一个QEMU虚拟机的启动脚本。这次我使用的QEMU虚拟的启动命令行写法如下: sudo qemu-system-x86_64 \ -enable-kvm \ -machinepc-i440fx-bionic,accel=kvm,usb=off,vmport=off,dump-guest-core=off \ -name guest=UGOSPRO\1895,debug-threads=on \ -cpu Nehalem-IBRS \ -m 2048 \ -realtime mlock=off \ -smp2,sockets=2,cores=1,threads=1 \ -uuid 82cd2982-9a76-43ff-9c70-c4bb12984139\ -smbios type=0,vendor=American\ Megatrends\ International\LLC.,version=5.27 \ -smbiostype=1,manufacturer=UGREEN,product=dx4600,version=JS0A40029,serial=*,family=UGREEN\NAS \ -no-user-config \ -rtc base=utc,driftfix=slew \ -global kvm-pit.lost_tick_policy=delay\ -global PIIX4_PM.disable_s3=1 \ -global PIIX4_PM.disable_s4=1 \ -global isa-fdc.fdtypeA=none \ -no-hpet \ -no-reboot \ -deviceich9-usb-ehci1,id=usb,bus=pci.0,addr=0x5.0x7 \ -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x5\ -device sdhci-pci \ -deviceahci,id=sata0,bus=pci.0,addr=0x6 \ -devicevirtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x7 \ -drive file=./UGOSPRO_SD.qcow2,format=qcow2,if=none,id=mysdcard \ -device sd-card,drive=mysdcard \ -drivefile=./UGOSPRO_DATA.qcow2,format=qcow2,if=none,id=drive-sata0-0-1 \ -deviceide-hd,bus=sata0.1,drive=drive-sata0-0-1,id=sata0-0-1 \ -drivefile=./UGOSPRO_BIOS_BOOT-1895.qcow2,format=qcow2,if=none,id=drive-sata0-0-0 \ -deviceide-hd,bus=sata0.0,drive=drive-sata0-0-0,id=sata0-0-0,bootindex=1 \ -netdev user,id=mynet0,net=192.168.2.0/24,dhcpstart=192.168.2.10,restrict=yes,hostfwd=tcp::9999-:9999,hostfwd=tcp::2222-:22 \ -netdev user,id=mynet1,net=192.168.2.0/24,dhcpstart=192.168.2.20,restrict=yes \ -devicee1000,netdev=mynet0,mac=98:6E:E8:21:36: D9 \ -devicee1000,netdev=mynet1,mac=98:6E:E8:21:36: DA \ -chardev socket,id=charserial0,host=127.0.0.1,port=4555,server,nowait \ -device isa-serial,chardev=charserial0,id=serial0\ -msg timestamp=on 与第一节的脚本一样。这段命令中的几个关键点,让我再来解释一下。以便大家更了解仿真启动过程。 在第一节中已经介绍过的关键点,在这里也标识为bold字体,但我就不赘述了。不明的的地方请参考第一节中的解释。这段启动脚本中用三个盘。
UGOSPRO_BIOS_BOOT-1895.qcow2 辅助启动盘 UGOSPRO_SD.qcow2 绿联系统的sd卡模拟盘 UGOSPRO_DATA.qcow2 数据盘 用于模拟绿联硬件的BIOS信息的部分,隐匿掉了serial=*不能泄露的sn信息。
这里面需要解释的是QEMU虚拟机两种网络模式。 QEMU虚拟机支持两种网络模式,用户模式,和Tap模式。第一节中我使用的是Tap模式。这次我使用的用户模式。下面简单介绍一下两种模式的区别。
第一节中用的Tap模式:
Tap 网络后端利用主机中的 Tap 网络设备。它性能出色,并且可以通过配置创建几乎任何类型的网络拓扑。遗憾的是,它需要在主机中配置该网络拓扑,而这通常因使用的操作系统而异。一般来说,它还需要您拥有root 权限。
用户网络(SLIRP)。这是默认的网络后端,通常最容易使用。它不需要 root/管理员权限。但它有以下限制: 通常,ICMP流量不起作用(因此您无法在客户机中使用 ping 命令) 在Linux 主机上,客户机内部可以使用 ping 命令,但需要root 用户进行初始设置。 客户机无法从主机或外部网络直接访问。 用户网络使用“slirp”实现,它在 QEMU 中提供了完整的 TCP/IP 协议栈,并使用该协议栈实现虚拟 NAT 网络。 典型的(默认)网络如下所示:
请注意,从客户机内部连接到“网关”IP 地址上的端口将连接到主机上的相应端口;例如,“ssh10.0.2.2”将从客户机通过SSH 连接到主机。 可以使用-netdev user 命令行选项配置用户网络。 在qemu 命令行中添加以下命令,将网络配置更改为使用 192.168.2.0/24 而不是默认的 10.0.2.0/24,并从 10(而不是 15)启动客户机 DHCP 分配。 可以使用restrict 选项将客户机与主机(以及更广泛的网络)隔离。例如,-netdev user,id=mynet0,restrict=y 或 -netdev type=user,id=mynet0,restrict=yes 会将网络连接限制在客户机和任何虚拟设备上。这可以用来阻止客户机访问互联网,同时仍然在客户机内部提供网络。宿主机可以使用 hostfwd 和 guestfwd 选项选择性地访问客户机。 再来看我的脚本就容易懂了吧:
-netdev user,id=mynet0,net=192.168.2.0/24,dhcpstart=192.168.2.10,restrict=yes,hostfwd=tcp::9999-:9999,hostfwd=tcp::2222-:22 -netdev user,id=mynet1,net=192.168.2.0/24,dhcpstart=192.168.2.20,restrict=yes 我用restrict=yes限制客户机访问互联网。也就是断开互联网的工作方式。去掉它,客户机就能联网了。 因为用户网络的客户机位于NAT之后,也就是俗话说的路由器的后面。因此,要访问就需要做端口转发。绿联NAS的默认Web服务端口是9999,这个端口需要转发。还有一个是ssh的22端口。我调试的时候常用,所以也做了转发。 hostfwd=tcp::9999-:9999,hostfwd=tcp::2222-:22 好了,脚本就解释到此。让我们运行它试试吧!
强调注意:用户网络 (SLIRP)一般只适用于调试,真正使用还是要用Tap模式。
我的断开互联网的工作方式。运行启动脚本后,宿主机会出现一个QEMU的弹窗。第一次运行的时候,我会打宿主机终端开跟踪。命令是:
telnet localhost 4555
跟踪用来监视启动流程。你可能会看到这样的信息流:
Loading initial ramdisk ... [ 0.000000] Linux version 6.1.27(ugreen@debian) (gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils forDebian) 2.40) #26 SMP PREEMPT_DYNAMIC Mon Nov 11 22:20:21 CST 2024 [ 0.000000] Command line:BOOT_IMAGE=/boot/vmlinuz root=PARTUUID=4453acf2-08d6-4786-bad6-611b09d11e33rootwait console=ttyS0,115200n8 overlay=/dev/sda7 overlayfs=ext4 net.ifnames=0biosdevname=0 [ 0.000000] x86/fpu: x87 FPU will use FXSAVE [ 0.000000] signal: max sigframe size: 1440 [ 0.000000] BIOS-provided physical RAM map: [ 0.000000] BIOS-e820: [mem0x0000000000000000-0x000000000009ffff] usable [ 0.000000] BIOS-e820: [mem0x0000000000100000-0x000000007e9ecfff] usable [ 0.000000] BIOS-e820: [mem0x000000007e9ed000-0x000000007eab4fff] reserved [ 0.000000] BIOS-e820: [mem0x000000007eab5000-0x000000007eb1afff] type 20 [ 0.000000] BIOS-e820: [mem 0x000000007eb1b000-0x000000007fb9afff]usable [ 0.000000] BIOS-e820: [mem0x000000007fb9b000-0x000000007fbcafff] type 20 [ 0.000000] BIOS-e820: [mem0x000000007fbcb000-0x000000007fbf2fff] reserved [ 0.000000] BIOS-e820: [mem0x000000007fbf3000-0x000000007fbfafff] ACPI data [ 0.000000] BIOS-e820: [mem0x000000007fbfb000-0x000000007fbfefff] ACPI NVS [ 0.000000] BIOS-e820: [mem0x000000007fbff000-0x000000007ffdffff] usable [ 0.000000] BIOS-e820: [mem0x000000007ffe0000-0x000000007fffffff] reserved [ 0.000000] BIOS-e820: [mem0x00000000ffe00000-0x00000000ffffffff] reserved [ 0.000000] NX (Execute Disable) protection:active [ 0.000000] efi: EFI v2.70 by EDK II […………] 我截取了一点点做为例子。
第一次运行破解制作的启动盘,可能会需要比较长的时间,因为启动过程中,绿联系统要重新初始化启动盘,还要安装预制的基本服务。
在这个过程中可能会出现一些非致命错误的信息,失败重试的信息,等等。我们可以忽略这些,只要没有出现致命错误,进入“emergencymode”模式。就能成功完成启动盘初始化。我反复试验了几次,都是成功的。没有问题。因为我使用蜗牛星际矿渣机,内存小,CPU慢,每次启动大约需要5分钟左右。只是要耐心等待就是了。如果你用更好的机器,启动会很快完成。
比较有可能出现致命错误的原因大概如下: 1. 模拟绿联硬件的BIOS信息的部分输入不正确,(sn)不正确。 2. (sn)与factory.tar中的内容不匹配。 3. 启动怕第二分区的PARTUUID与grub.cfg的内容不匹配。
所以,制作过程中一定要仔细,不要出现不必要的失误。费时费力查找原因。 在QEMU的弹窗中出现如下画面,启动就基本成功了。
跟踪窗口中出现如下信息后,就可以通过Web管理界面配置绿联UGOSPro系统了。 [………] [ OK ] Finished sysstat-collect.s…-system activity accounting tool. [ OK ] Started rc-local.service - /etc/rc.localCompatibility. [ OK ] Startedserial-getty@ttyS0…rvice - Serial Getty on ttyS0. [ OK ] Reached target getty.target- Login Prompts. [ OK ] Reached targetmulti-user.target - Multi-User System. Starting systemd-update-ut… RecordRunlevel Change in UTMP... [ OK ] Finished systemd-update-ut…- Record Runlevel Change in UTMP. UGOSPRO Linux DX4600-C3A9 ttyS0 [ 1151.911785] PASS, PASS, PASS,PASS, PASS [ 1207.348859] ---start get sysinfo DX4600-C3A9 login:
也可以从跟踪窗口登录系统噢。还记得上一节中的可做,可不做的小窍门吗?现在可以派上用场了:
DX4600-C3A9 login: root root Password: ugreen
Linux DX4600-C3A9 6.1.27 #26 SMPPREEMPT_DYNAMIC Mon Nov 11 22:20:21 CST 2024 x86_64
The programs included with theDebian GNU/Linux system are free software; the exact distribution terms foreach program are described in the individual files in/usr/share/doc/*/copyright.
Debian GNU/Linux comes withABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Thu Jun 15 11:07:41CST 2023 from 192.168.44.213 on pts/1
BusyBox v1.35.0 (Debian1:1.35.0-4+b3) built-in shell (ash) Enter 'help' for a list ofbuilt-in commands.
root@DX4600-C3A9:~# ^[[26;21R
这时在#后面会有一些乱字符,不用去管它,因为跟踪窗口的telnet不能解释Esc控制符。就当这些字符也是控制台的提示符吧。不影响输入命令。
让我们用lsblk命令看看现在块设备的情况吧:
root@DX4600-C3A9:~# ^[[26;21Rlsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 128G 0 disk sdb 8:16 0 1G 0 disk └─sdb1 8:17 0 1023M 0 part /mnt/@usb/sdb1 mmcblk0 179:0 0 16G 0 disk ├─mmcblk0p1 179:1 0 256M 0 part /boot ├─mmcblk0p2 179:2 0 2G 0 part /rom ├─mmcblk0p3 179:3 0 10M 0 part /mnt/factory ├─mmcblk0p4 179:4 0 2G 0 part ├─mmcblk0p5 179:5 0 2G 0 part ├─mmcblk0p6 179:6 0 4G 0 part /ugreen └─mmcblk0p7 179:7 0 5.7G 0 part /overlay zram0 252:0 0 246M 0 disk [SWAP] zram1 252:1 0 246M 0 disk [SWAP] zram2 252:2 0 246M 0 disk [SWAP] zram3 252:3 0 246M 0 disk [SWAP] root@DX4600-C3A9:~# ^[[26;21R
打开浏览器输入:http://localhost:9999通过端口转发访问绿联的Web管理界面。
因为我是断开互联网方式的。这时会出现不能更新的出错画面
我选择不用更新,就继续前进了。
然后就出现了这个画面:
按Start按钮,继续前进。
回到登录界面:
查看一些本机信息:
我的机型是:DX4600, 我没有用UGREENlink,版本是:1.0.0.1895。登录账号是:laojifuli。
第八节 关于绿联UGOSPro系统盘的映像制作
绿联官方以前一直没有发行它的固件刷机盘,或者是固件更新盘。大家往往是通过复制emmc/ssd系统盘镜像的办法对它的固件来做分析的。
这次的ISO镜像发布,让我们有机会来窥视一下绿联UGOSPro系统盘的结构。
我们现在可以发现,绿联UGOS Pro系统其实可以分为三大部分。
第一部分:既系统盘的第一分区,这是一个UEFI的启动分区。这个分区中的大部分文件其实与绿联无关,都是一些支持UEFI启动的文件。只有三个文件是绿联相关的。一个就是gurb.cfg文件,这是gurb启动的定义文件。另外两个是boot目录中的,initrd.img,vmlinuz文件。vmlinuz是DebianGNU/Linux 12 (bookworm)的linux内核。initrd.img是临时的ramfs文件系统,负责引导根文件系统的启动。
绿联ISO镜像提供的是整个第一分区的磁盘镜像,其实没有必要。我们完全可以使用命令创建启动盘,然后再复制这三个文件即可。例如,我在上面介绍的辅助启动盘的做方法。
好在这个分区并不大,只有大约250M。就算做分区镜像也不会太大。如果使用三个文件加命令来创建启动盘的话,大约只需要53.2M的数据就够了。
第二部分:是系统盘的第二分区,这个分区是绿联的”squashfs”格式的根文件系统。这是整个系统的核心部分。这个分区是一个2G的分区。但实际的rootfs.squashfs根文大约应该在750M到800M左右。它是xz压缩的只读文件。我在第一节中讲了如何对rootfs.squashfs根文拆包,与重新打包的方法。只需要使用squashfs-tools工具包就可以了。但是绿联的UGOSPro系统没有安装这个工具包。
其实我们可以用df命令来判断squashfs根文的尺寸。例如:
laojifuli@DXP4800PLUS-F2A:/$ sudo df Filesystem 1K-blocks Used Available Use%Mounted on udev 988364 0 988364 0% /dev tmpfs 201872 956 200916 1% /run /dev/mmcblk0p2 795904 795904 0 100% /rom /dev/mmcblk0p6 4046560 2959624 860840 78% /ugreen /dev/mmcblk0p1 261868 41944 219924 17% /boot overlay 4727420 145288 4317276 4% / tmpfs 1009344 2104 1007240 1% /dev/shm tmpfs 5120 0 5120 0% /run/lock tmpfs 1009344 88 1009256 1% /tmp /dev/mmcblk0p7 4727420 145288 4317276 4% /overlay /dev/mmcblk0p3 8729 15 7998 1% /mnt/factory /dev/md0 15632312 4260080 10556360 29% /rootfs tmpfs 1048576 0 1048576 0% /var/lib/nginx /dev/sda1 522984 51280 471704 10% /mnt/@usb/sda1 tmpfs 201868 0 201868 0% /run/user/1002
可以看到挂载到/rom目录的第二分区,实际尺寸是1K-blocks:795904也就是说它的实际尺寸为795904K,约795M。因此,在做镜像的时候,正确的方法是不需要镜像整个2G的第二分区,而是应当按照挂载到/rom的实际尺寸来做镜像。使用的命令如下:
dd if=/dev/mmcblk0p2of=rootfs.squashfs ibs=1K count=795904
这样做的镜像既可以准确覆盖分区中的squashfs根文系统的尺寸,有不会浪费不必要的空间。特别是在恢复镜像的时候,不会出现第二分区尺寸不足的问题。我提供的例子是我调试改动过的文件尺寸,与原厂的系统可能不同。请朋友们在做镜像的时候,使用df命令先检查尺寸,再根据实际尺寸做镜像。
绿联ISO镜像提供的ugospro-rootfs.squashfs 文件就是实际尺寸的文件,用dd命令写入第二分区后,它的实际尺寸就是用df命令看到的挂载到/rom目录的尺寸。这个文件是只读的,无论系统如何运行,它都永久不变。所有,任何时间点做的镜像永远是相同的。不用担心它会改变。系统运行时对根文系统中/rom文件的变动,都是通过/overlay来实现的。而这个/overlay的第七分区是不需要镜像的。它只是运行时的动态文件。
第三部分:是系统盘的第六分区,它挂载到/ugreen目录。这是绿联开发的所有基础服务程序包。根据对绿联程序的分析。这个挂载到/ugreen目录的第六分区中,包括一些系统运行后生成的文件,在做镜像时是不需要的。最好不要把这些东西做到镜像中。它会对使用镜像产生一些不良影响。如下是绿联的厂方reset程序的摘要:
ugreen_reset() { […] [忽略无关的部分] # 将系统时间设置为与服务器同步模式 timedatectlset-ntp true touch/mnt/factory/factory_reset # 恢复配置目录/ugreen/.config rm -rf/ugreen/.config mkdir/ugreen/.config # 恢复其它后产生的目录 rm -rf/ugreen/data /ugreen/guide /ugreen/guide_icons /ugreen/script [ -e/ugreen/wallpaper/login ] && rm -rf /ugreen/wallpaper/login # 恢复内置服务,下次开机通过uginstall会全新初始化 foritem in `ls -1d /ugreen/@appstore/*` do id=$(basename$item) uginstall-remove -id $id done rm -rf/ugreen/@appstore mkdir/ugreen/@appstore # 恢复nginx入口链接,下次开机通过uginstall会全新初始化 rm -fr/ugreen/www/* # 清理系统产生的缓存目录(默认全是以@开头的) for volin $(findmnt -n --output TARGET --target /volume*) do #清理应用中心安装的目录数据 rm-rf ${vol}/@appstore 2>/dev/null done }
从上述的程序我们就能知道。挂载到/ugreen目录的第六分区中的有些东西是运行后产生的,没有必要做到镜像中。下面逐一简单说明一下:
隐藏目录/ugreen/.config中的内容,完全没有必要做到镜像中。因为这个目录中还含有隐藏的文件,所有绿联的程序处理时采用,删除目录再重建的办法来恢复厂方初始设置。目录需要保留。
这五个目录 /ugreen/data; /ugreen/guide; /ugreen/guide_icons; /ugreen/script; /ugreen/wallpaper/login 完全没有必要做到镜像中。目录不需要保留。
目录/ugreen/@appstore/中的内容,完全没有必要做到镜像中。可能厂方担心会含有隐藏的文件,在删除目录中的内容后,又删除目录并重建。前面删除内容的程序就是多余的了。这段程序需要推敲优化。目录需要保留。
目录/ugreen/www/ 中的内容没有必要做到镜像中。但目录需要保留。
应当采用绿联制作ISO镜像的办法。先对/ugreen目录做手工恢复出厂设置。然后使用如下命令:
tar –czf ugreen.bz2 –C /ugreen .
-C /ugreen告诉 tar 将当前目录更改为/ugreen,然后 “.”表示“添加整个当前目录”。包括隐藏文件和子目录。
以上述方法制作的镜像,是由三个文件组成的。第一分区的镜像(或者是:gurb.cfg,initrd.img,vmlinuz三个文件)。第二分区的镜像rootfs.squashfs根文件系统的镜像。和第六分区的镜像ugreen.bz2绿联基础服务程序包文件。然后,把这些文件打包压缩成一个文件就可以了。
其中最大的是rootfs.squashfs根文件系统的镜像,大约750M左右。其次是ugreen.bz2绿联基础服务程序包文件,大约360M-420M左右。最小的是第一分区的镜像,压缩后大约 50M左右。
在上述根据绿联的ISO刷机镜像全面分析了关于绿联UGOS Pro系统的结构之后,我前些日子去绿联的官网下载了它的升级固件。我下载的是:UGOSPRO_OTA_1.1.16.2030-release.img,2025年1月的一个版本。用file命令一检查,发现它就是一个tar包。把它直接改名为:UGOSPRO_OTA_1.1.16.2030-release.tar后。用tar命令查看了一下它的内容。
root@J1900-Ubuntu18:~/UGREEN $tar -tvf UGOSPRO_OTA_1.1.16.2030-release.tar -rw-r--r-- 0/0 12 2025-01-09 19:16 config.txt -rw-r--r-- 0/0 6952000 2025-01-06 20:58 vmlinuz -rw-r--r-- 0/0 34297818 2025-01-06 20:58 initrd.img -rw-r--r-- 0/0 778 2025-01-09 19:17 md5sum.txt -rw-r--r-- 0/0 360800308 2025-01-09 19:06 ugreen.bz2 -rwxr-xr-x 0/0 613 2024-05-29 02:59pre_ugreen_update.sh -rwxr-xr-x 0/0 6242 2025-01-06 20:58 ugreen_update.sh -rwxr-xr-x 0/0 1090 2024-06-12 08:16ugreen_squashfs.sh -rwxr-xr-x 0/0 77 2024-03-19 03:45ugreen_profile.sh -rw-r--r-- 0/0 290 2025-01-09 19:16 os-release -rw-r--r-- 0/0 765784064 2025-01-09 19:17 ugospro-rootfs.squashfs -rw-r----- 0/0 8 2025-01-09 19:17 rootfs.count -rw-r--r-- 0/0 33 2025-01-09 19:17 rootfs.md5sum -rw-r--r-- 0/0 50 2025-01-09 19:16 version.txt -rwxr-xr-x 0/0 1951652 2024-12-19 05:35 ugupdate -rwxr-xr-x 0/0 11004 2025-01-06 20:58ugospro-upgrade -rw-r--r-- 0/0 589 2024-10-08 06:39photo_serv.service -rw-r--r-- 0/0 932 2025-01-09 19:04 ugreen.txt
我惊奇地发现这个升级包里面的内容,与我对上述分析完全相符。我用红色bold标出这些东西。
这里面除了没有grub.cfg这个无关紧要的文件之外,所有构建启动盘的文件都有。当然还有一些绿联升级用的文件,但这些文件对于我们创建启动盘是没有用的。 我前些日子下载的这个绿联的升级到版本1.1.16.2030版。远比绿联ISO刷机镜像的1.0.0.1895版本高得多。于是我决定按照我对思路,创建一个1.1.16.2030版启动盘试试看。具体细节我就不赘述了,可以参考前面讲过的创建启动盘的方法。果然,成功了!不浪费时间截图了,只给出一张截图证明一下:
这个1.1.16.2030最新的版本,虽然远比绿联ISO刷机镜像的1.0.0.1895版高的多,但其实没有什么实质性的大的改变。最近我又去绿联的官网查了一下,现在(写这篇文章的时候)最新的版本已经升级到了1.5.0.2628版。但我还没有下载它,估计也没有什么实质性的大的改变吧。这只是我对猜测,有兴趣的朋友可以自行下载试试吧。我发现,绿联的版本升级很快,从1.1.16.2030版到1.5.0.2628版,仅仅几个月的时间。可以推测,可能是bug多多,正在加速打磨吧。
现在,理论上可以说对于绿联的任何版本,只要绿联发布升级包。我们就能制作该版本的启动盘了。但实际操作上,还是需要一些技巧的。
为例验证我的猜测,在发这篇文章之前,我决定还是下载1.5.0.2628版。看看我的猜测对不对。但下载后我发现,这个版本有个“DIFF”标记。绿联发布的升级包有两种形式,目前我也没有发现什么规律性。例如;“UGOSPRO_OTA_1.1.16.2030-release.img”,就可以拿来直接制作启动盘。但是“UGOSPRO_OTA_DIFF_1.5.0.2628-release.img”,也就是我写这篇文章时绿联发布的最新版升级包,就需要依赖以前的版本来做启动盘。这里边的差异就是“UGOSPRO_OTA”与“UGOSPRO_OTA_DIFF”。“UGOSPRO_OTA”里面包含一个完整的ugospro-rootfs.squashfs根文件系统。但是“UGOSPRO_OTA_DIFF” 里面仅仅含有一部分ugospro-rootfs.squashfs根文件系统的升级文件。需要依赖以前的根文件系统来升级。“UGOSPRO_OTA_DIFF”升级包比“UGOSPRO_OTA”会小很多。如果可能的话,尽量下载“UGOSPRO_OTA”升级包,这样制作启动盘比较简单。这两种形式的img升级包,都是tar包。可以使用tar命令来解包和查看内容。
那么我就再利用这个升级包再次做个启动盘试试吧。具体细节我就不赘述了,可以参考前面讲过的创建启动盘的方法。不浪费时间截图了,只再给出一张截图证明一下:
由于NASYUN的篇幅限制,请看楼下,第九节 【关于绿联UGOS Pro系统的必要破解】,精彩继续!
|