副本(本機備份整個系統,之後還原仍是還原到本機)linux
注意根目錄下要有充足的可用空間用於備份。vim
cd / #tar.gz格式 tar cvpzf system_backup.tar.gz / --exclude=/proc --exclude=/lost+found --exclude=/system_backup.tar.gz --exclude=/mnt --exclude=/sys #tar.bz2格式 tar cvpjf system_backup.tar.bz2 / --exclude=/proc --exclude=/lost+found --exclude=/system_backup.tar.bz2 --exclude=/mnt --exclude=/sys # 恢復系統 cd / #上傳文件到根目錄下 tar xvpfz system_backup.tar.gz -C / 或 tar xvpfj system_backup.tar.bz2 -C / #建立備份時排除的目錄 mkdir proc mkdir lost+found mkdir mnt mkdir sys
恢復完成重啓之後,因此的事情都會和你備份的時候如出一轍。segmentfault
鏡像(本機備份系統,還原到新主機上)性能
1,檢查系統版本,在目標機上安裝同樣版本的系統(最簡安裝便可),分區格式,類型也同樣(我沒試過不同的狀況,不知道可否成功) lsb_release -a uname -a df -Th free -h 2,備份源系統 # 由於目標機和源主機硬件配置不一樣,因此排除dev,tmp;再適當增長你要排除的文件,如:--exclude=/root/*.bz2 # 這裏再mnt下有充足空間,因此保存到mnt下。 cd / tar cvpzf /mnt/system_backup.tar.gz / --exclude=/mnt/system_backup.tar.gz --exclude=/proc --exclude=/lost+found --exclude=/mnt --exclude=/sys --exclude=/dev --exclude=/tmp --exclude=/media # 上傳到目標主機 scp /mnt/system_backup.tar.gz root@192.168.0.166:/mnt 3,在目標機上用ISO、LiveCD等啓動,掛載磁盤(通常會自動掛載到/media文件夾) sudo -s cd /media/<對應的uuid號> # 備份重要配置文件/boot/gurb/gurb.cfg /etc/fstab 記錄裏面的UUID, # 刪除重複文件 # 除了上面備份系統時排除的一些文件夾外,好比說dev mnt media sys這些文件夾,其餘所有刪除。 rm -rf root home usr lib lib64 etc var bin sbin opt boot run selinux vmlinuz initrd.img # 還原備份 mount /dev/vda1 /mnt/1 # 這裏注意千萬不要寫/目錄,會把現有的系統搞掛!!!應該是掛載的目錄 tar xvpfz system_backup.tar.gz -C /mnt/1 cd /mnt/1 #此時你能夠看到根目錄的結構,可是編輯fstab文件發現是現有系統的fstab chroot ./ #執行chroot後會以./目錄爲根目錄,這時編輯的文件就是真正的目標源文件了。 還原後修改/etc/fstab裏的UUID爲剛剛備份的文件裏面的信息,注意分區格式也要對應。 修改/boot/gurb/gurb.cfg裏的UUID爲剛剛備份的文件裏面的信息。 修改網卡、IP配置文件,以防沒法分配IP。(若是是虛擬機記得添加網卡,配置中等性能的顯卡) 若是有依賴於原有平臺的服務,如內建NTP,Agent等監控程序;關閉服務,關閉開機自啓; Ubuntu:在命令行輸入runleve能夠查看當前運行級別,通常默認是2 查看/etc/rc2.d目錄中的S開頭的服務都是會開機自動運行的;裏面是軟連接,想添加的話本身建一個連接文件就能夠,S表明start,後面數字是啓動順序,刪除軟連接。同時刪除/etc/init.d/下對應的腳本。 vim /etc/init.d/rc.local Centos:用systemctl 完成上述步驟後 exit #退出chroot cd ~ umount /mnt/1 # 一切完成後就能夠重啓了,不出意外就正常啓動系統了(啓動後原來安裝系統時設置的帳戶等所有消失;帳戶和源主機一致)。 若開機Grub提示「boot error 15 :Error 15 file not found」 解決方法:請檢查GRUB相關文件的內核文件所在位置。一般與/boot分區有關。 若開機Grub提示「dracut:dono't how to hand root=f078」 解決方法:將root=UUID改爲root=/dev/sdaX這種格式。 若開機系統提示/usr/libexec/gconf-sanity-check-2退出狀態256的解決 解決方法:chmod 777 /tmp
注意目標分區的格式最好是NTFS、FAT、EXT之類的格式,避免遇到大於4G的文件沒法備份的問題。ui
#最好有其餘分區或外接存儲設備,掛載好,df -lh看掛載點。 #備份 rsync -Pa / /media/usb/backup_20170410 --exclude=/media/* --exclude=/sys/* --exclude=/proc/* --exclude=/mnt/* --exclude=/tmp/* #恢復 rsync -Pa /media/usb/backup_20170410 /
dd命令屬於扇區克隆,目標分區要比備份分區要大,即便沒有使用的空間也會被原樣克隆下來,會比較慢。spa
#備份 df -h #查看系統所在分區 dd if=/dev/sda1 of=/dev/sdb3 #備份sda1到sdb3中 #恢復 dd if=/dev/sdb3 of=/dev/sda1 #恢復sdb3到sdb1中