USB设备显示为只读

我使用的是Ubuntu 14.04。

我有一个8GB的FAT32 USB记忆棒和一个500GB的FAT32硬盘; 这两个突然变成只读设备。

我已经尝试删除/media的目录,然后再次创建它,重命名它,然后给该目录完全权限。 但是,这不起作用。

mount结果:

 $ mount /dev/sda5 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) binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev) 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=simon) 

sudo parted -l结果:

 Model: ATA ST9500325AS (scsi) Disk /dev/sda: 500GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 4 1049kB 500GB 500GB extended 5 2097kB 496GB 496GB logical ext4 6 496GB 500GB 4238MB logical linux-swap(v1) Model: Verbatim STORE N GO (scsi) Disk /dev/sdb: 8028MB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 24.6kB 8028MB 8028MB primary fat32 boot 

lsblk结果:

 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 465.8G 0 disk ├─sda4 8:4 0 1K 0 part ├─sda5 8:5 0 461.8G 0 part / └─sda6 8:6 0 4G 0 part [SWAP] sdb 8:16 1 7.5G 0 disk └─sdb1 8:17 1 7.5G 0 part /media/simon/LYDIA sr0 11:0 1 1024M 0 rom 

USB写测试:

 $ cd /media/simon/LYDIA $ touch newfile001 touch: cannot touch 'newfile001': Read-only file system 

dmesg结果:

 [ 159.366772] FAT-fs (sdb1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck. [ 159.383252] FAT-fs (sdb1): error, fat_get_cluster: invalid cluster chain (i_pos 0) [ 159.383258] FAT-fs (sdb1): Filesystem has been set read-only [ 159.383571] FAT-fs (sdb1): error, fat_get_cluster: invalid cluster chain (i_pos 0) [ 159.384251] FAT-fs (sdb1): error, fat_get_cluster: invalid cluster chain (i_pos 0) [ 159.384319] FAT-fs (sdb1): error, fat_get_cluster: invalid cluster chain (i_pos 0) [ 159.475111] systemd-hostnamed[2966]: Warning: nss-myhostname is not installed. Changing the local hostname might make it unresolveable. Please install nss-myhostname! [ 159.480141] FAT-fs (sdb1): error, fat_get_cluster: invalid cluster chain (i_pos 0) [ 159.480224] FAT-fs (sdb1): error, fat_get_cluster: invalid cluster chain (i_pos 0) [ 159.480497] FAT-fs (sdb1): error, fat_get_cluster: invalid cluster chain (i_pos 0) [ 159.480516] FAT-fs (sdb1): error, fat_get_cluster: invalid cluster chain (i_pos 0) [ 2893.091767] wlan0: deauthenticating from c0:3e:0f:31:21:05 by local choice (reason=3) 

看到这个bug 。

运行此命令以杀死Nautilus(文件):

 killall nautilus 

将USB密钥连接到笔记本电脑时:

  • 运行sudo -i (这样你就不会一直输入你的密码)
  • 运行df -Th (查看USB棒的安装位置)
  • 卸下你的USB记忆棒
  • 在您从上一个命令中看到的设备上运行dosfsck 。 示例: dosfsck /dev/sdc1
  • 移除并重新连接USB记忆棒

现在应该解决问题。

现在,对于您的硬盘驱动器,请按照此问题的答案。 它是关于外置硬盘驱动器,但它与你的情况是一样的。

使用GParted设置分区表并格式化我的USB记忆棒时出现同样的错误..之后所有USB驱动器都变为“只读”状态。

但在根复制工作正常…

机器重启后问题消失了。 所以我猜这个问题可能在使用GParted时出现。

我也有这个问题。 我在复制到我的usb棒时遇到错误,我使用Mint 17.1肉桂,内核3.13.0-43和caja文件管理器。

当我查看终端’dir / media’中的媒体目录时,我看到布局已经改变,通常你希望看到这里列出的驱动器,但现在它们列在你的用户名下,猜猜是什么? 该用户名仅具有ROOT权限。

我做的是打字

 sudo chown [username] /media/[username] 

 sudo chgrp [username] /media/[username] 

你用你的用户名替换[用户名],删除usb棒,等待,然后把它放回去,问题解决了,我现在可以写信给它!

我使用Gparted格式化。 这擦除了磁盘中的所有数据,结果certificate它也解决了问题。

我在Ubuntu上遇到了同样的问题,到目前为止这里给出的答案都没有。 这是我尝试过的:

  • 使用GParted格式化设备。 我甚至尝试重新创建分区表,但没有成功。
  • 使用fsck检查设备。 没有发现任何问题。
  • 修复了挂载点的权限。 事实certificate,挂载点是root拥有的,但即使在自己成为所有者之后,我也只能从命令行写入设备(我仍然无法从GUI创建文件)。

当我连接USB记忆棒时,它会被安装在/media// ,其中是我的用户名, 是USB记忆棒或存储设备的标签。

我再次看了一下权限:

 $ ls -ld /media/ drwxrwx---+ 2   4096 Mar 4 18:32 /media/ 

注意权限末尾的+ 。 这对我来说是新的,我以前从未注意过它。 这意味着该目录具有称为访问控制列表(ACL)的扩展权限(请参阅此相关问题 )。 我列出了此目录的ACL详细信息:

 $ getfacl /media/ # file: / # owner:  # group:  user::rwx user::rx group::--- mask::rx other::--- 

如您所见,还有一个额外的条目user::rx用于我的用户名,它只给我读取权限。 我用一个简单的命令修复了这个:

 setfacl -mu::rwx /media/ 

我分离了我的USB设备,再次连接它,问题解决了。

当你运行mountmount了sda5(你的/ ),并且它是读写( rw )所以你应该能够写入它。 通常,大多数目录(如/sys/bin只能由root编写(您首先需要sudo ),但您的主文件夹应该可以写入普通用户。

你可以在你的主文件夹中创建任何文件吗? 也许你的gui文件管理器被认为是只读的,如果你在终端中尝试它是否有效? 例如,这些命令有用吗?:

 cd ~ touch newfile001 echo stuff >> newfile001 cat newfile001 

如果那些成功,那么你可以写你的HD(sda5)。


对于USB驱动器,在插入并安装后,查看mount以找到它( /dev/sdb1 ...行)并查看()的mount选项是否为rw (读写)然后你应该可以写信给它。 如果它是ro (只读),请尝试这个并查看它是否发生变化:

 sudo mount -o remount,rw /dev/sdb1 /media/simon/LYDIA 

如果文件系统(fs)有错误,它可能会被挂载为ro ,在dmesg/var/log/syslog也应该有关于它的消息。 这是您的日志显示的内容:

 [ 159.366772] FAT-fs (sdb1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck. [ 159.383252] FAT-fs (sdb1): error, fat_get_cluster: invalid cluster chain (i_pos 0) [ 159.383258] FAT-fs (sdb1): Filesystem has been set read-only 

这包括fs如何被破坏的线索 – “没有正确卸载”,你应该在拔掉任何东西之前总是卸下。 大多数文件管理器都有“弹出”来帮助解决这个问题。

dmesg日志还说明了如何修复它: fsck可以尝试修复fs错误,它会尝试选择正确的检查程序,或者你可以使用fsck.vfatfsck.[other]明确选择一个fsck.[other]fsck.之后按TAB fsck. 应列出选项。

  • 对于FAT系统(通常必须运行两次,并不总是第一次修复所有错误)
    • fsck.vfat -vaV [device]应该自动工作(-a)并显示更多信息(-v)并执行“validation”传递(-V),或者只是:
    • fsck.vfat -a [device]

注意 :这不能保证文件系统将保持固定,它可能会再次损坏并且可能无法确切地知道原因。 在移除USB驱动器之前始终卸载/“弹出”。

请注意,如果fs rw安装 ,但随后出现错误并且它会自动重新安装为ro ,则mount命令仍然可以报告它已安装的rw 。 使用less /proc/mounts查看此文件通常应显示更可靠的信息(请参阅man mount )。


如果安装了某些内容但仍然无法在其上添加/删除/编辑文件,则可能不是文件的所有者。 在某些fs中,你可以成为所有者,但是在sdb1上的FAT32 fs没有这些权限; 当它使用挂载选项uid=value (值是你的用户ID,使用echo $UIDid -u学习它)时,它们被设置然后你可以尝试这个并看看它是否可以用于:

 sudo mount -o remount,rw,uid=[userid] /dev/sdb1 /media/simon/LYDIA 
  • 注意:有时,您可能需要重新启动gui文件管理器以使其“注意”允许您写入文件系统/驱动器的安装更改,但终端应该始终有效。

或者,如果上述方法不起作用,请尝试sudo su “成为”root,看看是否有任何东西可以写入USB上的文件(带touchecho等)?

转到磁盘 。

选择您的USB驱动器。

单击“ 其他分区选项”并选择“ 格式化分区”

然后选择擦除用零覆盖现有数据(慢)并键入FAT

我在互联网上搜索后尝试了很多东西,但这对我有用。

快速修复方法:

方法1

有时我们可以毫不费力地完成bash的任务(通常不需要sudo)

 mkdir /media/$USER/mydrive/myfolder cp -r src/ /media/$USER/mydrive/myfolder 

但是,有时候,当我需要使用文件浏览器时,

 sudo nautilus /media/$USER/mydrive/ 

注意:这是一个快速解决方案,只有当您感到沮丧时才使用它,因为上面没有其他答案可行

方法2

重启操作系统

就像上面的回答一样,当你使用Nemo时(像我一样,如果你使用Cinnamon桌面环境)试试:

 killall nemo 

尝试以下策略

  1. 以超级用户身份编辑/etc/fuse.conf

    #user_allow_other更改为user_allow_other

  2. 启用对外部设备的写入支持

    • sudo apt-get install ntfs-config
    • sudo ntfs-config