如何从当前系统中卸载一个已挂载的文件系统? A. 从/etc/fstab 文件中删除此文件系统项 B. umount C. mount –u D. dismount
时间: 2024-02-12 16:04:44 浏览: 175
B. umount
要从当前系统中卸载一个已挂载的文件系统,可以使用umount命令。umount命令用于卸载(解除挂载)已经挂载的文件系统,以便在不影响其他文件系统的情况下卸载该文件系统。具体来说,可以使用以下命令卸载已经挂载的文件系统:
```
umount /mnt/filesystem
```
其中,`/mnt/filesystem`是要卸载的文件系统的挂载点。执行此命令后,文件系统将从系统中卸载,并且该挂载点将不再可用。
其他选项的解释如下:
- A.从 `/etc/fstab` 文件中删除此文件系统项可能会导致在下一次系统启动时不再挂载该文件系统,但不能用于卸载已经挂载的文件系统。
- C. `mount –u` 命令用于重新挂载文件系统并更新其选项,而不是卸载文件系统。
- D. `dismount` 命令在Linux系统中不存在,因此不正确。
相关问题
如何装载(mount)上在 /etc/fstab 文件中定义的所有文件系统? 题目28选择一项: a. mount -a b. mount c. mount /etc/fstab d. mount /mnt/*
装载(mount)上在 `/etc/fstab` 文件中定义的所有文件系统,可以使用 `mount -a` 命令。这个命令会读取 `fstab` 文件中的每一行,尝试将每个挂载点对应的文件系统装载到相应的目录。`fstab` 文件通常是系统启动时自动加载的,但如果需要一次性手动装载所有,就应该使用 `-a` 参数。
所以正确答案是:
a. mount -a
第一阶段挂载访问的fstab文件是/vendor/etc/fstab.*中的fstab的文件吗
是的,**在 Android 启动的第一阶段(early init 阶段)**,`init` 进程确实会尝试从 `/vendor/etc/fstab.*` 中加载挂载配置文件,**但前提是 `/vendor` 分区已经挂载或者 fstab 文件存在于 ramdisk 中**。
这个问题涉及到 Android 启动流程中 **第一阶段挂载(First Stage Mount)** 的机制,我们来详细解析。
---
## ✅ 答案简述
> 在 **第一阶段挂载(First Stage Init)** 中,`init` 会尝试加载 `/vendor/etc/fstab.<hardware>` 文件来挂载 `/system`、`/vendor` 等关键分区。但为了读取这个文件,**必须先挂载 `/vendor` 分区** 或者 **fstab 文件已经存在于 ramdisk 中**。
---
## 🧠 Android 启动流程中的挂载阶段
Android 启动分为两个阶段:
### 1. **First Stage Init(第一阶段 init)**
- 执行 `/init` 程序(位于 ramdisk)
- 挂载关键分区(如 `/system`、`/vendor`)
- 读取 `fstab` 文件来决定如何挂载这些分区
- 最终会 `switch_root` 到 `/system` 上
### 2. **Second Stage Init(第二阶段 init)**
- `/system/bin/init` 被执行
- 继续初始化系统服务、启动 zygote、launcher 等
---
## 📁 第一阶段挂载时如何加载 fstab 文件?
### ✅ 第一阶段 init 会尝试加载的 fstab 文件路径如下:
```bash
/fstab.<hardware>
```
其中:
- `<hardware>` 是通过 `androidboot.hardware=xxx` 从内核命令行传入的值(如 `mt6877`)
例如:
```bash
/fstab.mt6877
```
这个文件 **通常被复制到 ramdisk 中**,而不是 `/vendor/etc/fstab.*`,因为此时 `/vendor` 还未挂载。
---
## 🧩 那 `/vendor/etc/fstab.*` 是什么时候被使用的?
- 在 **第二阶段 init** 中,`/system/bin/init` 会重新加载 `/vendor/etc/fstab.*` 来验证挂载是否正确。
- 在 OTA 升级、postinstall 阶段,系统也会使用 `/vendor/etc/fstab.*`。
---
## 📦 fstab 文件是如何出现在 ramdisk 中的?
在构建 Android 系统镜像时,会根据:
- `/system/etc/recovery.fstab`
- `/vendor/etc/fstab.<hardware>`
- `BoardConfig.mk` 中的配置
生成一个 `fstab` 文件并放入 **ramdisk** 中,路径为:
```
/fstab.<hardware>
```
你可以通过解包 `boot.img` 查看 ramdisk 中的 `fstab.*` 文件。
---
## 🔧 示例:查看 ramdisk 中的 fstab 文件
1. 解包 `boot.img`:
```bash
git clone https://github.com/csk003/unpackbootimg
unpackbootimg -i boot.img -o bootimg_out/
cd bootimg_out
gunzip -c bootimg_out/ramdisk.img | cpio -i
```
2. 查看 fstab 文件:
```bash
ls -l fstab.*
```
你会看到类似:
```
fstab.mt6877
```
---
## ✅ 小结
| 问题 | 回答 |
|------|------|
| 第一阶段挂载使用的 fstab 是 `/vendor/etc/fstab.*` 吗? | 不是,**第一阶段使用的 fstab 是放在 ramdisk 中的 `/fstab.<hardware>`** |
| `/vendor/etc/fstab.*` 是谁使用的? | **第二阶段 init、OTA、postinstall 等阶段使用** |
| ramdisk 中的 fstab 是怎么来的? | 由 AOSP 构建系统生成,通常来自 `/vendor/etc/fstab.*` |
| 为什么不能直接访问 `/vendor/etc/fstab.*`? | 因为 `/vendor` 分区在第一阶段尚未挂载 |
---
###
阅读全文
相关推荐

















