zoukankan      html  css  js  c++  java
  • 关于archlinux备份

    咦啊,uqi也不是大神,懂的都是皮毛。也不献丑。仅作记录之效。


    tar备份arch:

    创建exclude列表,排除不需要备份的文件。一个样例:

    #vi /excl
    /proc/* /dev/* /sys/* /tmp/* /mnt/* /media/* /run/* /var/lock/* /var/run/* /var/lib/pacman/* /var/cache/pacman/pkg/* /lost+found

    准备一个liveCD,也就是安装arch的u盘。

    插入u盘,进入bios,设置u盘为优先启动。

    进入u盘系统,挂载好原系统的分区。一个样例:

    mount /dev/sda2 /mnt
    mkdir /mnt/{boot,home}
    mount /dev/sda1 /mnt/boot
    mount /dev/sda3 /mnt/home

    挂载之后就可以执行chroot进入要备份的系统了。

    arch-chroot /mnt /usr/bin/bash

    进去之后,执行

    tar cvpjf backup20160910.tar.bz2 --exclude-from=/excl /

    注:这里excl是一开始创建的过滤列表,若它不在tar命令的执行路径内,则应将路径写完整。
      这里建议tar的执行路径不包含在需要打包的路径内,即tar的执行路径最好放在excl列表中的某个文件夹内,只是为了防止递归备份。

      最后,当然要保证磁盘空间充足。

    这样,整个系统就被打包好了。在tar的执行路径下,应该可以看到备份文件了。


    备份好的包可以用来还原,迁移系统。

    tar恢复arch:

    首先,插u盘进入liveCD。

    规划好分区,格式化啥的,参见archwiki的Beginner's Guide.

    同样的,挂载好分区。一个样例:

    mount /dev/sda2 /mnt
    mkdir /mnt/{boot,home}
    mount /dev/sda1 /mnt/boot
    mount /dev/sda3 /mnt/home

     当然,需要挂在备份包的存储分区。一个样例:

    mkdir /backup
    mount /dev/sda4 /backup

    其中,备份包的存储位置是sda4,这里插一句,大家是怎么分辨sdax对应哪块空间的?反正我是根据大小啦=。=

    创建临时目录/backup作为sda4的挂载点。

    最后执行:

    cd /mnt
    tar xvpjf /backup/backup20160910.tar.bz2

    将备份包解压到对应的位置。

    然后生成fstab:

    genfstab -U -p /mnt >> /mnt/etc/fstab

    执行完成后建议检查一下/etc/fstab的正确性。

    接着进入恢复好的系统:

    arch-chroot /mnt /bin/bash

    重新配置启动引导:

    grub-mkconfig -o /boot/grub/grub.cfg

    这样,备份包就恢复好了。

    退出chroot,卸载目录,重启,应该可以进入系统了,还是熟悉的面孔。

    exit
    umount -R /mnt
    reboot

    后话:

    咦呀,uqi也是第一次写博客,而且是博客园这样大的平台,写到这里还是惊魂未定0v0。uqi也有自知之明,一开始申请写博客权限的时候也写明了:借园子这样的好地方,边学习,边记录。事实上,uqi也是刚刚接触linux,今年6月份端午的时候。折腾了三个月,一直在折腾,因为它总是冒出莫名其妙的问题,有的解决了,有的没能解决。事后观之,在折腾的过程中,虽说没学到啥实质性的技术,但至少了解了一些处理问题的框架模式,自己也能动手解决一些小问题了,对自己还是很有帮助的。

    事实上,本文写的事情uqi已经折腾了三四次了。一开始打算装着玩,linux这边分的空间太少了。期间加过一两次,加上这次的大改,重新划了分区表。每次操作都重新找教程,于是这次自己把它写下来,方便以后查看,O(∩_∩)O哈哈~

    好了,就这样,uqi第一次写博客,希望看官手下留情啊,任何意见我都会听的。谢谢~

  • 相关阅读:
    Android学习总结(十三) ———— ListView 简单用法
    Android学习总结(十二)———— BaseAdapter优化
    Android学习总结(九)———— 内容提供器(ContentProvider)
    Android学习总结(十)———— Intent的使用
    RHEL 6.5升级GCC 4.9.3
    nodejs npm install全局安装和本地安装的区别
    ACE_linux:Reactor与Proactor两种模式的区别
    ACE_linux:任务 & 命令(Task and Command)
    ACE_linux:UDP通信
    ACE_linux:TCP通信
  • 原文地址:https://www.cnblogs.com/yychi/p/5860027.html
Copyright © 2011-2022 走看看