linux cp:手动挂载时无法保留所有权错误[已关闭]

7d7tgy0s  于 2023-04-29  发布在  Linux
关注(0)|答案(1)|浏览(285)

**已关闭。**此问题不符合Stack Overflow guidelines。目前不接受答复。

这个问题似乎不是关于a specific programming problem, a software algorithm, or software tools primarily used by programmers的。如果你认为这个问题与another Stack Exchange site的主题有关,你可以留下评论,解释在哪里可以回答这个问题。
8年前关闭。
Improve this question
我复制文件从分区的可启动pendrive使用

sudo cp -Rrf --preserve=all /media/Necktwi/BOOT/* BOOT/

当ubuntu挂载分区时,我可以使用sudo cp -Rrf --preserve=all BOOT* /media/Necktwi/BOOT/复制回来。
但是当我使用

sudo mount -w /dev/sdc1 /mnt/boot

并尝试复制回它的所有内容我得到cp: failed to preserve ownership为每个文件被复制。
当ubuntu挂载分区时,该分区的/etc/mtab条目是

/dev/sdc1 /media/Necktwi/boot vfat rw,nosuid,nodev,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,showexec,flush,uhelper=udisks2 0 0

当我使用上面的mount命令装载时,分区的/etc/mtab条目是

/dev/sdc1 /mnt/boot vfat rw 0 0

所以我想我应该在mount命令中指定一些额外选项。我的分区是fat16如何避免cp: failed to preserve ownership错误?

mf98qq94

mf98qq941#

FAT文件系统不支持所有权。因此,Linux所做的是通过将uid=1000,gid=1000传递给mount来模拟文件的所有者和组字段,其内容如下:“每个文件和目录都属于1000和组1000。”
要了解这些ID的含义,请使用getent

getent passwd 1000

给你所有者(用户)和

getent group 1000

给你一个群体。
若要修复错误,请使用
sudo mount -o uid=1000,gid=1000 /dev/sdc1 /mnt/ Boot
但是其他的选项可以围绕FAT和Linux的其他重要问题工作,所以一个更好的解决方案是采用所有这些并通过脚本挂载。

#!/bin/bash
options="rw,nosuid,nodev,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,showexec,flush,uhelper=udisks2"
mount -o "$options" /dev/sdc1 /mnt/boot

并使用sudo调用脚本。

相关问题