我使用
从可启动的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
。
/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
错误?
答案 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
调用脚本。