我有一个运行 Angstrom 的 Atmel SAM9X 系统。我正在尝试创建一个恢复分区,以便当用户在启动过程中按住按钮时,恢复分区就会启动。
我修改了引导程序,因此当启动时按住按钮时,会加载备用 Linux 内核。我想要的是从恢复引导分区而不是正常的主分区加载 Linux 的备用内核。
这可能吗?或者我可以在不使用两个内核的情况下加载恢复分区吗?
我想要这样做的原因是,如果主可启动分区损坏,恢复分区会将自身复制到主分区(类似于具有恢复分区的戴尔或惠普 Windows 机器),并且主可启动分区将被恢复。
编辑:
贾尔斯的建议做到了。引导程序正在设置内核命令行参数,我刚刚添加了root=/dev/mmcblk0p3
(从第三个 SD 分区引导),它从所需的分区引导!
答案1
内核包含在编译时确定的默认根分区设置(您可以使用命令在二进制映像中更改它rdev
)。您可以在内核命令行上传递一个参数,以在引导时覆盖此默认值,例如root=/dev/mmcblk9p42
从 MMC 设备 9 分区 42 而不是默认值引导。命令行由引导加载程序传递到内核,因此您需要更改引导加载程序配置。
如果有 initrd 或 initramfs,它可能会覆盖引导加载程序编译或传递的根分区。