Osamu Sayama's Weblog
- All
- Desktop
- English
- Input Method
- Printing
- Solaris x86
VirtualBox and nevada b115
nevada b114 からの問題みたいですが、VirtualBox が原因で起動した瞬間に System 自体が crash します。 このへんに書いてあり、修正モジュールも提供されているようですが、ちょうど VirtualBox 2.2.4 がリリースされ、これで fix されました。ので b114 base になったら 2.2.4 がお勧めです。
Posted at 08:35午前 6 01, 2009 by sayama in Solaris x86 | 投稿されたコメント[0]
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最後に NAT を構成する。
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
# 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.img5.6MB/s = 44.8Mbps ぐらいでした。ここで、この帯域を 10Mbps ぐらいに絞ってみます。
/home/sayama/dummy_100m.img を dummy_100m.img で取得しています
/home/sayama/dummy_100m.img 100% 100MB 5.6MB/s 00:18
# 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 に詳しく書いてますので興味のあるかたは試してみてください。
Posted at 10:51午後 1 19, 2009 by sayama in Solaris x86 | 投稿されたコメント[0]
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 を入れ替えればよいかと思います。
Posted at 10:43午後 12 22, 2008 by sayama in Solaris x86 | 投稿されたコメント[0]
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 上での切り替えはサポートされてないようですが今後入ってくるようです。
Posted at 10:08午後 10 14, 2008 by sayama in Solaris x86 | 投稿されたコメント[2]
EeePC 901 on OpenSolaris
最近 EeePC 901-X を入手したので OpenSolaris nv_97 base 入れてみました。Ohta-san のブログで情報を得て参考にさせてもらったので、確かに結構くせもので動かないのばっかですが、、、とりあえず Xorg/intel を 1024x600 で立ち上げて E-Mobile で Network が使えるようになりました。ので外出先でインターネットを使うレベルではなかなか使えます。以下ざっとメモを書いておきます。
- D ドライブを潰して 8G のほうにインストールした。901 は BIOS でブートデバイスが切り替えられ、USB boot も使えるので余っていた 1G の SD に USB image を焼いた。iso から usb image の作成方法は 'opensolaris usbcopy' でサーチすれば見つかります。1つ日本語メッセージがらみのバグが usbcopy にあってコマンドラインの日本語メッセージがある環境では LC_ALL=C で起動したほうがよいです。
- Boot 時に grub に -v option を渡さないとキーボードが認識されないのでこれを指定
- 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
- vesa の 800x600 で上がるのであとは通常どおりインストール
- インストール後は再度 grub で -v オプションを与えて起動する。
- 必要なモジュールを入れ替え、/etc/X11/xorg.conf の vesa を intel に戻しておく。
- agpgart の 945GME 対応。これは 6738342 のバグなのですが、すでにパッチがあるのでこれを適用した agpgart 関連モジュールに入れ替え (いちおう build したバイナリをここにおいておきます)。また /etc/driver_aliases に i915 "pci8086,27ae", agptarget "pci8086,27ac" も追加しておく。
- keyboard の EeePC 対応。これは 6695011 のバグなのですが、-v で常に起動するようにしておけば、そのまま変更なしでもよいかと思いますが、すでに snv_100 に入ってますので、確認の意味で on source から diff をとって nv_97 base のソースに適用しました (head から build するとすでに fast reboot project の変更も入っていてそのままでは nv_97/98 に使えなかった)。
- audiohd は nv_99 に 6740761 に変更が入っているので、こっちは nv_99 からもってきました。
- Emobile の設定は Taki-san のブログを参照すればすんなりかと思います。あと Atom は Hyper threading が有効なので この kobayashi-san パッチの usbserフリーズ問題対応パッチは必須です。
ただ、onboard の Attansic Ethernet や Ralink 2860 はまだだめなので (6677682, 6732657)、Emobile などないとちょっとまだつらいかもしれません (または USB 接続のを別途購入するとか)。一度 ndis 試してみてうまくいかたなかったのですが、Linux などでは ndis でも動いているようなので native driver の動向を見ながらそのうちまたためてしみます...
Posted at 09:30午後 9 30, 2008 by sayama in Solaris x86 | 投稿されたコメント[3]
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 書いていたのですが、これはもういらなそうです。。
Posted at 08:18午前 9 16, 2008 by sayama in Solaris x86 | 投稿されたコメント[0]
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 も見れました。異なるプロセッサの仮想化環境も今後おもしろい分野ですね。。
Posted at 10:01午後 9 11, 2008 by sayama in Solaris x86 | 投稿されたコメント[0]
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 を消しまくったらできるようになりました。
Posted at 11:57午後 9 10, 2008 by sayama in Solaris x86 | 投稿されたコメント[0]
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 のキーコードの違いも早く直さないと..
Posted at 12:08午前 9 02, 2008 by sayama in Solaris x86 | 投稿されたコメント[0]
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 対応だとケース分けとかラッパーが必要になってしまうインターフェースです。。。
Posted at 10:19午後 8 28, 2008 by sayama in Solaris x86 | 投稿されたコメント[0]
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/) よいです。
Posted at 10:07午後 8 21, 2008 by sayama in Solaris x86 | 投稿されたコメント[0]
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 の変更が影響しているようで、リンカー絡みの問題のようです...
Posted at 11:30午前 8 04, 2008 by sayama in Solaris x86 | 投稿されたコメント[0]
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台の仮想マシンにインストールしてフェイルオーバーグループの構成とかも問題なく使用できてますので、なかなかよいです。
Posted at 10:52午後 7 24, 2008 by sayama in Solaris x86 | 投稿されたコメント[2]
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 をセットします。
Posted at 11:04午前 6 26, 2008 by sayama in Solaris x86 | 投稿されたコメント[0]
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
Posted at 10:35午後 6 13, 2008 by sayama in Solaris x86 | 投稿されたコメント[0]