【问题标题】:How to mount a ramdisk in Android before it starts?如何在启动之前在 Android 中安装 ramdisk?
【发布时间】:2012-10-05 01:23:30
【问题描述】:

是否可以在 Android 框架启动之前在 Android 中挂载 ramdisk,但在底层 Linux 内核启动之后?如果是这样,我应该使用什么命令?

谢谢!

【问题讨论】:

  • 你能解释一下你为什么要这样做吗?除非您正在制作自己的内核和启动脚本并刷新 inage,否则您不能这样做。
  • 现有的文件系统挂载机制,即/etc/fstab有什么问题?见linux.die.net/man/5/fstab。顺便说一句,“ramdisk”基本上已被 ramfstmpfs 取代。见kernel.org/doc/Documentation/filesystems/…

标签: android linux linux-kernel kernel ramdisk


【解决方案1】:

根据我阅读的一些参考书,Android系统的启动主要分为以下几个步骤:

  1. CPU 读取通常指向某个引导加载程序的硬编码地址
  2. 引导加载程序初始化 RAM,将基本硬件置于静止状态,加载内核和 RAM 磁盘,然后跳转到内核。
  3. start_kernel() 初始化子系统并继续调用内置驱动程序的 init 函数。
  4. 内核挂载它的根系统(来自 ramdisk.img)。
  5. 然后调用init.rc来设置环境变量,如系统路径、挂载其他文件系统、启动本机守护进程等。

现在,回答您的问题:“是否可以在 Android 框架启动之前在 Android 中安装 ramdisk,但在底层 Linux 内核启动之后?” -- 我认为这正是 android 所做的。

【讨论】:

    【解决方案2】:

    您必须编写从 init.rc 文件调用的 shell 脚本。另一种方法是编写一个从 init.rc 作为守护进程启动的 C 程序。

    init 是 linux 几乎启动的中间位置,而 android frameowrk 即将开始启动。

    【讨论】:

      猜你喜欢
      • 2016-06-22
      • 1970-01-01
      • 2011-01-08
      • 2023-02-05
      • 2014-10-04
      • 1970-01-01
      • 2011-08-11
      • 1970-01-01
      相关资源
      最近更新 更多