思考実験とD.I.Y.

D.I.Y and Gedankenexperiment

【VirtualBox/FreeBSD】”13.4->13.5”に”buildworld”でマイナーアップデート[2]:「(1)実機のクローンVMを作成」

前に、”freebsd-update”で”FreeBSD13.4”から”13.5”にマイナーアップデートを試しましたたが[*1]、今回は実機のクローン仮想マシンVM)上で、”make Buildworld”によるアップデートを試そうと思います(*2*3)。【注*4

1. 準備

(1)Replicateサーバーのディスクイメージを作成

まずは、Replicateサーバーのディスクイメージを作成します。

(2)ディスクイメージコピーをVDI化

前に行ったときは、VHDファイルに変換しました[*5]。

今回、VM化する”Replicateサーバー”は運用中で、

  • ネットワーク設定(IPアドレス)が被るとネットワークにトラブルが起きる
  • ハードウェア構成の関係から”device.hitsファイルを修正しているので[*6]、そのままではVMはまともに起動しない

このため、別のFreeBSD/VMでVDIファイルをマウント/設定変更を行うために、イメージファイルvhdファイルではなくvdiファイルに変更します。

vhdファイルは別のFreeBSD/VMからマウントできません

 

user@Ubuntu24.04:~$  VBoxManage convertfromraw replsv.ada0.img replsv.ada0.vdi --format=VDI    

 

2. 実機クローンVMを作成

今回は、前節で作成した"vdiファイル”をVMのフォルダに最初から収める方法にてVMを作成します(*7)。

(1)新規VMを作成
ナビゲーション
(VirtualBox7)
仮想マシン新規
タブメニュー”仮想マシン”から”新規”をクリックします。
VMの名前を設定し、<次へ>をクリックします。
VMへのメモリー容量とCPU数を定義して、<次へ>をクリックします。
vdi化した仮想ディスクを割り当てるために、この段階で、ウィザードを終了せずに、CUIでの作業を行います
(2)VDIファイルの移動

ここまで来た段階で、"VirtualBox"によって新しいVM用フォルダが作成されています

変換したvdiファイルを新しいVM用フォルダに移動します。

端末を開いて以下の操作を行います。

user@Ubuntu24.04:~$  cd VirtualBox\ VMs/vm\(replsv_FreeBSD13.4\)/ ;
user@Ubuntu24.04:~$  mv ../replesv.ada0.vdi . ;

 

 

(3)VMへのvdiファイル割り当て

VirtualBoxGUIに戻ります。

”すでにある仮想ハードディスクファイルを使用する”のラジオボタンをONにして、右端のフォルダアイコンをクリックします。
使う仮想ディスクファイルの一覧が表示されるので、<追加>をクリックします。
VMのフォルダ内に移動したvdiファイルが選択できるようになりますので、実機クローンのvdiファイルを選択します。
選択したvdiファイルを反転させた状態で<適用>ボタンを押します。
<次へ>をクリックします。。

 

作成したVMの諸設定確認画面になりますので、<完了>ボタンをクリックします。

 

3. 実機クローンVMの起動前設定変更

(1)別のFreeBSD/VMでVDIファイル追加設定

今回作成した”実機クローンVM”は、ハードウェア設置などをカスタマイズしているので(*8)、そのままでは起動しません。

そこで、ハードウェア設置などをVMとして起動できるように修正します。

まず、別のreeBSDなVM設定を変更し、実機クローンVMのvdiをマウントできるようにます。

別のreeBSDなVM設定/ストレージを開きます。
ウインドウ左上の<追加>をクリックします。
コントローラーを反転させ、追加アイコンをクリックします。
実機クローンVMのvdiを選択して<開く>ボタンクリックすると、ディスクが追加されるので、<適用>ボタンをクリックします。
(2)別のFreeBSD/VMでVDIファイルのマウントと設定変更

別のreeBSDなVMを起動します。

実機クローンVMのvdiのルートファイルシステムをマウントします。

root@FreeBSD13.5:# mkdir /mnt/ada1    
root@FreeBSD13.5:# mount -t ufs /dev/ada1a /mnt/ada    
root@FreeBSD13.5:# cd /mnt/ada1    

/boot/device.hintsをオリジナルなものに戻します。

root@FreeBSD13.5:# cd /mnt/ada1/boot    
root@FreeBSD13.5:# mv device.hints device.hints.replsv    
root@FreeBSD13.5:# cp device.hints.orig device.hints    

余計なファイルシステムをマウントしないように不要部分をコマ円とアウトします。

root@FreeBSD13.5:# cd /mnt/ada1/etc    
root@FreeBSD13.5:# vi fstab    

 

下記の黄色字部分を追加します。

# Device        Mountpoint      FStype  Options Dump    Pass#
/dev/ada0a      /               ufs     rw      1       1
#/dev/ada1b     /tmp            ufs     rw      2       2
#/dev/ada1d     /var            ufs     rw      2       2
#/dev/ada1a     none            swap    sw      0       0
#
#/dev/ada4p1    /Replicate  ufs     rw      2       2

[..]



 

 

root@FreeBSD13.5:# cd /mnt/ada1/etc ;
root@FreeBSD13.5:# mv rc.conf rc.conf.orig ;
root@FreeBSD13.5:# cp /etc/rc.conf .

 修正を終えたら、別のreeBSDなVMシャットダウンします。

root@FreeBSD13.5:# shutdown -p now ;
 
(4)別のFreeBSD/VMから実機クローンのVDIファイル割り当て解除

再び、別のreeBSDなVM/ストレージを開き、実機クローンVMのvdiの割り当てを解除します。

実機クローンVMのvdiファイルを変転させ、右下の割り当て解除ボタンを押して、割り当てを解除します。
ストレージデバイス一覧から、実機クローンVMのvdiファイルが消えたら、<適用>ボタンを押します。

 

実機のクローンVMを作成できましたので、実機のクローンVMを起動させます。

 

【次回に続く予定】

ブログランキング・にほんブログ村へにほんブログ村 IT技術ブログへ

出典・引用・備考

*1:

*2:前回から1月半ほど経過しましたが、VM上での”make Buildworld”で不規則な”Panic”に悩まされて対処法を見つけるまで解決まで時間がかかってしまいました。

*3:”make Buildworld”中に、”CAM”がTimoutし、/dev/ada0(ルートファイルシステム)がアンマウントされてしまう現象に悩まされていました。

*4:この投稿の内容は、特定の機種並びに特定の環境での確認結果になります。
同等機種や異なる環境での動作他を保証するものではありませんので、ご留意いただけます様お願いいたします。

*5:

*6:

*7:通常、”vdiファイル”を収めるVMのフォルダを先に作っておくと、”フォルダがあるよ!”と言われて、VMが作成できません。

*8:”device.hihts”に手を加えて、ディスクのデバイス名を特定のscbusに与えてているため、ロードーはブートドライブである”/dev/ada0”を見つけることが出来ません。