ood*_*2do 154 usb mount read-only
我正在使用 Ubuntu 14.04。
我有一个 8GB 的 FAT32 U 盘和一个 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)
Run Code Online (Sandbox Code Playgroud)
结果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
Run Code Online (Sandbox Code Playgroud)
结果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
Run Code Online (Sandbox Code Playgroud)
USB写测试:
$ cd /media/simon/LYDIA
$ touch newfile001
touch: cannot touch ‘newfile001’: Read-only file system
Run Code Online (Sandbox Code Playgroud)
结果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)
Run Code Online (Sandbox Code Playgroud)
way*_*ure 286
看到这个错误。
运行此命令以杀死 Nautilus(文件):
killall nautilus
Run Code Online (Sandbox Code Playgroud)
小智 95
将 USB 密钥连接到笔记本电脑时:
sudo -i(这样您就不会一直输入密码)df -Th(查看您的 USB 记忆棒的安装位置)dosfsck在您从上一个命令中看到的设备上运行。例子:dosfsck /dev/sdc1问题现在应该解决了。
现在,对于您的硬盘,请按照此问题的答案进行操作。它与外部硬盘驱动器有关,但对于您的情况也是如此。
小智 21
我也有这个问题。复制到 USB 记忆棒时出错。我使用的是 Mint 17.1 Cinnamon,3.13.0-43 内核和 Caja 作为文件管理器。
当我使用这个终端命令查看媒体目录时:
dir /media
Run Code Online (Sandbox Code Playgroud)
我看到布局已经改变了。通常,您希望看到此处列出的驱动器,但现在它们列在您的用户名下,您猜怎么着?该用户名只有 ROOT 权限。
我所做的是运行:
sudo chown [username] /media/[username]
Run Code Online (Sandbox Code Playgroud)
和:
sudo chgrp [username] /media/[username]
Run Code Online (Sandbox Code Playgroud)
我[username]用我的用户名替换的地方。之后我把U盘拔了,等着再放回去。问题解决了,我现在可以写了!
小智 20
使用 GParted 设置分区表并格式化我的 USB 记忆棒时,我遇到了同样的错误......之后所有 USB 驱动器都变为“只读”。
但是在根复制下工作正常......
机器重启后问题消失。所以我猜测在使用GParted时可能会出现这个问题。
Ser*_*ira 17
我在 Ubuntu 上遇到了同样的问题,到目前为止这里给出的答案都没有对我有用。这是我尝试过的:
fsck。没有发现问题。当我连接 USB 记忆棒时,它会安装在 下/media/<username>/<label>/,其中<username>是我的用户名, <label>是 USB 记忆棒或存储设备的标签。
我再次查看了权限:
$ ls -ld /media/<username>
drwxrwx---+ 2 <username> <username> 4096 Mar 4 18:32 /media/<username>
Run Code Online (Sandbox Code Playgroud)
请注意+权限末尾的 。这对我来说是新的,我以前从未注意到它。这意味着该目录具有称为访问控制列表 (ACL) 的扩展权限(请参阅此相关问题)。我列出了此目录的 ACL 详细信息:
$ getfacl /media/<username>
# file: <username>/
# owner: <username>
# group: <username>
user::rwx
user:<username>:r-x
group::---
mask::r-x
other::---
Run Code Online (Sandbox Code Playgroud)
如您所见,user:<username>:r-x我的用户名有一个额外的条目,它只给我读权限。我用一个简单的命令修复了这个问题:
setfacl -m u:<username>:rwx /media/<username>
Run Code Online (Sandbox Code Playgroud)
我拆下我的 USB 设备,重新连接,问题解决了。
当您运行时,mount只/挂载了sda5(您的),并且它是可读写的(rw),因此您应该能够写入它。通常,像/sys,之类的大多数目录/bin只能由 root 写入(您sudo首先需要),但是您的主文件夹应该可以写入您的普通用户。
您可以在您的主文件夹中创建任何文件吗?也许您的 gui 文件管理器认为它们是只读的,如果您在终端中尝试它是否有效?例如,这些命令有效吗?:
cd ~
touch newfile001
echo stuff >> newfile001
cat newfile001
Run Code Online (Sandbox Code Playgroud)
如果这些工作成功,那么您可以写入您的 HD (sda5)。
对于USB驱动器,插入并安装后,查看mount以找到它(该/dev/sdb1 ...行)并查看()'s 中的安装选项是否为rw(读写)那么您应该能够写入它。如果它是ro(只读)试试这个,看看它是否改变:
sudo mount -o remount,rw /dev/sdb1 /media/simon/LYDIA
Run Code Online (Sandbox Code Playgroud)
如果文件系统 (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
Run Code Online (Sandbox Code Playgroud)
这包括有关 fs 可能如何损坏的线索 - “未正确卸载”,在拔下任何东西之前,您应该始终卸载。大多数文件管理器都有一个“弹出”来帮助解决这个问题。
该dmesg日志也说如何解决它:fsck可以尝试修复FS的错误,它会尝试选择正确的检查程序,或者你可以明确地选择一个具有fsck.vfat或fsck.[other]压制TAB后fsck.应列出的选项。
fsck.vfat -vaV [device] 应该自动工作(-a)并显示更多信息(-v)并进行“验证”传递(-V),或者只是:fsck.vfat -a [device]注意:这不能保证文件系统会保持固定,它可能会再次损坏并且可能无法确切知道原因。在移除 USB 驱动器之前,始终卸载/“弹出”。
请注意,如果 fs挂载为rw,但随后会看到错误并自动重新ro挂载为,则 mount 命令可能仍会报告它已挂载rw。查看此文件less /proc/mounts通常应显示更可靠的信息(请参阅 参考资料man mount)。
如果安装了某些内容rw但您仍然无法在其上添加/删除/编辑文件,则您可能不是这些文件的所有者。在某些 fs 中,您可以chown成为所有者,但是 sdb1 上的 FAT32 fs 没有这些权限;它们在使用 mount 选项挂载时设置uid=value(值是您的用户 ID,使用echo $UID或学习id -u)然后您可以尝试此操作并查看它之后是否有效:
sudo mount -o remount,rw,uid=[userid] /dev/sdb1 /media/simon/LYDIA
Run Code Online (Sandbox Code Playgroud)
或者,如果上面没有工作,尝试sudo su以“成为”根,看看是否有什么可以写入文件上的USB(与touch,echo等)?
| 归档时间: |
|
| 查看次数: |
370003 次 |
| 最近记录: |