cp:手动挂载时无法保留所有权错误

时间:2014-05-07 14:33:49

标签: linux file-permissions mount

我使用

从可启动的pendrive分区复制文件
sudo cp -Rrf --preserve=all /media/Necktwi/BOOT/* BOOT/

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

但是当我使用

挂载时
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

当我使用/etc/mtab命令挂载时,partion的mount条目是

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

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

1 个答案:

答案 0 :(得分:2)

FAT文件系统不支持所有权。所以Linux所做的是通过将uid=1000,gid=1000传递给mount来模拟文件的所有者和组字段,其中包含:"每个文件和目录都由1000和组1000拥有。"

要了解这些ID的含义,请使用getent

getent passwd 1000

为您提供所有者(用户)和

getent passwd 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调用脚本。