sudo tar cvpzf由于先前的错误而退出并失败

我看了解这个问题的另一个问题,但我想我可能有不同的设置。

我也试图备份我的Ubuntu机器,但这是不同的。 我用Wubi在我的笔记本电脑上安装了Ubuntu 11.10和Vista。 我已经花了相当多的时间在设置中达到这一点,我认为将它全部支持到我的外部硬盘可能是一个不错的选择。

所以从各种来源我收集了这个:首先我导航到我的外部硬盘然后我在这个驱动器上创建了一个备份文件夹,然后我从终端输入以下内容:

sudo tar cvpzf mybackup.tgz2 --exclude="/host/*" --exclude="/media/*" --exclude="/mnt/*" --exclude="/proc/*" --exclude="/tmp/*" / 

当这个流程最终以现有消息退出时,该过程持续了大约20分钟。 我确实注意到早期有一些读取错误,但它继续处理,然后它有三个’文件更改,因为我们正在阅读’和3到4分钟后它退出。

任何人都有建议,我可以做什么来获得这个备份?

现在只使用sudo tar cpf以及之前的所有排除项并添加--exclude="/dev/"运行备份后,我收到了以下错误:

 tar: removing '/' from front of names tar: /sys/module/bnep/sections/__mount_loc: file sharnk by 4085 bytes; padding with zeroes …. a whole bunch of these the paths are different tar: /home/tom/.gvfs: cannot stat: permission denied tar: /run/synaptic.socket: socket ignored …. 8 of these different folders tar: /var/lib/citadel/data: file changes as we read it …. 5 of these different folders 

希望有人了解正在发生的事情,因为我有点担心我有这些错误。 感谢您的任何帮助或建议。

这些消息意味着什么

首先,让我们分别看一下这些消息:

tar: removing '/' from front of names

你告诉tar存档绝对路径。 默认情况下(除非您传递-P选项), tar存储相对路径,例如,当您告诉它存储/etc/fstab时,它会存储/etc/fstab 。 如果您想在某个子目录中解压缩备份,这会有所帮助(Ubuntu上的tar程序也会在您解压缩时执行此操作,因此,如果在非Linux系统上提取存档,则仅存储绝对路径会有所不同)。 您可以忽略该消息。

tar: /sys/module/bnep/sections/__mount_loc: file sharnk by 4085 bytes; padding with zeroes

此错误在/sys 。 和/proc一样, /sys下的文件没有存储在磁盘上,它们是由内核动态生成的,备份它们没有意义。

tar: /home/tom/.gvfs: cannot stat: permission denied

~/.gvfs~/.gvfs使用的安装点 , GVFS是Gnome桌面环境的组件,允许访问网络文件系统,存档等。 这里没有任何支持。

tar: /run/synaptic.socket: socket ignored

套接字是客户端和服务器之间的“会面场所”。 没有存储数据,服务器将在启动时创建套接字。 备份套接字不是必需的,因此这条消息是无害的。

tar: /var/lib/citadel/data file changes as we read it

这条消息就是它所说的。 如果在进行备份时文件发生更改,则无法期望拥有该文件的最新版本。

备份的状态

大多数警告都是无害的; 你可以选择性地关掉它们 。

不要排除您所知道的目录,而是排除所有挂载点,这样您最终只会备份磁盘上的内容。 如果您有多个分区(例如,如果您有一个单独的/home ),请确保将它们全部列出。

 tar -czf mybackup.tgz --one-file-system / 

我会说你现在有一个完整的备份。 当然,您应该在删除数据之前对其进行测试。

进一步的建议

除非您的磁盘空间不足,否则我建议您克隆安装,以便可以直接从USB磁盘上运行它。 (请参阅将Linux安装移动到新计算机 ;还有如何将用户设置和数据迁移到新计算机? )

不相关的注释:你的post中有几个拼写错误 – “文件sharnk”(实际消息是“文件收缩”),“文件在我们读取时更改”(实际消息是“文件在我们读取时更改了”)。 你应该复制粘贴那些! 不进行复制粘贴极大地降低了我们对您所描述的情况的信心。 如果您的系统通常不会以英语显示消息,请首先运行export LC_MESSAGES=C以使用英语显示错误消息。

关于您遇到的错误:

tar:从名称前面删除’/’

这不是错误,它只是告诉您它正在做什么。 它告诉你它将路径存储为相对路径。 当你提取时,你需要在根目录(即/)中,以便它提取到/home…etc。 而不是/ directory / you / are / in / home。

tar:/ sys / module / bnep / sections / __ mount_loc:文件sharnk 4085字节; 用零填充

有几个目录是“特殊的”,不应该存储在任何地方(因为它们是在启动时创建的,并且不包含任何需要保存的特殊内容)。 这些目录是

 /dev /proc /sys 

事实上,正如你所经历的那样,试图保存它们会产生一些奇怪的结果。 因此,您应该排除它们,就像您为/ dev所做的那样。

tar:/home/tom/.gvfs:不能stat:权限被拒绝

如果没有详细说明原因,您不必担心此目录失败,因为您可能不希望包含内容。 如果您真的很担心,可以用。排除所有gvfs错误

 --exclude="/home/*/gvfs/*" 

有关更多信息,请参阅维基百科页面

tar:/run/synaptic.socket:socket忽略…. 其中8个不同的文件夹

这只是告诉你它忽略了套接字。 这些是在启动时创建的,当您使用计算机时,您可以相信它对此的判断忽略它们。