大约一个月前,我在我的 Kubuntu 16.10 机器上运行了一些常规更新(不幸的是,我记不住软件包的名称)。现在,一个月后,我尝试在 USB 上写入一些数据,但突然无法正常工作。
USB 磁盘已被识别,我可以使用 GUI 轻松连接它,例如通过单击 Dolphin 或 Konqueror 中的“连接驱动器”图标。我可以从 USB 棒读取数据,但当我尝试将文件复制到棒时,出现以下错误(waran
是我的用户名,A874-2FAD
是 USB 棒的名称):
Konqueror:
Access denied. Could not write to '/media/waran/A874-2FAD'
使用命令行复制(cp testfile.jpg /media/waran/A874-2FAD/
):
cp: cannot create regular file '/media/waran/A874-2FAD/testfile.jpg': Permission denied
我尝试过(但没有成功)4 个不同的 USB 记忆棒、2 个 SD 卡(直接通过笔记本电脑上的读卡器或使用外部读卡器)和 CF 卡(使用外部读卡器)。我在这台电脑上进行了双启动,从 Windows 10 写入记忆棒非常顺利。如果这有助于缩小问题范围,我可以使用 USB 电缆从 Kubuntu 进行打印。
我还注意到,目录中有一些新文件夹/media
。以前/media/
包含一个名为的文件夹waran/
,此文件夹中只有当前连接的 USB。
现在看起来像这样(ls -aRl
):
.:
total 44
drwxr-xr-x 11 root root 4096 Oct 22 20:36 .
drwxr-xr-x 25 root root 4096 Dec 20 21:47 ..
lrwxrwxrwx 1 root root 45 Oct 15 13:46 .directory -> /etc/kubuntu-default-settings/directory-media
lrwxrwxrwx 1 root root 42 Oct 15 13:46 .hidden -> /etc/kubuntu-default-settings/hidden-media
lrwxrwxrwx 1 root root 4 Oct 22 20:36 usb -> usb0
drwxr-xr-x 2 root root 4096 Oct 22 20:36 usb0
drwxr-xr-x 2 root root 4096 Oct 22 20:36 usb1
drwxr-xr-x 2 root root 4096 Oct 22 20:36 usb2
drwxr-xr-x 2 root root 4096 Oct 22 20:36 usb3
drwxr-xr-x 2 root root 4096 Oct 22 20:36 usb4
drwxr-xr-x 2 root root 4096 Oct 22 20:36 usb5
drwxr-xr-x 2 root root 4096 Oct 22 20:36 usb6
drwxr-xr-x 2 root root 4096 Oct 22 20:36 usb7
drwxr-x---+ 4 waran waran 4096 Jan 5 21:27 waran
./usb0:
total 8
drwxr-xr-x 2 root root 4096 Oct 22 20:36 .
drwxr-xr-x 11 root root 4096 Oct 22 20:36 ..
./usb1:
total 8
drwxr-xr-x 2 root root 4096 Oct 22 20:36 .
drwxr-xr-x 11 root root 4096 Oct 22 20:36 ..
./usb2:
total 8
drwxr-xr-x 2 root root 4096 Oct 22 20:36 .
drwxr-xr-x 11 root root 4096 Oct 22 20:36 ..
./usb3:
total 8
drwxr-xr-x 2 root root 4096 Oct 22 20:36 .
drwxr-xr-x 11 root root 4096 Oct 22 20:36 ..
./usb4:
total 8
drwxr-xr-x 2 root root 4096 Oct 22 20:36 .
drwxr-xr-x 11 root root 4096 Oct 22 20:36 ..
./usb5:
total 8
drwxr-xr-x 2 root root 4096 Oct 22 20:36 .
drwxr-xr-x 11 root root 4096 Oct 22 20:36 ..
./usb6:
total 8
drwxr-xr-x 2 root root 4096 Oct 22 20:36 .
drwxr-xr-x 11 root root 4096 Oct 22 20:36 ..
./usb7:
total 8
drwxr-xr-x 2 root root 4096 Oct 22 20:36 .
drwxr-xr-x 11 root root 4096 Oct 22 20:36 ..
./waran:
total 20
drwxr-x---+ 4 waran waran 4096 Jan 5 21:27 .
drwxr-xr-x 11 root root 4096 Oct 22 20:36 ..
drwxr-xr-x 2 root root 8192 Jan 1 1970 A874-2FAD
drwxr-xr-x 2 waran waran 4096 Oct 22 22:19 System\x20Reserved
./waran/A874-2FAD:
total 12
drwxr-xr-x 2 root root 8192 Jan 1 1970 .
drwxr-x---+ 4 waran waran 4096 Jan 5 21:27 ..
./waran/System\x20Reserved:
total 8
drwxr-xr-x 2 waran waran 4096 Oct 22 22:19 .
drwxr-x---+ 4 waran waran 4096 Jan 5 21:27 ..
有什么建议吗?为什么结构突然改变了?我如何从 Kubuntu 直接写入我的 USB 驱动器?
编辑:感谢 sudodus 的回答,我意识到,因为root
我有写入权限,所以我能够在 pendrive 上写入。更改/media/waran
权限不起作用,通过命令行手动安装驱动器也没有改变权限问题。
编辑:df
卸载 USB 驱动器后的结果:
Filesystem 1K-blocks Used Available Use% Mounted on
udev 1948092 0 1948092 0% /dev
tmpfs 394580 26256 368324 7% /run
/dev/sda5 23706164 15941220 6537672 71% /
tmpfs 1972892 40900 1931992 3% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 1972892 0 1972892 0% /sys/fs/cgroup
/dev/sda6 780771600 450109520 290978140 61% /home
tmpfs 394576 0 394576 0% /run/user/119
tmpfs 394576 24 394552 1% /run/user/1000
df
安装 USB 后的结果:
Filesystem 1K-blocks Used Available Use% Mounted on
udev 1948092 0 1948092 0% /dev
tmpfs 394580 26256 368324 7% /run
/dev/sda5 23706164 15941248 6537644 71% /
tmpfs 1972892 41156 1931736 3% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 1972892 0 1972892 0% /sys/fs/cgroup
/dev/sda6 780771600 450109520 290978140 61% /home
tmpfs 394576 0 394576 0% /run/user/119
tmpfs 394576 24 394552 1% /run/user/1000
/dev/sdb1 7849228 263772 7585456 4% /mnt/sd1
因此,看来 U 盘已成功卸载和安装,但我仍然无法在没有 root 权限的情况下编辑其内容。
答案1
在这里没有再得到任何新想法后,我将问题重新发布到 Ubuntu 论坛。 https://ubuntuforums.org/showthread.php?t=2348773
Coffeecat 建议我卸载该usbmount
软件包(apt-get remove usbmount
)。现在我无需 root 权限即可更改 pendrive 的内容。
答案2
root
拥有/media/waran
什么以及使用自动方法挂载到那里的内容。你能以 root 身份创建或复制文件到 USB 驱动器吗?尝试
sudo bash -c "echo 'Hello World' > /media/waran/A874-2FAD/hello.txt"
一个替代方案是更改/media/waran
sudo chmod ugo+rwx /media/waran
改变所有权的另一种选择
sudo chown waran /media/waran
重启。如果这不起作用,或者您不想要这样的解决方案,您可以使用命令行方法(可能包含在 shellscript 或别名中)。
假设:U盘被视为 /dev/sdx,并且有一个分区为 FAT32 或 NTFS,将 x 替换为实际的驱动器号,例如 b: /dev/sdx1
--->/dev/sdb1
sudo mkdir -p /mnt/sd1 # only if you want a new mountpoint
sudo umount /dev/sdx1 # only if already mounted (but with bad permissions)
sudo mount -o rw,users,umask=000 /dev/sdx1 /mnt/sd1 # mount
ls -ld /mnt/sd1 # check permissions
sudo bash -c "echo 'Hello World' > /mnt/sd1/hello.txt" # test writing with sudo
cat /mnt/sd1/hello.txt # test reading (as user)
ls -l /mnt/sd1 # check permissions of the content
rm /mnt/sd1/hello.txt # test removing (as user)
echo 'I am a user' > /mnt/sd1/user.txt # test writing (as user)
修改挂载选项“umask”以适合您的需要。umask=000
意味着每个人都可以完全访问已挂载的分区。