【问题标题】:How android root(/) mount system partition on /system with 'mount' program on system partition?android root(/) 如何使用系统分区上的“挂载”程序在 /system 上挂载系统分区?
【发布时间】:2013-11-01 05:02:47
【问题描述】:

正如我们所知,在 Android 启动期间的 init 进程启动阶段,它将完成文件系统的填充。 Android 使用 ramdisk 作为 root('/'),​​上面有一些不太有用的东西,但几乎所有的二进制程序和库都放在一个名为 'system' 的分区中,该分区将由 init 挂载在 '/system' 目录中。但我很好奇“挂载”程序本身驻留在系统分区的“bin”目录中,因此,/system 上的“挂载”系统分区需要“/system/bin/mount”首先工作!怎么做?这似乎是一个先有鸡还是先有蛋的问题。 附言。我只发现'/'下的'sbin'目录只包含adbd和uevent两个程序。

【问题讨论】:

  • 请尝试改写您的问题标题 - 这对其他读者来说没有意义,并尝试格式化您的问题文本,以便您的实际问题脱颖而出。
  • 我认为initrd中有mount的副本。
  • 谢谢。我不是以英语为母语的人,这是我第一次使用 stackoverflow 问技术问题,对不起我的愚蠢。但我想我已经知道答案了,挂载/system、/cache、/data分区的是内核,因为内核已经将所有这些地址硬编码到MTD_PARTITION表中,所以内核知道如何挂载它们,而不是init进程来做它

标签: android linux kernel boot mount


【解决方案1】:

让我重新表述你的问题:

  • 为了挂载 /system 分区,我们首先需要“mount”命令。然而,大多数命令实用程序(二进制或符号链接)都驻留在尚未安装的 /system 分区中

我的回答:

  • 尽管许多 init 的命令类似于从 Toolbox 或其他地方借来的命令行等效命令,但 init 不会尝试向命令行发出命令。 init 实际上包含大量命令作为其词典的一部分。

【讨论】:

  • 非常感谢,你完全理解我。在我指出 mount 实际上是操作系统提供的系统调用 之后,我认识到我的愚蠢
猜你喜欢
  • 2018-02-27
  • 2017-01-15
  • 2019-07-22
  • 1970-01-01
  • 2018-08-26
  • 1970-01-01
  • 1970-01-01
  • 2015-05-03
  • 2011-07-03
相关资源
最近更新 更多