Update:事实证明,这是由于libmount中的一个错误造成的,该错误现在已修复在上游。https://github.com/karelzak/util-linux/issues/1235
Original问题如下
当我运行mount -r /media/sdd1时,设备被挂载为读-写,没有警告或签名-r选项失败。
$ egrep sdd1 /etc/fstab
/dev/sdd1 /media/sdd1 auto user,noauto,exec,nodev 0 0
$ umount /media/sdd1
umount: /media/sdd1: not mounted
$ mount -r /media/sdd1
$ touch /media/sdd1/file.tmp
$ umount /media/sdd1
$ mount -r /media/sdd1
$ ls /media/sdd1/file.tmp
/media/sdd1/file.tmp
$ rm -f /media/sdd1/file.tmp
$ umount /media/sdd1
$ mount -r /media/sdd1
$ ls /media/sdd1/file.tmp
ls: cannot access '/media/sdd1/file.tmp': No such file or directory这具有潜在的破坏性,例如,如果我忘记了不应该写入文件系统。我尝试过的文件系统类型是FAT16,如果这很重要的话。
除了删除mount标志以强迫自己始终使用sudo之外,我还能做些什么来让-r尊重这个标志吗?
发布于 2021-01-21 21:20:50
以普通用户的身份运行mount不允许指定自定义挂载选项(运行mount -r相当于添加ro挂载选项),在本例中删除所有自定义挂载选项,并且只使用来自fstab的默认选项+选项。
运行sudo mount -r /mnt/test时的结果:
/dev/sdb /mnt/test vfat ro,nosuid,nodev,noexec,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro 0 0与普通用户一样,您可以看到忽略了ro选项:
/dev/sdb /mnt/test vfat rw,nosuid,nodev,noexec,relatime,uid=1000,gid=1000,fmask=0002,dmask=0002,allow_utime=0020,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro 0 0不可能改变这一点,所以您要么需要在ro中指定fstab选项,要么需要将mount命令作为根用户运行。
在mount和fstab中,“非特权”挂载通常是非常严格的,这是有意义的--您不想让非根用户更改fstab中指定的选项。在这种情况下,它可能是“安全的”,因为当您从rw切换到ro时,您正在“降低”您的特权,但是它仍然在改变一些您不允许更改的内容。
发布于 2021-01-21 08:21:02
当您双引导系统时会发生这种情况,其中一个操作系统是Windows。Windows OS没有正确卸载磁盘,因为Windows OS中有帮助windows更快启动的配置。
First解决方案:可以引导到windows,然后遵循以下步骤:(对于Windows 10)
现在,自动安装将具有读写访问的驱动器.
Second解决方案:解决此问题的第二个方法是在终端中使用以下命令:
sudo apt-get install ntfs-3g -y
sudo ntfsfix /dev/drive-name执行上述命令后,请再次重装。
Third解决方案:这个可以工作,但是每次引导到您的linux发行版时都需要这样做。
https://unix.stackexchange.com/questions/561957
复制相似问题