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:
用于我的用户名,它只给我读取权限。 我用一个简单的命令修复了这个:
setfacl -mu::rwx /media/
我分离了我的USB设备,再次连接它,问题解决了。
当你运行mount
只mount
了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.vfat
或fsck.[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 $UID
或id -u
学习它)时,它们被设置然后你可以尝试这个并看看它是否可以用于:
sudo mount -o remount,rw,uid=[userid] /dev/sdb1 /media/simon/LYDIA
- 注意:有时,您可能需要重新启动gui文件管理器以使其“注意”允许您写入文件系统/驱动器的安装更改,但终端应该始终有效。
或者,如果上述方法不起作用,请尝试sudo su
“成为”root,看看是否有任何东西可以写入USB上的文件(带touch
, echo
等)?
转到磁盘 。
选择您的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
尝试以下策略
-
以超级用户身份编辑/etc/fuse.conf
将
#user_allow_other
更改为user_allow_other
-
启用对外部设备的写入支持
-
sudo apt-get install ntfs-config
-
sudo ntfs-config
-