吳大:
我認為若是想進行虛擬化 P2V,那麼針對UNIX-LIKE的作業系統的移植作法.
這篇文章展示的作法,就具有很好的參考價值!!
這篇文章展示的作法,就具有很好的參考價值!!
[原作是苗栗縣網FreeBSD討論版->OHaHa's Study Diary 網友:小龍]
本文主要說明怎樣把你已安裝的FreeBSD從一個硬碟移到另一個。我用dump/restore成功試驗了多次,在開始前,請閱讀本文。
我們假設你的FreeBS已裝在一個4G的硬碟上(IDE Master ad0),並且我們想把它移到一個新的20G的硬碟上,你所要做的僅僅是去掉老的硬碟,裝上20G的新硬碟(作為IDE Master)並且進行FreeBSD的最小化安裝(minimal clean install),準確設置好你的分區。請確定你已設置了硬碟為可啟動,並且啟動一次做為測試!
接下來,重新裝上原硬碟(4G)(作為IDE Master),和新硬碟(20G)(作為IDE Slave)。啟動原來安裝的FreeBSD到單用戶模式下(single user mode):
進入單用戶模式:
1.在10秒倒計時的時候按下空格(space)鍵,輸入
boot -s
然後在#後輸入
fsck -p
mount -u /
mount -a
swapon -a
adjkerntz -i
2.確定你已經有了所需的設備檔,這樣你就可以mount分區到從盤上。
cd /dev
./MAKEDEV ad1s1a
./MAKEDEV ad1s1e
./MAKEDEV ad1s1f
FreeBSD 5.x版本採用devfs,可以自動檢測硬體,因此不用
3.建立新硬碟分區的掛載點(mount point)
mkdir /backup
mkdir /backup/root
mkdir /backup/usr
mkdir /backup/var
4.我用一段shell腳本來做以下幾步操作:
1 - create new filesystems (newfs the drive)
2 - mount the partitions
3 - dump the data from my old drive, and restore it to my new one
4 - unmount the new drives partitions
5 - enable softupdates on the new drive (optional)
下麵是我用的Shell腳本
源碼:
#!/bin/sh
newfs /dev/ad1s1a
newfs /dev/ad1s1e
newfs /dev/ad1s1f
mount /dev/ad1s1a /backup/root
mount /dev/ad1s1e /backup/var
mount /dev/ad1s1f /backup/usr
( dump -0f - / ) | ( cd /backup/root ; restore -rf - )
( dump -0f - /var ) | ( cd /backup/var ; restore -rf - )
( dump -0f - /usr ) | ( cd /backup/usr ; restore -rf - )
umount /backup/root
umount /backup/var
umount /backup/usr
tunefs -n enable /dev/ad1s1a ###在分區上面啟用SOFTUPDATES
tunefs -n enable /dev/ad1s1e
tunefs -n enable /dev/ad1s1f
#end
進行dump/restore的操作可能會花幾個小時的時間,請耐心等待。當硬碟當資料dumped and restored到新硬碟後,你要做的僅僅是卸除老硬碟(4G),把新硬碟設置為主盤(IDE Master)並且重啟(Reboot).現在你就可以從新硬碟(20G)啟動原來已安裝的FreeBSD了!
你可以下載 diskcopyshell 腳本,用tar xvf drivecopy.tar解壓得到drivecopy.sh文件。如果你自定義了分區(custom partitions),你需要修改drivecopy.sh文件。加入你在安裝的時候選擇了標準FreeBSD 分區(standard FreeBSD partitions),就把需要修改此檔。
你可以通過
man dump
man restore
man tar
man mount
man adjkerntz
來得到這些命令的更多資訊!
沒有留言:
張貼留言