linux系統遷移到新硬碟「linux備份系統到新硬碟」

Linux 系統的備份恢復
tar 命令

副本(本機備份整個系統,以後還原還是還原到本機)

注意根目錄下要有充足的可用空間用於備份。

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

  • /proc 許可權:文件所有者:root群組:root 所有者:讀取 執行 群組:讀取 執行 其它:讀取 執行
  • /lost+found 許可權:文件所有者:root群組:root 所有者:讀取 寫入 執行 群組:讀取 執行 其它:讀取 執行
  • /mnt 許可權:文件所有者:root群組:root 所有者:讀取 寫入 執行 群組:讀取 執行 其它:讀取 執行
  • /sys 許可權:文件所有者:root群組:root 所有者:讀取 寫入 執行 群組:讀取 執行 其它:讀取 執行

恢復完成重啟以後,所以的事情都會和你備份的時候一模一樣。


鏡像(本機備份系統,還原到新主機上)

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


rsync命令

注意目標分區的格式最好是NTFS、FAT、EXT之類的格式,避免遇到大於4G的文件無法備份的問題。

#最好有其他分區或外接存儲設備,掛載好,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命令

dd命令屬於扇區克隆,目標分區要比備份分區要大,即使沒有使用的空間也會被原樣克隆下來,會比較慢。

#備份
df -h   #查看系統所在分區
dd if=/dev/sda1 of=/dev/sdb3     #備份sda1到sdb3中

#恢復
dd if=/dev/sdb3 of=/dev/sda1     #恢復sdb3到sdb1中

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/209337.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-08 15:35
下一篇 2024-12-08 15:35

相關推薦

發表回復

登錄後才能評論