我正在开发一个基于Linux ( IoT Yocto )的IoT边缘设备,我需要安装一个USB。
Linux版本:
root@7426a4ffc838:/# uname -a
Linux 7426a4ffc838 4.9.80-rt62 #1 SMP PREEMPT RT Thu May 14 17:11:08 UTC 2020 armv7l GNU/Linux因为这个设备没有外壳(只有网页),所以我使用一个停靠容器来安装USB驱动器。
为了访问硬件,我的容器以特权模式运行。
如果运行命令"lsblk“,将得到以下输出:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 363.6M 1 loop
sda 8:0 1 14.8G 0 disk
`-sda1 8:1 1 14.8G 0 part
mmcblk0 179:0 0 7.4G 0 disk
|-mmcblk0p1 179:1 61.1M 0 part
|-mmcblk0p2 179:2 0 61.1M 0 part
`-mmcblk0p3 179:3 0 7.3G 0 part 我的USB驱动器叫"sda“。
因此,如果我试图使用命令mount /sda/sda1 /mnt/usb/挂载USB,则会得到以下错误:
mount: special device /sda/sda1 does not exist有办法安装这个驱动器吗?
提前谢谢你的帮助。
费德里科
发布于 2022-02-28 23:05:11
即使lsblk可能发现设备(通过/sys/),mount仍然需要一个有效的块设备来挂载。如果没有创建它,或者是因为嵌入式设备没有运行像udev这样的工具,或者因为容器的环境没有像主机那样提供一个人口充足的/dev/目录,那么仍然可以手动创建它。
应该用lsblk -o NAME,MAJ:MIN的输出验证块的大调/小调,让我们假设相关部分显示:
# lsblk -o NAME,MAJ:MIN
NAME MAJ:MIN
[...]
sda 8:0
`-sda1 8:1
[...]然后,可以使用前面的信息创建所需的块设备:
mknod /dev/sda1 b 8 1现在应该能够安装以下设备:
mount /dev/sda1 /mnt由于它是嵌入式的,如果这个分区上的文件系统的驱动程序没有内置在内核中,并且由于某种原因它不是自动加载的,那么可能还会有更多的问题。因此,如果第一次尝试不起作用,请确保模块显式加载(例如:modprobe vfat)或内置(重新编译内核.)。有些文件系统并不容易使用(例如:exfat在Linux4.9中没有直接的内核支持,并且需要FUSE)。
发布于 2022-02-28 16:27:43
没有像/sda这样的目录。
您实际上想要做的是挂载/dev/sda1:
mount /dev/sda1 /mnt/usb/
https://unix.stackexchange.com/questions/692436
复制相似问题