Osamu Sayama's Weblog

月曜日 6 01, 2009

VirtualBox and nevada b115

nevada b114 からの問題みたいですが、VirtualBox が原因で起動した瞬間に System 自体が crash します。 このへんに書いてあり、修正モジュールも提供されているようですが、ちょうど VirtualBox 2.2.4 がリリースされ、これで fix されました。ので b114 base になったら 2.2.4 がお勧めです。

月曜日 1 19, 2009

crossbow

crossbow が b105 に入ったので使ってみました。とりあえず仮想 nic を一つ作るにはこんな感じ。

# dladm create-vnic -l eri0 vnic0
# dladm show-link
LINK        CLASS    MTU    STATE    OVER
eri0        phys     1500   up       --
vnic0       vnic     1500   up       eri0

でこの仮想 nic を何に使うと便利かというと、Exclusive IP の non-global zone では今まで物理 nic しか使えなかったのですが、crossbow が入って仮想 nic を使えるようになったことだと思います(Xen や VirtualBox からだとすでに内部インターフェースで使っていますが、public interface になったということでしょうか)。以下のような zonecfg ファイルに set ip-type=exclusive, set physical=vnic0 を指定することで Exclusive IP な zone を仮想 nic で構築できます。仮想 nic なので通常の nic 同様に snoop とったり DHCP clieint と構成したりでき、Exclusive IP の non-global zone をたくさん作成することが可能になりました。

# cat zonecfg/jura-z1
create -b
set zonepath=/export/jura-z1
set autoboot=true
set ip-type=exclusive
:
add net
set physical=vnic0
end

また、仮想スイッチを作ってそこにプライベートネットワークを構築したりもできます。とりあえず、etherstub0 という名の仮想スイッチとそこに vnic100, vnic101 という仮想 nic を作成したのが以下。

# dladm create-etherstub etherstub0
# dladm create-vnic -l etherstub0 vnic100
# dladm create-vnic -l etherstub0 vnic101
# dladm show-link                        
LINK        CLASS    MTU    STATE    OVER
eri0        phys     1500   up       --
vnic0       vnic     1500   up       eri0
etherstub0  etherstub 9000  unknown  --
vnic100     vnic     9000   up       etherstub0
vnic101     vnic     9000   up       etherstub0

さらに以下のような構成で etherstub0 仮想スイッチのプライベートネットワーク上に Exclusive IP の non-global-zone を作ってここから外部ネットワークに接続できるような NAT を構成するには以下のようにします。

外部ネットワーク <--- Host1 ---> etherstub0 仮想スイッチ <--- Host2 (jura-z2)
                 eri0                 vnic100 (192.168.1.1)                vnic101 (192.168.1.2)

まず、global zone Host1 に vnic100 を構成する。

# ifconfig vnic100 plumb up
# ifconfig vnic100 192.168.1.1 netmask 255.255.255.0 up
# echo 192.168.1.1 > /etc/hostname.vnic100

それで Exclusive IP の non-global-zone Host2 (jura-z2) を vnic102 で構成する。

# cat zonecfg/jura-z2
create -b
set zonepath=/export/jura-z2
set autoboot=true
set ip-type=exclusive
add inherit-pkg-dir
set dir=/lib
end
add inherit-pkg-dir
set dir=/platform
end
add inherit-pkg-dir
set dir=/sbin
end
add inherit-pkg-dir
set dir=/usr
end
add inherit-pkg-dir
set dir=/opt
end
add net
set physical=vnic101
end
# zonecfg -z jura-z2 -f jura-z2
# zoneadm -z jura-z2 install
# zoneadm -z jura-z2 boot
# zlogin -C jura-z2
最後に NAT を構成する。
# routeadm -u -e ipv4-forwarding
# cd /etc/ipf
# vi ipnat.conf
map eri0 192.168.1.0/24 -> 0/32 portmap tcp/udp auto
map eri0 192.168.1.0/24 -> 0/32
# svcadm enable network/ipfilter
# zoneadm -z jura-z2 boot

これで jura-z2 の non-global zone から外部ネットワークにアクセスできるようになります。

また、もう1つ crossbow の重要な新機能でフロー制御があります。たとえば、先ほどの構成の vnic100 に 192.168.1.2 行きのパケットのフローを jura-z2 として作成するには以下のようになります。

# flowadm add-flow -l vnic100 -a remote_ip=192.168.1.2 jura-z2
で sftp で実際に 100Mbyte のファイルを転送してみると、
sftp> get dummy_100m.img
/home/sayama/dummy_100m.img を dummy_100m.img で取得しています
/home/sayama/dummy_100m.img                   100%  100MB   5.6MB/s   00:18   
5.6MB/s = 44.8Mbps ぐらいでした。ここで、この帯域を 10Mbps ぐらいに絞ってみます。
# flowadm set-flowprop -p maxbw=10m jura-z2
計測してい見ると
sftp> get dummy_100m.img
/home/sayama/dummy_100m.img を dummy_100m.img で取得しています
/home/sayama/dummy_100m.img                   100%  100MB   1.2MB/s   01:26    

1.2MB/s = 9.6Mbps になり帯域制御がきいているのが実感できます。このへんの Administration Guides に詳しく書いてますので興味のあるかたは試してみてください。

月曜日 12 22, 2008

VirtualBox 2.1.0

VirtualBox 2.1.0 で出ましたが 2.1.0 にしたら OpenSolaris で 「半角/全角」キーの動作がおかしいという報告をうけました。さっそく OpenSolaris で使っていた 2.0.6 から更新してみたのですが確かに動作しないですね。前に似たような問題でレポートしたのですが 2.1 では別実装でなおしたと聞いていたのですが直ってませんでした... とりあえず、keyboard-new.c の X11DRV_KeyEvent() を見ると keysym を使うようになっていて keysym のコードが 0xffXX のものは nonchar_key_scan table から取得しているのを発見。ということこでこの table を変更すれば認識するようになりました。とりあえずすでに登録してもらったレポートにコメントいれておきました。いちおう nevada でビルドしたバイナリをここにおいておきます。/opt/VirtualBox/VBoxKeyboard.so を入れ替えればよいかと思います。

火曜日 10 14, 2008

Virtual Console

snv_100に Virtual Console が入りました。デフォルトでホットキー切り替えは無効になっているので以下で有効できるようです (svcs -a|grep vt とかみると vtdaemon や各コンソールの ttymon はデフォルトで有効になっている模様)。今のとこ Console 上でのみ使えるようで、この設定後 <Alt_L> + <F1-6>で切り替えられます。

svccfg -s vtdaemon setprop options/hotkeys=true
svcadm refresh vtdaemon
svcadm restart vtdaemon

デフォルトではセッション切り替えるたびに password 要求されるので、これを無効にするには

svccfg -s vtdaemon setprop options/secure=false

で再度 refresh, restart すればよいようです。まだ X 上での切り替えはサポートされてないようですが今後入ってくるようです。

火曜日 9 30, 2008

EeePC 901 on OpenSolaris

最近 EeePC 901-X を入手したので OpenSolaris nv_97 base 入れてみました。Ohta-san のブログで情報を得て参考にさせてもらったので、確かに結構くせもので動かないのばっかですが、、、とりあえず Xorg/intel を 1024x600 で立ち上げて E-Mobile で Network が使えるようになりました。ので外出先でインターネットを使うレベルではなかなか使えます。以下ざっとメモを書いておきます。

  1. D ドライブを潰して 8G のほうにインストールした。901 は BIOS でブートデバイスが切り替えられ、USB boot も使えるので余っていた 1G の SD に USB image を焼いた。iso から usb image の作成方法は 'opensolaris usbcopy' でサーチすれば見つかります。1つ日本語メッセージがらみのバグが usbcopy にあってコマンドラインの日本語メッセージがある環境では LC_ALL=C で起動したほうがよいです。
  2. Boot 時に grub に -v option を渡さないとキーボードが認識されないのでこれを指定
  3. Live CD で X が起動失敗するので、そのまま console から jack/jack で login して、pfexec env HOME=/ /usr/X11/bin/Xorg -configure でできた xorg.conf.new  の Device section の Driver "intel" を "vesa" に書き換え、/etc/X11/xorg.conf にコピーし pfexec gdm-restart
  4. vesa の 800x600 で上がるのであとは通常どおりインストール
  5. インストール後は再度 grub で -v オプションを与えて起動する。
  6. 必要なモジュールを入れ替え、/etc/X11/xorg.conf の vesa を intel に戻しておく。
    1. agpgart の 945GME 対応。これは 6738342 のバグなのですが、すでにパッチがあるのでこれを適用した agpgart 関連モジュールに入れ替え (いちおう build したバイナリをここにおいておきます)。また /etc/driver_aliases に i915 "pci8086,27ae", agptarget "pci8086,27ac" も追加しておく。
    2. keyboard の EeePC 対応。これは 6695011 のバグなのですが、-v で常に起動するようにしておけば、そのまま変更なしでもよいかと思いますが、すでに snv_100 に入ってますので、確認の意味で on source から diff  をとって nv_97 base のソースに適用しました (head から build するとすでに fast reboot project の変更も入っていてそのままでは nv_97/98 に使えなかった)。
    3. audiohd は nv_99 に 6740761 に変更が入っているので、こっちは nv_99 からもってきました。
  7. Emobile の設定は Taki-san のブログを参照すればすんなりかと思います。あと Atom は Hyper threading が有効なので この kobayashi-san パッチの usbserフリーズ問題対応パッチは必須です。

ただ、onboard の Attansic Ethernet や Ralink 2860 はまだだめなので (6677682, 6732657)、Emobile などないとちょっとまだつらいかもしれません (または USB 接続のを別途購入するとか)。一度 ndis 試してみてうまくいかたなかったのですが、Linux などでは ndis でも動いているようなので native driver の動向を見ながらそのうちまたためてしみます...

火曜日 9 16, 2008

suspend-resume on Solaris x86

ここんとこのビルドでsuspend-resume が成功という話をきくので、 Vaio VGN-BX4AANS を OpenSolaris の nv_97 ベースに上げたら念願の suspend-resume が動くようになりました。確か nv_96 までは 6734669 のバグがあったようで resume で戻ってこなくなってしまっていたのですが(64bit のみの問題)、nv_97 で直りました。興味ある方は一度 nv_97 以降で試してみてください。このへんに詳しく書いてありますが、基本的には /etc/power.conf に S3-support enable を書いておけば gnome のメニューから「システム」-> 「サスペンド」が選べるようになります 。wpi, audiohd あたりは resume 後も動作しましたが、myk は正しく動かなかったのですが 2.6.2 に上げたら動きました。Panasonic CF-Y5 で nevada 98 でも試してみましたが、こちらもいちおう動きました (Y5 のほうは suspend からの復帰は任意のキーではなく電源キーで復帰) 。おかしな動作の場合は、/var/adm/messages に何かエラー出てないか見てみるよいかもしれません。ついでに別件ですが myk 2.6.2 では Hardware Checksum offloading がデフォルトで disable になってました。それまでは UDP パケットで check sum がおかしくなる現象がでていて、/etc/system に set ip:dohwcksum = 0 書いていたのですが、これはもういらなそうです。。

木曜日 9 11, 2008

Acrobat Reader 8 for Solaris x86

sparc 用の Acrobat Reader 8 を Transitive を用いて x86 で動かすためパッケージが公開されたようです。詳しくは

http://blogs.sun.com/DanX/entry/acrobat_reader_8_for_solaris
https://train.transitive.com/reader

に書いてあります。必要なものが全部入っているので、わざわざ仮想化環境を用意して emulate のためだけに Linux をインストールとかの作業がないぶん楽なのと native アプリのようにシームレス使えるのは便利ですね。さっそく使って見た感じでは、SunRay 環境だと若干遅めに感じましたが Laptop の OpenSolaris だと Local disk が影響しているのか意外とサクサク動くのにびっくりです (私はあまり好みではないですが firefox の plugin としても使えます)。ちなにみ、ここから日本語パックをもってきて、インストール時に /opt/QuickTransit-SPARC/TransitiveReader/opt を指定すれば、日本語フォントが embedded されてない日本語 pdf も見れました。異なるプロセッサの仮想化環境も今後おもしろい分野ですね。。

水曜日 9 10, 2008

OpenSolaris upgrade to b96

Laptop で使っている OpenSolaris をいつもどうり image-update で更新したら

OSError: [Errno 90] Number of symbolic links encountered during path name traversal exceeds MAXSYMLINKS: '/tmp/tmpYxNUva/var/svc/profile/inetd_generic.xml'

なるエラーに遭遇しました。 同様な問題がここで上がってました。とりあえず、ここに書いてあるように、おかしくなっている /var/svc/profile/inetd_generic.xml のリンクをを削除して、空のダミーファイルをおくと回避できました。また、こういう途中で落ちてしまうと BE がおかしな状態のものができてしまうので、pkg image-update する前に

# beadm unmount opensolaris-X
# beadm destroy opensolaris-X
# pkg rebuild-index

してから pkg image-update をしたほうがよいようです(私は最後に失敗した BE を消しました。。)。その後、成功したと思ったら最後に

beadm: Unable to activate opensolaris-X

なるエラーで新しくできた BE を activate できません。。。とりあえず、別の BE を activate して再度行ったらできるようになったのですがまだ原因不明です。また再現したら調べてみよかと思います。

追記:その後、image-update した後に再びこのエラーに遭遇して activate できなくなりました。どうも残り容量が少なくなるとできなくなってしまうようで、zfs の残っていた古い snapshot を消しまくったらできるようになりました。

火曜日 9 02, 2008

Yen and underscore key on VirtualBox 1.6.4

最近気づいたのですが Laptop で使っている VirtualBox を 1.6.4 に上げたら ゲストOS で ¥ や _ キーが入力できない問題に遭遇しました。サーチしてみると他の言語のキーボードですが VirtualBox 1.6.4 broke my keyboard を発見。確かに 1.6.2 の VBoxKeyboard.so に戻すと再び入力できるようになりました。さっそくソースをみてみると 9991 の以下の変更が影響しているようです。

------------------------------------------------------------------------
r9991 | vboxsync | 2008-06-27 20:58:47 +0900 (金, 27  6月 2008) | 1 line

FE/Qt3 and 4: added a second algorithm for detecting host keyboard layout

うー む、どうもホストマシンのキーボードレイアウトの自動判別機能を改良したようだが、うまく動いていないようです。とりあえず workaround は 9990 までの VBoxKeyboard.so を使うでよさそうなので(9991 の変更は src/VBox/Frontends/VirtualBox/src/linux で閉じている)、 1.6.2 のバイナリが残っている人はそれを使ってもよいかと思います。1.6.2 は今はダウンロードできないようなので、ない人は VBoxKeyboard.so に以下のようにパッチをあてて、/opt/VirtualBox/VBoxKeyboard.so を入れ替えると使えるようになるかと思います (もちろん OSE で自分でビルドしてもいいかと思います)。

# cd /opt/VirtualBox
# cp -p  VBoxKeyboard.so VBoxKeyboard.so.org
# echo "main_keyboard_type_scans+0x214?W 7d\nmain_keyboard_type_scans+0x34c?W 73" | mdb -w VBoxKeyboard.so

以下は、SunRay 環境だと再現しないのでなぜかと思って調べてみたことを書いておきます。

X11 の keycode/keysym から guest 用の scan code を発生する機能が必要で keycode/keysym は Xserver のタイプ (Xorg/Xsun) やキーボードレイアウトによって意味が異なるので、scan code を生成するにはそれぞれの場合分けで生成が必要である。でこの処理を VBoxKeyboard.so でやっていて 9991 で Xorg のほうは新たな方法に変えたのだが、keycode -> scan code 変換テーブルが今のとこ英語101キーボードの範囲しか定義されていないようである。ので日本語106キーボード固有のキーは使えないようになってしまった(どうももとから、無変換、変換キーは使えなかたったようですが、あまり使われないので問題にならなかったようだ)。SunRay は Xsun を使うのでこの問題がおきなかったようです。keyboard-new.c の X11DRV_KeyEvent() がそうで、dtrace でここを調べると (10752 は VirtualBox で quest 本体のプロセス)

# dtrace -n 'pid10752::X11DRV_KeyEvent:entry {printf("KeyCode=%x(%d)\n", arg0, arg0);} pid10752::X11DRV_KeyEvent:return {printf("ret=%x(%d)\n", arg1, arg1);}'

該当するキーを guest os の中で押すと 0 が返ってくるのがわかります。上記 mdb であてるパッチはとりあえずここで使われている main_keyboard_type_scans table の  Standard PC keyboard のほうにパッチをあてるものです。¥キーの X keycode は Xorg on Solaris, Xorg on Ubuntu ともの 133 , _ (underscore) のほうは 211 なのでこれらの AT scan code を書いてあげればよい。このテーブルは unsigned int の配列なので 133(=0x85) x 4 = 0x214 に 7d を書けばよい、同様に 0x34c に 73 を書けばよく上記の mdb コマンドになります。ちなみにこの問題は VirtualBox バイナリのフロントエンドの問題で VBoxSDL で起動したときはおきなかったりします。いちおうパッチを作ったので Linux も試してからバグレポートでも書こうかなと思ってます。しかしこの Xorg on Solaris のキーコードの違いも早く直さないと..

木曜日 8 28, 2008

network interface

システムのネットワークインターフェースを取得するとき、IPv4 だと ioctl で SIOCGIFCONF で取得することができます。ただ、これだと struct ifreq が IPv4 に依存しているので IPv6 のインターフェースも取得できません。調べてみると SIOCGLIFCONF や struct lifreq なる L つきのインターフェースで IPv6 のアドレスも取得できるようです。こちらだと struct sockaddr_storage で lifru_addr も扱えるので IPv6 アドレスも扱えるようです。でさっそくサンプルはないかと OpenSolaris のソースブラウザからサーチしてみました。

いっぱいでてきますね。ifconfig.c のが参考にしながら無事にシステムのインターフェースを取得するプログラムができました。ポイントは SIOCGLIFNUM でインターフェース数を求め、SIOCGLIFCONF でインターフェースのアドレスを取得したあとはいったん socket を close し、さらに情報を取得するにはそのインターフェースのアドレスファミリーで socket を open すればよいようです。これがサンプルで、cc getinterface.c -lsocket -lnsl でコンパイルした実行結果です。やはりこのへんはソースがみれるようになっていると参考にできて便利ですね。。

%./a.out
ifname(AF_INET) = lo0
    addr=127.0.0.1
    netmask=255.0.0.0
ifname(AF_INET) = iprb0
    addr=192.168.180.14
    netmask=255.255.255.0
    broad=192.168.180.255
ifname(AF_INET6) = lo0
    addr=::1
    netmask=ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
ifname(AF_INET6) = iprb0
    addr=fe80::20e:cff:fe3b:852e
    netmask=ffc0::

ちなみ SIOCGIFCONF は Solaris/Linux 共通なのですが、L つきのインタフェースは Solaris 固有で Linux とかだと getifaddrs() を使うようで、Multi platform 対応だとケース分けとかラッパーが必要になってしまうインターフェースです。。。

木曜日 8 21, 2008

VirtualBox OSE

VirtualBox OSE (OSE) を久々にビルドしてみたのですのが、svn のバージョンが 9000 台だったのがもう 11000 台になっているんですね。前は確か QT4 は必須ではなかったのですが、今は QT4 は必須になってましたので、qt-x11-opensource-src-4.3.5.tar.gz を持ってきてビルドしました。1つ Solaris default の gcc 3.x だと以下のようなエラーでビルドが止まってしまう問題があるらしく (nv_95 の 64bit 環境) 、ここに書いてあるように  src/gui/Makefile から -O2 を削除することで対処しました。

error: inconsistent operand constraints in an `asm'

ちなみに qt4 のビルドに使ったのは以下です。

./configure  -v -platform solaris-g++-64 -prefix /opt/qt4-64 \
    -I/usr/include \                                                           
    -I/usr/X11/include \
    -I/usr/X11/share/include \
    -I/usr/sfw/include

あとは

% env LD_LIBRARY_PATH='/opt/qt64/lib:/opt/qt4-64/lib' ./configure --with-qt-dir=
/opt/qt64 --with-qt4-dir=/opt/qt4-64 --build-libxml2 --build-libxslt
% source <whre>/env.sh
% kmk
% mkdir -p tools/solaris.amd64/qt/v3.3.8
% ln -s /opt/qt64/* tools/solaris.amd64/qt/v3.3.8
% kmk packing

で out/solaris.amd64/release/bin/VirtualBox-1.6.51_OSE-SunOS-amd64-r11414.tar.gz ができました。ちょっと使ってみると起動 script が /usr/bin/VirtualBox3 になってました。Frontends/VirtualBox4 で build もしているし、 Qt4 base がデフォルトになるのでしょうか...

*注) いったんインストールした後に 1.6.4 を再度インストールすると

Could not load settings
アクセスできません。

とかのエラーで仮想マシンが起動できなくなりました。VirtualBox Machine Configuration の xml ファイルから該当する設定を削除すれば(今回は HardwareVirtExNestedPaging, GuestProperties/) よいです。

月曜日 8 04, 2008

VirtualBox on nevada 95

nevada に SunRay インストールして使っているマシンがあるのですが、nevada 95 にあげたら VirtualBox が

ERROR: 0 bytes read from child process

なるエラーをはいて動かなくなりました... search してみると

http://www.virtualbox.org/ticket/1840

なる report  が VirtualBox のほうにすでに登録されてまして、ここの VBoxSVC を入れ替える workaround でとりあえず動くようになりました。どうも PSARC/2008/342 Further SID support の変更が影響しているようで、リンカー絡みの問題のようです...

木曜日 7 24, 2008

VirtualBox with host interface on OpenSolaris

今まで VMware とかで構成するのが多かった仮想テスト環境ですが最近 OpenSolaris (nv_93 base) + VirtualBox に移行しています。PXE ブートも使えるので、仮想マシンを1つ Solaris 10 u5 で構成しこれをインストールサーバーにする。それで新たに仮想マシンを作成して、これに PXEブートでインストールといったことが簡単に行えます (この図の Solaris 3 は PXE + JumpStart でインストール中です)。

外部のホストと接続するにはホストインターフェース経由が必要なのですが、OpenSolaris だと crossbow project の恩恵が受けられて vnic が使用できます。ホストインターフェースを使用する場合は、root で起動するか、もしくは net_rawaccess の privilege を与えないとだめなのですが (ppriv で確認しましたがさらに proc_priocntl, sys_net_config も必要のような...)、私は pfexec VitrulBox で Primary Administorator で実行してます。OpenSolaris のホストインターフェースの設定はいたって簡単で、以下の図のように

  • 「割り当て」でホストインタフェースを選択する
  • MAC アドレスを適当に指定する
  • 設定アプリケーションを指定する

これだけです。設定アプリケーションとは

% cat /export/home/sayama/vnic/sol2.vnic
#!/bin/bash
/usr/lib/vna myk0 00:a1:a2:ca:ca:a3
exit 0

なる vna (注 : private interface です...) を呼ぶスクリプトです。ここで指定する MAC アドレスは GUI で指定したものと同じになる必要があります (また、スクリプトにはあらかじめ実行権を与えておく)。/usr/lib/vna は実行する度に vnic を stdout に返すのですが、設定アプリケーションを使うことで動的にこの値を構成できて管理がらくになります。あとは必要な仮想マシンの分だけ設定アプリケーションを用意しておけばよいです。SunRay サーバーを2台の仮想マシンにインストールしてフェイルオーバーグループの構成とかも問題なく使用できてますので、なかなかよいです。

木曜日 6 26, 2008

zfs root for grub

*** Nevada 96 で直りました... ***

nevada で  luactivate に locale に依存したバグ (6714234) があるようで BE がうまく切り替わりません (それと grub のメニューにも追加されない)。zpool status の出力に依存してパースしていたようで、とりあえず以下の変更を入れると動くようです (/usr/sbin/luactivate にも同様なとこあるので mirror しているとか該当しそうな場合はこっちも直してください)。

% diff /usr/lib/lu/lulib.org /usr/lib/lu/lulib    
227c227
<       blob=`zpool status "$lgzd_pool"`
---
>       blob=`env LC_ALL=C zpool status "$lgzd_pool"`

あるいは、zpool に bootfs なるプロパティがありましてデフォルトではこれで指定されたとこからブートします。

# zpool get bootfs rpool
NAME   PROPERTY  VALUE                     SOURCE
rpool  bootfs    rpool/ROOT/opensolaris-2  local

逆にこの値を書き換えることで切り替えることができます。

# zpool set bootfs=' rpool/ROOT/opensolaris-3' rpool

また、grub menu にも bootfs なるキーワードが追加されまして、ここでも指定可能です。ここで指定された方が zpool の property より優先されるようです。基本的には beadm activate や luactivate コマンドの中で自動的に設定されるのものです 。

# cat /rpool/boot/grub/menu.lst
:
title Solaris 2008.11 snv_91 X86
findroot (pool_rpool,0,a)
kernel$ /platform/i86pc/kernel/$ISADIR/unix -B $ZFS-BOOTFS
module$ /platform/i86pc/$ISADIR/boot_archive
:
title opensolaris-2
bootfs rpool/ROOT/opensolaris-2
kernel$ /platform/i86pc/kernel/$ISADIR/unix -B $ZFS-BOOTFS
module$ /platform/i86pc/$ISADIR/boot_archive

また findroot はどの signature の root を探すかを指定するコマンドです。pool_rpool だと rpool という signature をサーチし、その signature が見つかった partition に対して root をセットします。

金曜日 6 13, 2008

zfs root on nevada 90

そういえば nevada 90からインストーラが zfs rootに対応しています。ただし、text installer と jump startのみが対応です。text installerのほうを選ぶと以下のようなメニューが追加されていて zfsを選べるようになります。

zfs pool  の名前や zfs root のデータセット名やサイズが指定できます。jumpstart のプロファイルは pool なるキーワードが追加されています。pool では プール名、pool サイズ、スワップサイズ、dump デバイスサイズ、デバイス名を指定します。また bootenv installbe で bename 指定します。以下の例だと pool 名 rpool でデバイス c0d0s0 からスワップサイズ 1g, dump デバイス 1g でサイズは auto でそのデバイスの最大サイズを bename として solaris を指定しています。

pool            rpool   auto 1g 1g c0d0s0
bootenv         installbe       bename  solaris


Calendar

Feeds

Search

Links

Navigation

Referrers