Pocket Beagle 使用 debian9.9,在我的 Windows 机器上显示为大容量存储设备。我找到了大容量存储设备使用的备份文件(我将其称为驱动器)。我想安装此驱动器并将文件从中复制到主目录。不幸的是,当我安装驱动器时,我发现在 MSD 模式下放在驱动器上的所有内容都消失了。可能出什么问题了?
Pocket Beagle 使用配置为以太网的 g_multi 小工具、串行端口和大容量存储设备。该小工具在启动时通过以下脚本进行配置:/opt/scripts/boot/am335x_evm.sh
。我相信我应该能够在配置 g_multi 小工具之前访问该驱动器,因为当时该驱动器尚未使用。我设置了以下实验:
我创建了一个 FAT32 分区/root/data/backing_file
并将符号链接指向/var/local/bb_usb_mass_storage.img
它。
然后,我可以插入开发板,在驱动器上创建一个文件,然后在重新启动设备时查看该文件。但是,当我将以下代码放在 的开头时am335x_evm.sh
,驱动器似乎被擦除了。
losetup -o 1048576 /dev/loop0 /root/data/backing_file
mkdosfs -F 32 /dev/loop0
mount -t vfat /dev/loop0 /mnt/loop
ls /mnt/loop >> /var/log/messages
umount /dev/loop0
losetup -d /dev/loop0
答案1
事实证明,我需要创建后备存储,如下所示:
losetup -o 1048576 /dev/loop0 /root/data/backing_file
mkdosfs -F 32 /dev/loop0 # note: only do this once!
mount -t vfat /dev/loop0 /mnt/loop
#put something in /mnt/loop
umount /dev/loop0
losetup -d /dev/loop0
然后我需要像这样访问后备存储:
losetup -o 1048576 /dev/loop0 /root/data/backing_file
mount -t vfat /dev/loop0 /mnt/loop
# take something from /mnt/loop
umount /dev/loop0
losetup -d /dev/loop0
我需要为后备存储创建一个分区表,并在该分区上创建另一个分区作为存储。相反,每次我尝试通过调用 来访问它时,我都会删除我的“存储分区” mkdosfs
。