我的Ubuntu安装有问题。我能够从liveCD启动并连接外部硬盘。我想现在备份我的文件。
我尝试了cp -r /home destination
,但我遇到文件名,符号链接,错误中的空格问题“无法创建fifo:操作不允许”“权限被拒绝”“无效参数”等等。最好的方法是什么? cp -a
会解决这些问题,还是应该做一些更聪明的事情?
我发现rsync
没有文件名问题。但它不会复制.so和.a文件。与cp
相比,它的运行速度非常慢。
编辑:
我遵循了John Bollinger的建议并创建了一个存档,因为我的外部驱动器没有ext4格式化,因此无法保留所有文件属性。
来自liveCD home
指的是liveCD home,所以必须使用:
tar -c -z -f /my/backup/disk/home.tar.gz -C / media/ubuntu/longDeviceName/home
尽管sudo,我仍然收到一些“无法打开:权限被拒绝”和“套接字忽略”错误,在.cache / software-center / icons / blabla中为几个.png文件创建了一个tar。我想知道这是否正常。
答案 0 :(得分:1)
如果您不想使用具有足够功能来表示文件所有属性的文件系统(例如ext4)重新格式化备份磁盘,那么在备份中保留它们需要将它们放入某种容器中。这种东西的传统容器是[压缩] tarball。你可以试试
tar -c -z -f /my/backup/disk/home.tar.gz -C / home
您可以通过
恢复该tarball的内容tar -x -z -f /my/backup/disk/home.tar.gz -C /
可能需要使用权限运行其中一个或两个,通过root或使用sudo
获得。
这将处理符号链接,可执行文件和任何文件名,但如果您尝试备份的数据包含任何特殊文件(如设备节点或FIFO),则可能仍会遇到问题。在这种情况下,您可能只需要先删除此类文件,然后在还原其他文件后重新创建它们。您可以通过find
识别此类文件:
find /home -not -type f -not -type d -not -type l
答案 1 :(得分:1)
接受的答案不备份/恢复文件权限。 在备份和恢复时,应使用参数“ p”。 另外,您可能想恢复到特定的文件夹,然后四处移动以不覆盖您可能想要保留的文件。
命令末尾的“ /”代表备份整个系统:
sudo tar -cvpzf /backupfolder/backup.tar.gz --exclude=/mnt /
sudo mkdir /recover_v1.1
sudo tar -xvpzf backup.tar.gz -C /recover_v1.1
... // replacing whatever you need manually
手动替换需要恢复的文件,并保留要保留的文件。
您可能希望将cron作业设置为自动运行备份。