Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何在不破坏系统的情况下替换主目录?_Linux_Backup - Fatal编程技术网

Linux 如何在不破坏系统的情况下替换主目录?

Linux 如何在不破坏系统的情况下替换主目录?,linux,backup,Linux,Backup,在设置了我的Raspberry Pi之后,我制作了一个图像,以便更容易地恢复到旧的软件状态。最近我想这样做,所以我保存了我的/home/pi文件夹的内容,格式化了sd卡并将图像写入其中 到目前为止,一切顺利。然后,我尝试简单地删除完整的/home/pi文件夹,并将其替换为旧图像中以前保存的文件夹。现在似乎所有的文件都在那里。但它不能正确启动 在某个时刻,它只是停止启动。然后我可以像终端一样正常使用它,但桌面没有启动 那么,如何以正确的方式替换我的主目录,以免对系统造成任何损坏 编辑: 我只是想再

在设置了我的Raspberry Pi之后,我制作了一个图像,以便更容易地恢复到旧的软件状态。最近我想这样做,所以我保存了我的/home/pi文件夹的内容,格式化了sd卡并将图像写入其中

到目前为止,一切顺利。然后,我尝试简单地删除完整的/home/pi文件夹,并将其替换为旧图像中以前保存的文件夹。现在似乎所有的文件都在那里。但它不能正确启动

在某个时刻,它只是停止启动。然后我可以像终端一样正常使用它,但桌面没有启动

那么,如何以正确的方式替换我的主目录,以免对系统造成任何损坏

编辑: 我只是想再做一次

sudo cp-a/home/pi/fileserver/backup/home/backup 我在文件服务器中安装了一个网络驱动器。由于网络在windows上,我假定所有权限都已在此处消失 cp-a/home/pi//原版/原版 sudoumount/home/pi/fileserver rm-r/home/pi/ mv/home/backup/home/pi sudo chmod-R 755/home/pi到目前为止一切都正常 sudo重启
重新启动后,它无法再正确启动。当我等待足够长的时间时,我看到X服务器出现错误。

这是一种非常可疑的数据归档方法。首先,正如您所提到的,windows将删除权限位。之后运行chmod-r755会产生非常糟糕的后果,因为一些程序为了工作需要对一些文件(例如ssh密钥)使用非常特定的访问位。更不用说使所有内容都可执行对安全性有害

考虑到你的情况,你可以 将所有内容备份到Tar或Zip存档中—这样权限将保持不变 b生成虚拟磁盘文件,该文件将存储在共享的windows驱动器上,并装载到/home/pi

如何执行场景A:

将backup.tar.gz复制到共享驱动器

打开包装:

cd /home/pi
tar xpvzf backup.tar.gz
优点:

单线备份 占用的空间很小 缺点:

打包/拆包需要时间 如何执行场景B:

1创建一个新文件以保存虚拟驱动器卷:

cd /mnt/YourNetworkDriveMountPoint
fallocate -l 500M HomePi.img
dd if=/dev/zero of=HomePi.img bs=1M count=500
mkfs -t ext3 HomePi.img
2将其安装到主目录

mount -t auto -o loop HomePi.img /home/pi/
500表示磁盘大小为500 MB 这样,您的整个pi将保存为windows共享驱动器上的一个文件,但所有内容都将保存在ext3中,因此保留所有权限。 我建议您将当前版本的映像文件保存在Pi设备本身上,而将旧版本保存在共享驱动器上。如果需要切换,只需复制文件即可,否则,如果所有映像都位于共享驱动器上,则读/写性能将100%取决于网络速度

然后,通过卸载现有映像并装载新映像,您可以轻松地复制此文件并立即交换它们

优点:

在备份版本之间轻松交换 完全透明的过程 缺点:

如果当前映像文件位于共享驱动器上,则性能将降低 由于所有500兆欧都将预先分配,因此它将消耗相当多的空间。 由于明显的原因,Pi用户必须在图像交换期间注销
现在,对于桌面未显示的问题,您需要检查/var/log/Xorg.0.log以获取详细消息。这可能是由于权限混乱造成的。我会尝试重命名/删除您当前的Xorg设置和缓存,这些设置和缓存位于/home/Pi/.config/中的某个位置,具体取决于您使用的是什么-XFCE、Gnome等,并让X服务器重新创建它们。但是,在执行此操作之前,请再次检查Xorg.0.log以获取确切的消息-可能还有另一个错误。如果您需要任何进一步的帮助,请对此答案发表评论

您是否将文件复制为cp-r/home/pi/*/mnt/sdcard/backup或cp-r/home/pi/mnt/sdcard/backup?换句话说,请检查您的备份是否包含隐藏文件和文件夹。我确保所有隐藏文件都由“cp-a/home/pi/”复制/首页/原件'。参见编辑原始帖子。我还通过使用“find/home/pi/-type f | wc-l”在移动和复制之前和之后计算目录进行了检查。谢谢。这很有帮助!我知道,一般来说,当置换操作没有弄糟时,可以替换完整的主目录。由于我的主目录现在实际上没有那么凌乱,我将把所有相关文件放在一个地方,只备份一个文件夹。尽管如此,您描述的方法仍然非常有趣,可能会在某个时候派上用场!
mount -t auto -o loop HomePi.img /home/pi/