JDCloud-AX6000-百里刷机教程

JDCloud-AX6000-百里刷机教程

JDCloud-AX6000是京东云推出的一款高性能路由器,通常用于家庭和小型企业的网络需求。其型号名称中的“AX6000”表示这款路由器支持Wi-Fi 6(802.11ax)标准,并具备高达6000 Mbps的无线传输速度。该路由器的特点包括:

              1. Wi-Fi 6支持:支持Wi-Fi 6技术(也称为802.11ax),提供更高的无线速率、更低的延迟和更高的设备连接稳定性。

              2. 强大的硬件配置:通常配备高速处理器(如四核或更高)、大容量内存(如512MB或1GB)以及多个高性能天线,确保设备能在高负载下稳定工作。

              3. 6G无线带宽:通过2.4GHz和5GHz两个频段的优化组合,提供6000Mbps的高速无线网络,适合高清视频流、在线游戏及大文件传输等需求。

              4. 多设备连接支持:凭借Wi-Fi 6技术,JDCloud-AX6000能够同时支持更多的设备连接,提升了家庭或办公室环境中多设备并发时的网络性能。

              5. 安全性:配备了高水平的安全技术,包括先进的加密算法、家长控制、设备隔离等,保障家庭或企业网络的安全性。

              6. 智能优化功能:支持自动信道选择、负载均衡等功能,能够智能调整网络设置,以获得最佳的信号和速度。

  1. 这款路由器是面向需要高速、稳定和大量设备连接的家庭或企业用户,适合用于各种网络应用,尤其是高清视频、AR/VR、智能家居设备和大数据传输等领域。

准备工作

  • 最新刷机文件下载

        加菲猫大佬的刷机文件:https://github.com/lgs2007m/Actions-OpenWrt/releases/tag/Router-Flashing-Files

        我的网盘备份:https://www.kejizero.online/%e5%88%86%e4%ba%ab%e7%ab%99

        • SSH刷机工具

        Xshell: https://pan.lanzoui.com/b0f19ry9g 

        putty: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

        解锁SSH

        京东云AX6000百里没有软破解SSH,通过原厂系统升级官方放出的原生OP可获取SSH权限。
        原厂系统中升级官方原生OP:
        openwrt-re-cp-03-4.1.0.r4005-1287bf0122329d5c3acbb7198e04b1e4.bin
        注意:官方宣传升级原生OP会失去保修,请自行斟酌。

        升级系统重启完成后,使用SSH软件登录192.168.68.1,端口22,用户名root,没有密码。
        输入命令删除这两个环境变量:

        fw_setenv jdc_crc_version && fw_setenv jdc_opp_version

        原厂分区信息概述如下:

        1. 双分区结构:原厂使用了双分区,即两个系统分区:kernelrootfskernel2rootfs2。它们共享一个 rootfs_data 分区,大小为 50MB。
        2. 各分区大小
          • kernelkernel2 分区都是 16MB。
          • rootfsrootfs2 分区都是 50MB。
        3. 固件限制
          • 由于 kernel 分区的大小为 16MB,而固件中的 kernel 通常约占 3MB,因此该分区大小足够容纳固件的内核部分。
          • 然而,rootfs 分区的大小限制了固件的总大小,因此原厂双分区结构下刷固件的大小不能超过 kernel + rootfs 的总和,即 53MB。
        4. 分区表格式
          • 原厂使用旧版的 mt7986-emmc.json 来制作 GPT 分区表,因此在 blkid 命令的输出中,第一个分区会显示为 PMBR(保护MBR)分区。
          • 新版的 GPT 分区表(如在 RAX3000M eMMC、GL-MT6000 中使用)不会显示在 blkid 输出中,且使用新版的 JSON 来生成分区表。
        5. 设备号变化
          • 分区设备号在不同设备上可能有所不同。例如,在 RAX3000M eMMC 中,FIP 分区的设备号是 mmcblk0p3,而在百里设备上,FIP 分区的设备号则为 mmcblk0p4
        6. GPT分区表读取方式
          • 无论是旧版还是新版分区表,系统通过读取 PARTLABEL 来识别和读写分区,而 blkid 是否显示 GPT 分区及设备号的变化,不会影响实际使用。

        备份原厂分区

        如果你只关心备份原厂分区而不关心分区的详细信息,可以直接跳到备份原厂分区的部分。

        root@OpenWrt:~# blkid
        /dev/mmcblk0p1: PTTYPE="PMBR"
        /dev/mmcblk0p2: PARTLABEL="u-boot-env" PARTUUID="19a4763a-6b19-4a4b-a0c4-8cc34f4c2ab9"
        /dev/mmcblk0p3: PARTLABEL="factory" PARTUUID="8142c1b2-1697-41d9-b1bf-a88d76c7213f"
        /dev/mmcblk0p4: PARTLABEL="fip" PARTUUID="18de6587-4f17-4e08-a6c9-d9d3d424f4c5"
        /dev/mmcblk0p5: PARTLABEL="kernel" PARTUUID="971f7556-ef1a-44cd-8b28-0cf8100b9c7e"
        /dev/mmcblk0p6: TYPE="squashfs" PARTLABEL="rootfs" PARTUUID="309a3e76-270b-41b2-b5d5-ed8154e7542b"
        /dev/mmcblk0p7: PARTLABEL="kernel2" PARTUUID="9c8e460f-7160-4c25-a420-e7deeb10d5d3"
        /dev/mmcblk0p8: TYPE="squashfs" PARTLABEL="rootfs2" PARTUUID="508b8f82-164c-4898-8edc-adaa59438cd4"
        /dev/mmcblk0p9: LABEL="rootfs_data" UUID="ea5ae1d2-cdc2-40c9-bada-0a9c0d8f63a6" BLOCK_SIZE="1024" TYPE="ext4" PARTLABEL="rootfs_data" PARTUUID="dd18c072-adb3-412b-bf97-37617b01adf3"
        /dev/mmcblk0p10: UUID="4f3e32d7-cf18-40a9-a42d-0afa648c1513" BLOCK_SIZE="1024" TYPE="ext4" PARTLABEL="log" PARTUUID="2d18c070-adb6-412b-bf90-37617b01adf5"
        /dev/mmcblk0p11: UUID="fac0a627-0346-4883-bea5-f0aefccb31aa" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="plugin" PARTUUID="3d18c075-adb0-412b-bf92-37617b01adf6"
        /dev/mmcblk0p12: TYPE="swap" PARTLABEL="swap" PARTUUID="4d18c079-adb2-412b-bf93-37617b01adf7"
        /dev/mmcblk0p13: UUID="a10bd4dd-7f44-4760-a1e9-51a71442922a" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="storage" PARTUUID="5d18c072-adb3-412b-bf95-37617b01adf8"
        root@OpenWrt:~# sgdisk -p /dev/mmcblk0
        Warning! Main partition table overlaps the first partition by 34 blocks!
        You will need to delete this partition or resize it in another utility.
        Disk /dev/mmcblk0: 241664000 sectors, 115.2 GiB
        Sector size (logical/physical): 512/512 bytes
        Disk identifier (GUID): 2BD17853-102B-4500-AA1A-8A21D4D7984D
        Partition table holds up to 128 entries
        Main partition table begins at sector 2 and ends at sector 33
        First usable sector is 34, last usable sector is 240615424
        Partitions will be aligned on 1024-sector boundaries
        Total free space is 8158 sectors (4.0 MiB)
        
        Number  Start (sector)    End (sector)  Size       Code  Name
           2            8192            9215   512.0 KiB   8300  u-boot-env
           3            9216           13311   2.0 MiB     8300  factory
           4           13312           17407   2.0 MiB     8300  fip
           5           17408           50175   16.0 MiB    8300  kernel
           6           50176          152575   50.0 MiB    8300  rootfs
           7          152576          185343   16.0 MiB    8300  kernel2
           8          185344          287743   50.0 MiB    8300  rootfs2
           9          287744          390143   50.0 MiB    8300  rootfs_data
          10          390144          524287   65.5 MiB    8300  log
          11          524288         2621439   1024.0 MiB  8300  plugin
          12         2621440         4718591   1024.0 MiB  8300  swap
          13         4718592       240615424   112.5 GiB   8300  storage
        root@OpenWrt:~# lsblk
        NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
        mmcblk0      179:0    0 115.2G  0 disk 
        ├─mmcblk0p1  179:1    0    17K  0 part 
        ├─mmcblk0p2  179:2    0   512K  0 part 
        ├─mmcblk0p3  179:3    0     2M  0 part 
        ├─mmcblk0p4  179:4    0     2M  0 part 
        ├─mmcblk0p5  179:5    0    16M  0 part 
        ├─mmcblk0p6  179:6    0    50M  0 part 
        ├─mmcblk0p7  179:7    0    16M  0 part 
        ├─mmcblk0p8  259:0    0    50M  0 part /rom
        ├─mmcblk0p9  259:1    0    50M  0 part /overlay
        ├─mmcblk0p10 259:2    0  65.5M  0 part /log
        ├─mmcblk0p11 259:3    0     1G  0 part /opt
        ├─mmcblk0p12 259:4    0     1G  0 part [SWAP]
        └─mmcblk0p13 259:5    0 112.5G  0 part /mnt/mmcblk0p13
        mmcblk0boot0 179:8    0     4M  1 disk 
        mmcblk0boot1 179:16   0     4M  1 disk 

        备份原厂分区的步骤如下:

        1. 备份分区
          • 只需备份 GPT 分区信息到 mmcblk0p12 的 Swap 分区,mmcblk0p13 的 Storage 分区由于过大,所以不进行备份。
          • 由于 pluginswap 分区的大小均为 1GB,建议将它们备份到挂载点 /mnt/mmcblk0p13 中。然后,可以使用类似 WinSCP 的工具通过网络登录并下载备份的文件。
        2. 关键分区
          • bl2 位于 /dev/mmcblk0boot0
          • uboot 位于 FIP 分区。
        3. 全零空白文件
          • unpartitioned.bin 是一个全0的空白文件,用于后续将备份的分区按顺序合并成一个完整的 eMMC 镜像文件。该文件通常只有在更换 eMMC 时才需要使用,但还是建议将所有分区都备份以防万一。
        4. 备份命令提示
          • 为了方便执行多条命令,所有的命令应复制粘贴执行,最后使用 sync 命令确保文件写入完成。命令可以一起复制粘贴执行,不会遗漏任何步骤。执行完所有命令后,最后回车执行 sync 命令。

        注意:放在一起的命令全部复制粘贴执行,sync也一起复制,最后的时候回车执行sync即可,下同,不再赘述。
        这行sync命令主要是为了方便多行命令一起复制粘贴执行,不会遗漏上面的命令。

        dd if=/dev/mmcblk0boot0 bs=512 count=2048 of=/mnt/mmcblk0p13/mmcblk0boot0_bl2.bin conv=fsync
        dd if=/dev/mmcblk0p1 of=/mnt/mmcblk0p13/mmcblk0p1_PMBR.bin conv=fsync
        dd if=/dev/mmcblk0 bs=512 skip=34 count=8158 of=/mnt/mmcblk0p13/mmcblk0p1_unpartitioned.bin conv=fsync
        dd if=/dev/mmcblk0p2 of=/mnt/mmcblk0p13/mmcblk0p2_u-boot-env.bin conv=fsync
        dd if=/dev/mmcblk0p3 of=/mnt/mmcblk0p13/mmcblk0p3_factory.bin conv=fsync
        dd if=/dev/mmcblk0p4 of=/mnt/mmcblk0p13/mmcblk0p4_fip.bin conv=fsync
        dd if=/dev/mmcblk0p5 of=/mnt/mmcblk0p13/mmcblk0p5_kernel.bin conv=fsync
        dd if=/dev/mmcblk0p6 of=/mnt/mmcblk0p13/mmcblk0p6_rootfs.bin conv=fsync
        dd if=/dev/mmcblk0p7 of=/mnt/mmcblk0p13/mmcblk0p7_kernel2.bin conv=fsync
        dd if=/dev/mmcblk0p8 of=/mnt/mmcblk0p13/mmcblk0p8_rootfs2.bin conv=fsync
        dd if=/dev/mmcblk0p9 of=/mnt/mmcblk0p13/mmcblk0p9_rootfs_data.bin conv=fsync
        dd if=/dev/mmcblk0p10 of=/mnt/mmcblk0p13/mmcblk0p10_log.bin conv=fsync
        dd if=/dev/mmcblk0p11 of=/mnt/mmcblk0p13/mmcblk0p11_plugin.bin conv=fsync
        dd if=/dev/mmcblk0p12 of=/mnt/mmcblk0p13/mmcblk0p12_swap.bin conv=fsync
        sync

        耐心等待执行完成,最后一行sync回车执行即可,注意看最后一个swap分区是否备份完成。
        然后使用WinSCP之类的软件登录路由器,到/mnt/mmcblk0p13目录下载下来保存到电脑。
        WinScp软件登录路由器,协议SCP,IP 192.168.68.1,端口22,点击高级,高级站点设置-连接 去掉勾选“优化连接缓冲大小”,再点击登录。

        注:/mnt/mmcblk0p13里的aiecpluginD、jdc_docker文件夹里面是跑分的缓存数据。
        如果不大,也可自行压缩后备份,刷机后直接恢复到storage分区,这样回原厂跑分直接用这些数据,可以更快恢复跑分。
        太大就不建议备份,回原厂后重新缓存即可。

        刷写 BL2 和 UBOOT

        1. 关于 BL2 和 UBOOT
          • 百里设备的 bl2uboot 都启用了 Secure Boot 验证,因此在刷机时需要同时替换这两个部分所在的 FIP 分区。
          • 刷机时不能只替换 uboot,因为 bl2uboot 是紧密相关的,必须一起更新。
        2. 文件大小调整
          • 为了满足数据洁癖的需求,可以将编译得到的 bl2 二进制文件的尾部填充为 0,使其大小扩展至 256KB。
          • 同样地,将 fip 分区的尾部填充为 0,扩展到 2048KB。这样做的目的是确保刷写时文件能够直接覆盖已有的数据部分,实际上相当于清空分区再进行刷写,虽然这样会使得文件变得较大,但刷机过程会更为安全。
          • 如果不介意文件大小,也可以直接使用编译得到的原始文件进行刷写,正常情况下这样刷写也能成功。
        3. 上传并验证
          • bl2uboot 文件上传到路由器的 /tmp 目录。
          • 使用 SSH 登录到路由器,运行命令来验证上传的文件的 MD5 校验和,确保文件没有损坏或篡改。

        将bl2和uboot上传到路由器/tmp目录,SSH输入命令验证md5:

        md5sum /tmp/mt7986_jdcloud_re-cp-03*.bin

        加菲猫大佬2024.10.10版bl2、uboot的md5值是:

        root@OpenWrt:~# md5sum /tmp/mt7986_jdcloud_re-cp-03*.bin
        6c0d654a9dc261b769b472f1e3bb4df9  /tmp/mt7986_jdcloud_re-cp-03-bl2_20241010.bin
        053cb614b1309f5d04544fb3380548ed  /tmp/mt7986_jdcloud_re-cp-03-fip_legacy-and-fit_20241010.bin

        核对md5正常后,先输入下面命令切换到shell (ash):

        ash

        然后一起复制下面命令粘贴执行,刷写bl2和uboot:

        echo 0 > /sys/block/mmcblk0boot0/force_ro
        dd if=/tmp/mt7986_jdcloud_re-cp-03-bl2_20241010.bin of=/dev/mmcblk0boot0 conv=fsync
        echo 1 > /sys/block/mmcblk0boot0/force_ro
        dd if=/tmp/mt7986_jdcloud_re-cp-03-fip_legacy-and-fit_20241010.bin of=$(blkid -t PARTLABEL=fip -o device) conv=fsync
        sync

        最后一行sync回车执行,刷写完没有报错,则检查下分区的md5值,和我一样即可,不一样就重新刷,不能重启!!

        md5sum /dev/mmcblk0boot0 && md5sum $(blkid -t PARTLABEL=fip -o device)

        输出结果即可:

        root@OpenWrt:~# md5sum /dev/mmcblk0boot0 && md5sum $(blkid -t PARTLABEL=fip -o device)
        7dfc7a41871f6dcfd8fbcdc23706ee5c  /dev/mmcblk0boot0
        053cb614b1309f5d04544fb3380548ed  /dev/mmcblk0p4

        到这里bl2和uboot已经刷好了,不要重启,接着刷gpt分区表。

        注:如果是从ImmortalWrt天灵单分区分区表或OpenWrt、ImmortalWrt主线分区表刷uboot,这里验证fip分区的md5是不一样的。
        因为他们的分区表把原厂2M的fip分区扩大到了4M,我这个分区表还是保持fip为2M。
        可以临时用下面命令验证fip分区数据的md5,和上面一样即可:

        dd if=$(blkid -t PARTLABEL=fip -o device) bs=512 count=4096 | md5sum 

        后面再刷我的gpt分区表,fip分区会变为2M,重启新的分区表生效后,再验证分区的md5就会一样了。

        天灵和大雕的刷机命令是直接使用偏移量,因为fip分区偏移量不变,所以不用管设备号。
        上面刷uboot的命令自动找fip分区所在设备号,也不用你管设备号,可以直接用。
        更新uboot建议使用我教程的命令,或者直接进Uboot Web failsafe UI(简称uboot webui)里面更新即可。bl2一般不需要再更新了。

        刷写GPT分区

        安装 sgdisk 工具

        由于原生OpenWrt没有sgdisk,我们首先需要将其安装。你可以将sgdisk_1.0.6-1_aarch64_cortex-a53.ipk文件上传到 /tmp 目录,并通过SSH使用以下命令安装:

        opkg install -d root /tmp/sgdisk_1.0.6-1_aarch64_cortex-a53.ipk

        检查GPT分区表文件的MD5值

        在刷写分区表之前,验证你上传的GPT分区表文件的MD5是否正确,确保文件未损坏。使用以下命令进行验证:

        md5sum /tmp/jdcloud_re-cp-03_*gpt.bin
        
        root@OpenWrt:~# md5sum /tmp/jdcloud_re-cp-03_*gpt.bin
        823e50e29dd27b55ce11a3757e676da7  /tmp/jdcloud_re-cp-03_rootfs1024M_production1024M-gpt.bin
        2d57350e2f5da3a7c7fbc2b6a196a82f  /tmp/jdcloud_re-cp-03_rootfs256M_production256M-gpt.bin
        3abe28bfa7b6072b05059c6cdf292a6f  /tmp/jdcloud_re-cp-03_rootfs512M_production512M-gpt.bin

        你会得到一个MD5值,对比与预期的值是否一致。

        示例:

        root@OpenWrt:~# md5sum /tmp/jdcloud_re-cp-03_*gpt.bin
        823e50e29dd27b55ce11a3757e676da7  /tmp/jdcloud_re-cp-03_rootfs1024M_production1024M-gpt.bin
        2d57350e2f5da3a7c7fbc2b6a196a82f  /tmp/jdcloud_re-cp-03_rootfs256M_production256M-gpt.bin
        3abe28bfa7b6072b05059c6cdf292a6f  /tmp/jdcloud_re-cp-03_rootfs512M_production512M-gpt.bin

        刷写GPT分区表

        第1条dd命令是写入gpt分区表文件到/dev/mmcblk0的前34个扇区
        第2条sgdisk命令是用未分配空间新建storage分区,-1G代表末尾的1G空间留白,可自行调整
        第3条sync命令主要是为了方便多行命令一起复制粘贴执行,不会遗漏上面的命令
        接着一起复制下面3条命令,一起粘贴执行:

        dd if=/tmp/jdcloud_re-cp-03_rootfs512M_production512M-gpt.bin of=/dev/mmcblk0 bs=512 count=34 conv=fsync
        sgdisk -e -n 0:0:-1G -c 0:storage -t 0:0FC63DAF-8483-4772-8E79-3D69D8477DE4 -u 0:5D18C072-ADB3-412B-BF95-37617B01ADF8 -p /dev/mmcblk0
        sync

        最后一行sync回车执行,你会看到如下输出:

        root@OpenWrt:~# dd if=/tmp/jdcloud_re-cp-03_rootfs512M_production512M-gpt.bin of=/dev/mmcblk0 bs=512 count=34 conv=fsync
        34+0 records in
        34+0 records out
        root@OpenWrt:~# sgdisk -e -n 0:0:-1G -c 0:storage -t 0:0FC63DAF-8483-4772-8E79-3D69D8477DE4 -u 0:5D18C072-ADB3-412B-BF95-37617B01ADF8 -p /dev/mmcblk0
        Setting name!
        partNum is 9
        Disk /dev/mmcblk0: 241664000 sectors, 115.2 GiB
        Sector size (logical/physical): 512/512 bytes
        Disk identifier (GUID): 2BD17853-102B-4500-AA1A-8A21D4D7984D
        Partition table holds up to 128 entries
        Main partition table begins at sector 2 and ends at sector 33
        First usable sector is 34, last usable sector is 241663966
        Partitions will be aligned on 1024-sector boundaries
        Total free space is 2105310 sectors (1.0 GiB)
        
        Number  Start (sector)    End (sector)  Size       Code  Name
           1            8192            9215   512.0 KiB   8300  u-boot-env
           2            9216           13311   2.0 MiB     8300  factory
           3           13312           17407   2.0 MiB     8300  fip
           4           17408           50175   16.0 MiB    8300  kernel
           5           50176         1098751   512.0 MiB   8300  rootfs
           6         1098752         2147327   512.0 MiB   FFFF  production
           7         2147328         2281471   65.5 MiB    8300  log
           8         2281472         4378623   1024.0 MiB  8300  plugin
           9         4378624         6475775   1024.0 MiB  8300  swap
          10         6475776       239566814   111.1 GiB   8300  storage
        Warning: The kernel is still using the old partition table.
        The new table will be used at the next reboot or after you
        run partprobe(8) or kpartx(8)
        The operation has completed successfully.
        root@OpenWrt:~# sync
        root@OpenWrt:~# 

        dd写入没有报错,sgdisk最后输出successfully即可。如果分区表明显不一样或有错误则及时排错,重新刷。
        检查第5、6分区rootfs、production是分区表设置的大小,比如rootfs/production512M的分区表rootfs/production就是512MB。
        检查第9分区storage大小接近整个eMMC大小,比如128G eMMC,storage分区有110GB左右。

        建议此时备份下载修改后的分区表,以后有问题进不了系统,可以直接uboot刷这个分区表。
        当然重刷分区表后再新建分区也行,一样的。

        dd if=/dev/mmcblk0 bs=512 count=34 of=/tmp/mmcblk0_GPT_sgdisk.bin

        都没有问题可以断电,按reset上电进uboot刷固件了。

        ##【刷分区表的一点小提示】##
        不建议用diskman磁盘管理修改分区,可能会导致系统不能启动。建议用fdisk、gdisk之类的工具修改分区。
        如果不慎修改后系统不能启动,可以进入uboot,浏览器输入 http://192.168.1.1/gpt.html 重新刷正常的gpt分区表即可。

        如果在uboot或系统中更换了其他分区表,但又不需要新建分区,这种情况建议在系统中使用fdisk或者sgdisk(一般需要先安装)单独保存下分区表,这样在diskman那里显示才正确:
        例如系统中更换gpt分区表:

        dd if=/tmp/gpt.bin of=/dev/mmcblk0 bs=512 count=34 conv=fsync

        则建议保存下分区表:

        echo -e 'w' | fdisk /dev/mmcblk0
        sgdisk -e /dev/mmcblk0

        关于分区表不包含最后那个大分区的原因

        gpt分区表的最大扇区数不能大于eMMC的物理最大扇区数,小于等于则没问题。比如128G的eMMC刷64G的分区表可以,刷256G的分区表会出错。
        mt798x eMMC机子的bl2在boot0硬件分区,不受userdata硬件分区的gpt分区表影响,即使gpt坏了也可以启动uboot,所以比较抗揍。
        比如百里测试刷最大扇区数大于eMMC扇区数的分区表也能启动uboot,只是固件启动会报错,可以进uboot重新刷正常的分区表。
        不过高通ipq60xx eMMC机子SBL是在userdata硬件分区中由gpt分区表划分出来的第一个软件分区,会受到gpt分区表的影响。
        比如京东云AX1800 Pro亚瑟测试直接刷最大扇区数大于eMMC扇区数的分区表会砖,需要USB救砖。

        同时如果最后一个大的分区超过了eMMC的扇区数,fdisk、parted、gdisk这些工具并不能直接修复,仍然需要删除新建。

        基于这两个原因,加菲猫大佬改的分区表都采用天灵大佬的gpt分区表的做法,不保留最后一个最大的分区。
        这样的分区表只包含前面的小分区,扇区总数也不会超过4G,所以适用所有大于4G的eMMC。
        刷好我改分区表后,使用sgdisk用未分配空间新建一个分区,并还原分区的type code和UUID,这样分区和原厂分区是完全一样的。

        © 版权声明
        THE END
        喜欢就支持一下吧
        点赞7 分享
        评论 共1条

        请登录后发表评论