Linux下備份系統至另一硬盤


首先會想到dd命令.

但,,

1,若是小硬盤還好,上T的大硬盤這樣做肯定不明智;

2,況且dd是在硬件層面的拷貝,前面的MBR也會隨之恢復到另一個盤,若源硬盤是100G,目標盤是200G,又會出問題,200G的硬盤由於被覆蓋寫入了100G硬盤的MBR導致只可用100G,更何況重寫MBR相當的麻煩;

所以最好不要用類似 dd if=/dev/sda of=/dev/sdb 的方式來備份至另一硬盤.

 

這里推薦用tar 的方式拷貝.

 

首先參照fdisk -l 的顯示將目標硬盤用fdisk跟源硬盤一樣分區,每個分區的起始柱更結束柱都能看到,當然也可以根據需要自己定義分區大小;

其中,swap 分區在fdisk 中新建好分區之后(也就是分配好了分區好之后)用t選項指定ID為82即可,若是fat32則為b;

分完以后更新分區表(或重啟,肯定前者更明智):

# partprobe

 

 

再用mkfs格式化.(源硬盤的分區格式可用#df -T 查看)

#mkfs -t ext3 /dev/sdb1

隨后就可逐個分區將源硬盤分區備份至目標硬盤分區:

# mkdir /mnt/sda1 /mnt/sdb1
# mount /dev/sda1 /mnt/sda1
# mount /dev/sdb1 /mnt/sdb1
# cd /mnt/sda1
# tar -cpv . |  tar -xpC /mnt/sdb1

當然有人會說這樣麻煩,直接dd if=/dev/sda1 of=/dev/sdb1,這樣也不是說不可,但是,,,

1,要是一個比較大的分區無謂的拷貝空數據不是聰明的做法;

2,tar在拷貝恢復的時候順便解決了碎片問題,所以這樣對系統的拷貝來說個人是十分推薦的.(盡管對於linux分區格式來說不用過多擔心磁盤碎片的問題)

 

對於備份恢復后加載swap分區的錯誤:“ read swap header failed:invaild argument”.

# mkswap /path/to/swap         ## eg: mkswap /dev/sda4

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM