前言
在不得已的原因之下要把一台 Dell 1950 實體備份 (備份成映像檔) 轉移到另外一台 Dell 1950 機器上,但是二台主機雖然機型相同但是 RAID Card 不同 (代號不同),所以就開不起來了。實作環境
- FreeBSD 6.2-RELEASE
- 主機硬體型號:Dell PowerEdge 1950
- 硬碟規格: SAS HDD 73 G * 2 (Build RAID-1)
- 磁碟陣列卡型號: 原機 (RAID 代號 mfid0)、轉移機 (RAID 代號 da0)
錯誤訊息
開機後因為原機的 /etc/fstab 設定掛載點為 mfid0,而轉移機因為 RAID Card 不同導致代號不同,因此開機流程到要載入 File System Table 時因為發現不同而導致無法繼續。Trying to mount root from ufs:/dev/mfid0s1a
ROOT MOUNT ERROR:
If you have invalid mount options, reboot, and first try the following from the loader prompt:
set vfs.root.mountfrom.options=rw
and then remove invalid mount options from /etc/fstab.
Loader variables:
vfs.root.mountfrom=ufs:/dev/mfid0s1a
vfs.root.mountfrom.options=rw
Manual root filesystem specification:
<fstype>:<device> Mount <device> using filesystem <fstype>
eg. ufs:/dev/da0s1a
eg. cd9660:/dev/acd0
This is equivalent to: mount -t cd9660 /dev/acd0 /
? List valid disk boot devices
<empty line> Abort manual input
mountroot>
解決步驟
首先鍵入【?】確認目前偵測到的代號確定為 da0。mountroot> ? //鍵入 ?
List of GEOM managed disk devices:
ufsid/4b5574a4a3705e66 ufsid/4b5574a49ac2ca11 ufsid/4b5574a58b956406
ufsid/4b5574a979b1ea da0s1f da0s1e da0s1d da0s1b da0s1a da0s1 da0 acd0
Loader variables:
vfs.root.mountfrom=ufs:/dev/mfid0s1a
vfs.root.mountfrom.options=rw
Manual root filesystem specification:
<fstype>:<device> Mount <device> using filesystem <fstype>
eg. ufs:/dev/da0s1a
eg. cd9660:/dev/acd0
This is equivalent to: mount -t cd9660 /dev/acd0 /
? List valid disk boot devices
<empty line> Abort manual input
mountroot>
確認代號為 da0 之後將請伺服器重新啟動,在 FreeBSD 開機畫面時鍵入數字 6 選擇 「6. Escape to loader prompt」 項目,接著輸入下列二行準備稍後手動載入
Type '?' for a list of commands, 'help' for....
OK set vfs.root.mountfrom.options=rw //輸入此行
OK set vfs.root.mountfrom=ufs:/dev/da0s1a //輸入此行
OK show //確認上述二行是否載入
OK boot //繼續開機流程
Enter full pathname of shell or RETURN for /bin/sh: //進入 Single User Mode,請按下 Enter
# mount //查看目前檔案系統掛載情況
/dev/da0s1a on / (ufs, local, read-only)
devfs on /dev (devfs, local, multilabel)
# mount -o rw /dev/da0s1a //再次掛載根目錄 (允許可以讀寫)
# mount
/dev/da0s1a on / (ufs, local) //確認根目錄可以讀寫
devfs on /dev (devfs, local, multilabel)
# mount -t ufs /dev/da0s1f /usr //參考原機設定知道 f 為 /usr 掛載點
# mount
/dev/da0s1a on / (ufs, local)
devfs on /dev (devfs, local, multilabel)
/dev/da0s1f on /usr (ufs, local, soft-updates) //成功將 /usr 掛載
# /usr/bin/vi /etc/fstab //修改 /etc/fstab,將 mfid0 改成 da0 後存檔離開
#Device Mountpoint FStype Options Dump Pass#
/dev/mfid0s1b none swap sw 0 0 //將 mfid0 改成 da0
/dev/mfid0s1a / ufs rw 1 1 //將 mfid0 改成 da0
/dev/mfid0s1e /tmp ufs rw 2 2 //將 mfid0 改成 da0
/dev/mfid0s1f /usr ufs rw 2 2 //將 mfid0 改成 da0
/dev/mfid0s1d /var ufs rw 2 2 //將 mfid0 改成 da0
# reboot //重新啟動主機
依照上述步驟修改好 /etc/fstab 中將 mfid0 改成 da0 後,應該就可以順利開機並且掛載 File System 了!!