我正在嵌入式 Linux 操作系统上进行开发(FriendlyWRT 源自https://openwrt.org/)并且我们需要一个近乎完全验证的恢复策略,以防 OTA 更新不起作用或损坏设备,因此我们可以恢复到嵌入式设备上最后一个工作操作系统映像(工厂映像)。
所以我决定使用“双副本”策略,参见(https://mkrak.org/2018/01/10/updating-embedded-linux-devices-part1/)。
我们的操作系统运行在类似于 RasperryPi 的 SD 上。
我将 64 GB SD 卡分为 3 个分区:
分区 1 - 活动操作系统 (~ 29 Gb)
分区 2 - 非活动操作系统(将加载未来更新操作系统)(~ 29 Gb)
分区 3 - 数据(共享持久性非操作系统相关区域)。 (~2GB)
所有分区都是 FAT32。
我使用第3方工具(EaseUS Partition Master 15.0)创建了3个分区,并且我能够使用“Win32 Disk Imager”查看所有分区3个分区,我还使用“Win32 Disk Imager”将OpenWRT刻录到第1个分区,请参见下面的快照:
当我通过 Wifi SSH 到 linux 盒子并运行时 fdisk -l
,我明白了:
root@FriendlyWrt:/# fdisk -l
Disk /dev/ram0: 4 MiB, 4194304 bytes, 8192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram1: 4 MiB, 4194304 bytes, 8192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram2: 4 MiB, 4194304 bytes, 8192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram3: 4 MiB, 4194304 bytes, 8192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram4: 4 MiB, 4194304 bytes, 8192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram5: 4 MiB, 4194304 bytes, 8192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram6: 4 MiB, 4194304 bytes, 8192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram7: 4 MiB, 4194304 bytes, 8192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/mmcblk0: 59.49 GiB, 63864569856 bytes, 124735488 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: 0x7fe1e74c
Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p1 196608 1515519 1318912 644M 83 Linux
/dev/mmcblk0p2 1515520 31116287 29600768 14.1G 83 Linux
fdisk 显示一堆 4096 字节的小分区,然后是整个分区 磁盘 /dev/mmcblk0: 59.49 GiB,并且/dev/mmcblk0p1 &/dev/mmcblk0p2 是操作系统所在的位置,但是我希望磁盘 /dev/mmcblk0: 59.49 GiB 被分为 3 个部分,而不是 1 个巨大的 59.49 GiB。
我需要一种方法:
1)我需要一种方法来查看和访问其他 3 个分区。
2) 最终目标是在操作系统更新时将引导顺序从分区 1 更改为分区 2,或者在更新错误时从分区 2 恢复到分区 1。
我还尝试使用lsblk
或parted
或blkid
查看分区,但是这些程序在操作系统(FriendlyWRT)上不可用,并且fdisk
不显示其他分区。
我知道这些分区可能没有被安装,但是我怎样才能安装我看不到的东西???
感谢并感谢一百万!