linuxdeepin / developer-center

Deepin developer center, provide developer wiki and community forum.
449 stars 73 forks source link

【deepin_V23_beta3】【一般】【有空】【内测反馈】【系统】磁盘分区格式化后,使用rsync同步数据到被格式化的分区提示“同步失败”,但数据被成功写入 #6306

Open kobe337 opened 9 months ago

kobe337 commented 9 months ago

SUMMARY | 问题概要

磁盘分区格式化后,同步数据到被格式化的分区提示“同步失败”,但数据被成功写入

SOFTWARE/OS VERSIONS | 软件/系统版本信息

镜像版本: https://cdimage.uniontech.com/community/releases/23-Beta2/
内核版本:Linux deepin20-PC 6.1.32-amd64-desktop-hwe #23.01.00.20 SMP PREEMPT_DYNAMIC Mon Sep 11 14:16:03 CST 2023 x86_64 GNU/Linux

PRE-REQUIREMENT | 预置条件

接入移动硬盘

STEPS TO REPRODUCE | 复现步骤

1.将移动硬盘进行格式化为“ext4” 2.在桌面新建一个目录命名为“1”,进入该目录新建一个文本文件 1.txt,写入helloworld 3.使用命令进行数据同步: rsync --progress -avUXX /home/deepin/Desktop/1/ /media/deepin/ext4/,查看信息返回

OBSERVED RESULT | 观察到的结果

磁盘分区格式化后,同步数据到被格式化的分区提示“同步失败”,但数据被成功写入 image image

EXPECTED RESULT | 期望的结果

同步数据与信息提示应一致

ADDITIONAL INFORMATION | 额外补充

反馈链接:https://cooperation.uniontech.com/public/record/6565a6fe4f1ca7e600da9a82 记录:扩展分区格式化后当前用户挂载的分区权限错误 论坛反馈链接:https://bbs.deepin.org/post/265044

babyfengfjx commented 9 months ago

@Zeno-sole 帮忙先看下这个问题是否属于我们处理。

Zeno-sole commented 9 months ago

@UTsweetyfish 备注一下分析结论

UTsweetyfish commented 9 months ago

udisks2 挂载 ext4 时,挂载点权限为 777,用户为 root,组为 root(ext4不支持uid=$UID与gid=$GID的挂载参数);而挂载 ntfs 时,挂载的参数中有uid=$UID与gid=$GID,因此用户与组为挂载的用户本身。

因此在前者中,rsync 同步时会尝试修改用户(-o)+组(-g)+权限(-p)+时间(-t),而修改挂载点本身的 inode 需要 root 权限,rsync 会报错退出。

解决方案如 bbs 中说的,用sudo让权限等于UID即可。至于“解决2”中的gio的方法我无法复现。

yaoyingkeji commented 9 months ago

udisks2 挂载 ext4 时,挂载点权限为 777,用户为 root,组为 root(ext4不支持uid=$UID与gid=$GID的挂载参数);而挂载 ntfs 时,挂载的参数中有uid=$UID与gid=$GID,因此用户与组为挂载的用户本身。

因此在前者中,rsync 同步时会尝试修改用户(-o)+组(-g)+权限(-p)+时间(-t),而修改挂载点本身的 inode 需要 root 权限,rsync 会报错退出。

解决方案如 bbs 中说的,用sudo让权限等于UID即可。至于“解决2”中的gio的方法我无法复现。

gio 需要执行俩个命令

挂载

gio mount -d /dev/disk-name
Mounted /dev/disk-name at /media/username/disk-name

根据楼主的图,如下

gio mount -d /dev/sda2
Mounted /dev/sda2 at /media/HaoSen/ext4