在我现在使用的发行版 Arch Linux ARM 上,Linux 是在没有初始 RAM 磁盘的情况下启动的,这意味着内核会完成挂载根文件系统的所有工作。该系统安装在 SD 卡上,上面有一个脚本,需要确定它所在文件系统的设备节点。这个设备节点可以根据我如何启动设备而改变(例如,我将它附加到另一个已经在运行的设备上)。
我能够使用df -k --output=target ${0} | sed "1d". 为了确定源设备,我运行df -k --output=source ${0} | sed "1d". 如果我已经启动到 Arch Linux,最后一个命令的结果会吐出/dev/root,它不存在。当然,在某些系统上,udev 会创建一个指向/dev/root真实根设备的符号链接,但我的不会这样做。我可以查看/proc/cmdline但在内核正常运行期间保持不变的内容,因此这意味着它不可靠。
当我得到 时/dev/root,如何确定它所代表的真正底层块设备?
小智 7
这里的评论的答案非常简单。只需致电:
findmnt -n -o SOURCE /
Run Code Online (Sandbox Code Playgroud)
前提是findmnt存在...
小智 5
该mount命令将显示它:
mount | sed -n 's|^/dev/\(.*\) on / .*|\1|p'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4921 次 |
| 最近记录: |