我正在尝试研究 FAT32 的内部结构,为此我正在尝试创建一个 FAT32 映像,挂载它并在命令行上执行一些文件操作。根据这里的问题,我知道没有办法使用 sudo 来安装图像。我仍然想知道为什么我最终需要 sudo 才能在挂载点内进行文件操作。下面是一个小的 bash 脚本,它演示了哪些有效,哪些无效。有人可以告诉我如何在没有 root 的情况下执行此操作吗?
DISK=/tmp/disk1.raw
MOUNTPOINT=/tmp/mount1
SIZE=512M
rm -f $DISK
rm -rf $MOUNTPOINT
# create disk image
qemu-img create -f raw $DISK $SIZE
# format disk image
mkfs.fat -v -F 32 $DISK
# make mountpoint
mkdir -p $MOUNTPOINT
# can't be helped
sudo mount -o loop -t msdos $DISK $MOUNTPOINT
# should work but doesn't
mkdir -p $MOUNTPOINT/tmp/
# actually works
sudo mkdir -p $MOUNTPOINT/tmp/
# should work but doesn't
dd of=$MOUNTPOINT/tmp/ticket2.txt if=/dev/zero bs=512 count=9
# actually works
sudo dd of=$MOUNTPOINT/tmp/ticket2.txt if=/dev/zero bs=512 count=9
ls -lR $MOUNTPOINT
sudo umount $MOUNTPOINT