USB 设备显示为只读

USB 设备显示为只读

我正在使用 Ubuntu 14.04。

我有一个 8gb FAT32 USB 驱动器和一个 500gb FAT32 HDD;它们两个都突然变成了只读设备。

我尝试删除里面的目录/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)

答案1

看到这个漏洞

运行此命令来终止 Nautilus(文件):

killall nautilus

答案2

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

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

现在问题应该解决了。

现在,对于你的硬盘,请按照以下答案操作问题。这是关于外部硬盘的,但对于你的情况来说也是一样。

答案3

我也遇到过这个问题。复制到 USB 时出错。我使用的是 Mint 17.1 Cinnamon,内核为 3.13.0-43,文件管理器为 Caja。

当我使用此终端命令查看媒体目录时:

dir /media

我看到布局已经改变。通常,您期望看到驱动器列在此处,但现在它们列在您的用户名下,猜猜怎么着?该用户名只有 ROOT 权限。

我所做的就是运行:

sudo chown [username] /media/[username]

和:

sudo chgrp [username] /media/[username]

[username]用我的用户名替换了它。之后我拔下了 USB 棒,等了一会儿,然后又插回去。问题解决了,我现在可以写入了!

答案4

我在 Ubuntu 上遇到了同样的问题,到目前为止,这里给出的答案都对我不起作用。以下是我尝试过的:

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

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

我再次查看了权限:

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

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

$ getfacl /media/<username>
# file: <username>/
# owner: <username>
# group: <username>
user::rwx
user:<username>:r-x
group::---
mask::r-x
other::---

如您所见,user:<username>:r-x我的用户名有一个附加条目,只授予我读取权限。我使用一个简单的命令解决了这个问题:

setfacl -m u:<username>:rwx /media/<username>

我断开了 USB 设备,然后重新连接,问题就解决了。

相关内容