首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安装:不存在特殊设备sda/sda 1

安装:不存在特殊设备sda/sda 1
EN

Unix & Linux用户
提问于 2022-02-28 16:24:46
回答 2查看 9.6K关注 0票数 3

我正在开发一个基于Linux ( IoT Yocto )的IoT边缘设备,我需要安装一个USB。

Linux版本:

代码语言:javascript
复制
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“,将得到以下输出:

代码语言:javascript
复制
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,则会得到以下错误:

代码语言:javascript
复制
mount: special device /sda/sda1 does not exist

有办法安装这个驱动器吗?

提前谢谢你的帮助。

费德里科

EN

回答 2

Unix & Linux用户

发布于 2022-02-28 23:05:11

即使lsblk可能发现设备(通过/sys/),mount仍然需要一个有效的块设备来挂载。如果没有创建它,或者是因为嵌入式设备没有运行像udev这样的工具,或者因为容器的环境没有像主机那样提供一个人口充足的/dev/目录,那么仍然可以手动创建它。

应该用lsblk -o NAME,MAJ:MIN的输出验证块的大调/小调,让我们假设相关部分显示:

代码语言:javascript
复制
# lsblk -o NAME,MAJ:MIN
NAME                MAJ:MIN
[...]
sda                   8:0  
`-sda1                8:1  
[...]

然后,可以使用前面的信息创建所需的块设备:

代码语言:javascript
复制
mknod /dev/sda1 b 8 1

现在应该能够安装以下设备:

代码语言:javascript
复制
mount /dev/sda1 /mnt

由于它是嵌入式的,如果这个分区上的文件系统的驱动程序没有内置在内核中,并且由于某种原因它不是自动加载的,那么可能还会有更多的问题。因此,如果第一次尝试不起作用,请确保模块显式加载(例如:modprobe vfat)或内置(重新编译内核.)。有些文件系统并不容易使用(例如:exfat在Linux4.9中没有直接的内核支持,并且需要FUSE)。

票数 4
EN

Unix & Linux用户

发布于 2022-02-28 16:27:43

没有像/sda这样的目录。

您实际上想要做的是挂载/dev/sda1

mount /dev/sda1 /mnt/usb/

票数 3
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/692436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档