问题

问题

我正在开发一个小型“信息亭”应用程序,运行在 BeagleBone Black 板上的 Debian10 上,该板只有一个 USB 端口。我在 fstab 文件中写了一行,自动将 /dev/sda1 挂载到 /media/usb 中,我的应用程序“轮询”最后一个目录以查看是否有存储棒,然后查看是否有要读取或写入的数据。

我偶然发现了一个没有自动安装的 USB 盘,但将其插入 Windows PC 后显示其中有有效数据。所以我开始查看问题出在哪里,现在我非常困惑。以下是摘要:

  • 在 BBB 上,USB 驱动器显示为 /dev/sda,但没有分区 sda1
  • 如果插入装有 GNome 的 Debian10 PC,它将自动安装并被视为普通驱动器
  • Windows 磁盘管理器将其视为完全正常的驱动器
  • 主人告诉我,USB 驱动器是在 Windows 10 PC 上格式化的,在弹出的窗口中回答“是”,提示驱动器无法读取,需要格式化(因此,不使用通常的“格式化”对话框)

因此我尝试从 Debian 查看它,结果如下:

fdisk -l /dev/sdb

Disk /dev/sdb: 14,7 GiB, 15728640000 bytes, 30720000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x0dff6f63

Dispositivo Avvio      Start       Fine   Settori   Size Id Tipo
/dev/sdb1         1635000430 2179175648 544175219 259,5G 72 sconosciuto
/dev/sdb2         1918986614 1919645402    658789 321,7M 72 sconosciuto
/dev/sdb4           28049408   28049850       443 221,5K  0 Vuoto

Partition table entries are not in disk order.

lsblk /dev/sdb -fs

NAME FSTYPE LABEL    UUID                                 MOUNTPOINT
sdb  vfat   ONLY SDA E2CF-E64D                            /media/fc/ONLY SDA

lsblk /dev/sdb -O

NAME KNAME MAJ:MIN FSTYPE MOUNTPOINT         LABEL    UUID                                 PARTTYPE PARTLABEL PARTUUID PARTFLAGS  RA RO RM HOTPLUG MODEL            SERIAL            SIZE STATE   OWNER GROUP MODE       ALIGNMENT MIN-IO OPT-IO PHY-SEC LOG-SEC ROTA SCHED RQ-SIZE TYPE DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO WSAME WWN RAND PKNAME HCTL       TRAN SUBSYSTEMS          REV VENDOR
sdb  sdb     8:16  vfat   /media/fc/ONLY SDA ONLY SDA E2CF-E64D                                                                  128  0  1       1 USB Flash Drive  54136B750AFD1FBC 14,7G running root  disk  brw-rw----         0    512      0     512     512    1 cfq       128 disk        0        0B       0B         0    0B        1        2:0:0:0    usb  block:scsi:usb:pci 2.00 Lexar   

parted /dev/sdb 打印

Model: Lexar USB Flash Drive (scsi)
Disk /dev/sdb: 15,7GB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Disk Flags: 

Number  Start  End     Size    File system  Flags
 1      0,00B  15,7GB  15,7GB  fat32

sudo 文件-s /dev/sdb

/dev/sdb: DOS/MBR boot sector, code offset 0x58+2, OEM-ID "MSDOS5.0", sectors/cluster 16, reserved sectors 2798, Media descriptor 0xf8, sectors/track 63, heads 255, sectors 30720000 (volumes > 32 MB) , FAT (32 bit), sectors/FAT 14985, reserved 0x1, serial number 0xe2cfe64d, unlabeled

(在 Debian 10 PC 上)

挂载/dev/sdb

/dev/sdb on /media/fc/ONLY SDA type vfat (rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks2)

问题

我怎样才能自动安装这样的 USB 驱动器?

我的理解是我应该挂载分区(例如sda1) 首先(因为我可以“覆盖”它们,如果我挂载并写入星展银行),然后仅当没有找到分区时才使用“超级软盘”(但我应该检查其中是否有文件系统吗?)如何使这个逻辑自动工作?

(我想研究一下 Debian PC,但我太菜了,不知道该研究什么)

如果有人在回答问题的同时能告诉我这里发生了什么,那将是一个很好的学习(而且如果我应该将这样的驱动器视为有效的驱动器,就像我的 Debian PC 似乎做的那样)

相关内容