此系統轉移方式並非最佳方法,僅為不得不採用之方法,其他系統或環境請千萬避免僅能使用此法備份或轉移。
你需要準備什麼?
Ubuntu Live CD : 請下載並燒錄成光碟,共需兩片。
為了讓環境單純,我們使用LiveCD開機,只把原系統視為一群檔案。其他的Live CD理論上亦可行,若您的硬體環境較為特殊,可嘗試使用其他Live CD。
善用man瞭解各項指令的意義與其他適當用法。
瞭解您必須針對您的環境對指令做適度地調整,而非僅是複製指令。
有哪些轉移的目標?
全部檔案 : 使用LiveCD mount檔案系統可確保都是檔案,去除檔案型式的設備,也不用擔心檔案鎖定的問題。
不論您採行何種措施,均應特別注意user、group、permission,有完整的轉移。
開機磁區 : 必須重建開機磁區及開機管理程式,本例中為grub。
步驟:
使用光碟開機,一片置於原系統,另一片置於新主機。若無法開機成功,表示硬體不被支援。
名稱:方便稱呼,原系統為linux1,新主機中的系統則為linux2。
使用passwd設定linux1中的root密碼。
啟動網路,請確認兩台主機能以網路連接,本例中使用dhcp,固定ip者請自行man ifconfig設定。
linux1 # dhclient eth0
linux2 # dhclient eth0
假設linux1取得ip為192.168.126.128,linux2則為192.168.126.129。
於linux2使用fdisk設定好你的分割區。並記得您的磁碟設備名,本例中假設僅有一分割區預定將/dev/sda1掛載於/。
格式化linux2中的分割區。
linux2 # mkfs.ext3 /dev/sda1
mount您的磁碟。假設linux1為單一分割區,路徑為/dev/sda1,若原設置多個分割區,請以相同目錄結構掛載至相對目錄下。
linux1 # cd /mnt && mkdir linux
linux2 # cd /mnt && mkdir linux
linux1 # mount /dev/sda1 /mnt/linux
linux2 # mount /dev/sda1 /mnt/linux
開始複製檔案。
linux2 # cd /
linux2 # ssh root@192.168.126.128 "tar cf - /mnt/linux" | tar xvf -
重建開機磁區 (需搭配相同的開機管理軟體,此例為grub2)
linux2 # mount --bind /dev /mnt/linux/dev
linux2 # chroot /mnt/linux
linux2 # update-grub
linux2 # grub-install --recheck /dev/sda
/* 以下為grub的範例 */
linux2 # grub-install --recheck --root-directory=/mnt/linux /dev/sda
linux2 # joe /mnt/linux/boot/grub/menu.lst
修改您的fstab。
linux2 # joe /etc/fstab
重開機,取出光碟,以硬碟開機。
修改網路等主機專屬設定。
完成。
延伸工作:
應用相同邏輯,可針對其他系統進行轉移。
活用類似指令,可建立備份及還原機制。
其他相關:
rsync : 以檔案為基礎同步您的系統。
Mondo Rescue : 支援全系統備份,並且可燒錄成開機光碟,無痛還原系統。
VMware : 能確認您的備份是可執行的狀態,並且便於測試。亦可利用虛擬系統的優勢,以檔案型式備份全系統組態。