我的磁盘上有三个主要分区/dev/sda
:
/dev/sda1 2048 117186559 58592256 83 Linux
/dev/sda2 117186560 128905215 5859328 82 Linux swap / Solaris
/dev/sda3 * 128905216 324216831 97655808 7 HPFS/NTFS/exFAT
/dev/sda4 324216832 1250263039 463023104 b W95 FAT32
/dev/sda3
是 Windows 7 分区,也是/dev/sda4
我保存数据的 FAT32 分区。我的问题是昨天我无法写入/dev/sda4
,当我尝试更改文件权限时,出现错误:
$ sudo chmod 777 /media/fourat/74A7-A44E/
chmod: changing permissions of ‘74A7-A44E/’: Read-only file system
mount
输出:
/dev/sda1 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/cgroup type tmpfs (rw)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
none on /run/user type tmpfs (rw,noexec,nosuid,nodev,size=104857600,mode=0755)
none on /sys/fs/pstore type pstore (rw)
systemd on /sys/fs/cgroup/systemd type cgroup (rw,noexec,nosuid,nodev,none,name=systemd)
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=fourat)
/dev/sda4 on /media/fourat/74A7-A44E type vfat (rw,nosuid,nodev,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,showexec,flush,uhelper=udisks2)
已解决:按照说明重新安装分区mikewhatever 的评论和
sudo mount -o remount,rw /dev/sda4
答案1
我之前在 Android 设备上使用 SD 卡时遇到过类似的问题,并且该卡被锁定在只读模式。
我甚至无法写入或更改权限:
touch my-test-file.txt
和sudo chmod -R a+rwX Pictures/
或chown
命令失败,并显示类似以下消息
chmod: changing permissions of 'Pictures/Screenshots': Read-only file system
此外,名为的文件夹Android/
已损坏:
gilles@inspiron-15:/media/gilles/E0A4-1EEB$ ll
ls: cannot access 'Android': Input/output error
total 452
drwxr-xr-x 16 gilles gilles 32768 janv. 1 1970 ./
drwxr-x---+ 3 root root 4096 juin 20 17:36 ../
drwxr-xr-x 2 gilles gilles 32768 janv. 11 2019 100ANDRO/
drwxr-xr-x 2 gilles gilles 32768 juil. 19 2020 Alarms/
d?????????? ? ? ? ? ? Android/
drwxr-xr-x 3 gilles gilles 32768 août 12 2020 DCIM/
drwxr-xr-x 14 gilles gilles 32768 août 4 2019 Download/
drwxr-xr-x 2 gilles gilles 32768 janv. 10 2019 LOST.DIR/
drwxr-xr-x 3 gilles gilles 32768 janv. 10 2019 Movies/
drwxr-xr-x 29 gilles gilles 32768 juil. 10 2020 Music/
drwxr-xr-x 2 gilles gilles 32768 juil. 19 2020 Notifications/
drwxr-xr-x 4 gilles gilles 32768 janv. 10 2019 Pictures/
drwxr-xr-x 2 gilles gilles 32768 juil. 19 2020 Playlists/
drwxr-xr-x 2 gilles gilles 32768 juil. 19 2020 Podcasts/
drwxr-xr-x 2 gilles gilles 32768 juil. 19 2020 Ringtones/
drwxr-xr-x 2 gilles gilles 32768 janv. 10 2019 voicecall/
gilles@inspiron-15:/media/gilles/E0A4-1EEB$
重要的
我的 SD 卡已格式化为 vfat / FAT32。
这意味着它不支持 unix rwx rwx rwx
(ugo) 权限!
文件ls -l
权限始终看起来像drwxr-xr-x
或-rwxr-xr-x
并且仅取决于我的安装选项!
首先,我运行命令sudo df
来获取设备名称:
Filesystem 1K-blocks Used Available Use% Mounted on
udev 3978532 0 3978532 0% /dev
tmpfs 801580 3248 798332 1% /run
/dev/sda4 527509864 30275276 470368876 7% /
tmpfs 4007896 152 4007744 1% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 4007896 0 4007896 0% /sys/fs/cgroup
/dev/sda2 664280 8048 656232 2% /boot/efi
/dev/sda6 415169488 54509064 339548004 14% /DATA
tmpfs 801576 16 801560 1% /run/user/1000
/dev/mmcblk0p1 15553280 4783744 10769536 31% /media/gilles/E0A4-1EEB
我还运行fdisk -l
来获取文件系统类型(非强制性):
...
Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p1 2048 31116287 31114240 14,9G b W95 FAT32
/dev/mmcblk0p1
我使用我的 uid 和 gid再次以 RW 模式安装了该设备:
sudo mount -o remount,rw,uid=1000,gid=1000 /dev/mmcblk0p1
使用fsck
命令,我删除了“肮脏的部分”这使得我的卡的文件系统无法写入:
gilles@inspiron-15:~$ sudo fsck -f /dev/mmcblk0p1
fsck from util-linux 2.34
fsck.fat 4.1 (2017-01-24)
0x41: Dirty bit is set. Fs was not properly unmounted and some data may be corrupt.
1) Remove dirty bit
2) No action
? 1
/Android
Contains a free cluster (149071). Assuming EOF.
Perform changes ? (y/n) y
/dev/mmcblk0p1: 1823 files, 149492/486040 clusters
gilles@inspiron-15:~$
希望此后我可以再次在 SD 卡上写入内容!
PS 1:
除此之外,fsck
命令dosfsck
也很有用。
PS 2:
我无法恢复我的Android/
目录,但我可以清除它并获得一个干净的文件系统:
gilles@inspiron-15:/media/gilles/E0A4-1EEB$ sudo dosfsck /dev/mmcblk0p1
fsck.fat 4.1 (2017-01-24)
/Android
Start does point to root directory. Deleting dir.
Perform changes ? (y/n) y
/dev/mmcblk0p1: 1823 files, 149492/486040 clusters
gilles@inspiron-15:/media/gilles/E0A4-1EEB$
答案2
我想您可以使用以下命令重新挂载:
adb remount
此解决方案应该可以解决上述问题