我正在使用 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
答案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 设备,然后重新连接,问题就解决了。