树莓派 FAT32格式的U盘更改属性或者组提示没有权限

问题描述

树莓派SD卡内存有限,打算把mysql的data 目录迁移到U盘上来。将U盘(fat32格式)挂载到/data目录下

1
2
3
4
5
sudo mkdir /data  
sudo mount /dev/sda1 /data 
sudo mkdir /data/db
#mysql的data目录要求用户/用户组必须是mysql
sudo chown mysql:mysql /data/db

执行到这,问题来了

1
chown: changing ownership of `/data/db': Operation not permitted

有点懵,为啥说我没权限操作,sudo了啊,百度(这是一个错误的决定),谷歌(然并卵),找了几个试了下都不行,比如:当前不是root用户,su 到root 用户下chown,一个鬼样。

注意,chown 或者 chmod 都一样,即使执行成功,但是也是没效果的

四处碰壁

df -h 了下,惊讶的发现/data的用户,用户组是pi,顺着这个思路又去谷歌了,这回,终于找回点有用的命令来,虽然结果没用,至少学到了

1
2
#把U盘挂载以root 用户root 用户组挂载到data 下
sudo mount -o uid=root,gid=root /dev/sda1 /data

恩,不出意外的没生效。继续谷歌。

Add the following to /etc/fstab:

1
2
> /dev/sda1 /data vfat rw,umask=000 0 0
>

稍微解释下,vfat U盘的fat32格式,rw 读写权限,umask 用户以及用户组。

重新挂载,然后df -h。泪牛满面,😭,神奇的用户组终于变成root了。激动的我赶紧chown,更改db目录用户组。

1
chown: changing ownership of `/data/db': Operation not permitted

。。。

还是不好使,咋破?umask 换成mysql的用户组?感觉怪怪的,没这么尝试。😭

寻寻觅觅,看到有人提到nfts 或者fat32 读写有问题,当然,跟我这搭不上边。我这是权限问题。😄 ,但突然想到一点。

/etc/fstab:

1
2
3
proc            /proc           proc    defaults          0       0
/dev/mmcblk0p6 /boot vfat defaults 0 2
/dev/mmcblk0p7 / ext4 defaults,noatime 0 1

boot 目录也是vfat 的,我尝试在boot 下chown,果然也是不好使的,在其他目录下完全没问题。😄 没有对比就没有伤害。找到问题所在。下面就简单了,把U盘格式化成ext4格式就好了。

解决办法

格式方法:

sudo umount /data #卸载U盘
mkfs -t ext4 /dev/sda1

在挂载上,chown ,好使了。😄