SolarisTips
目次
Install 後に rpool をミラー化する (-f は強制 option) †
# zpool attach -f rpool c1t0d0s0 c1t1d0s0
bootblk の書き換え (-f は強制option)
sparc# installboot -F zfs -f /usr/platform/`uname -i`/lib/fs/zfs/bootblk /dev/rdsk/c1t1d0s0 x86# installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1t1d0s0
OpenBoot PROM (sparc) での設定 †
環境変数の表示
{0} ok printenv
Bind されている Disk の表示
{0} ok show-disk
Link されている device name の表示
{0} ok devalias
新たに device name を設定 (解除は nvunalias ) 一時的には devalias xxx を使う
{0} ok nvalias primary /pci@0/pci@0/pci@2/scsi@0/disk@0 {0} ok nvalias mirror /pci@0/pci@0/pci@2/scsi@0/disk@1
boot-device の設定変更
[0} setenv boot-device primary mirror {0} reset-all
Solaris 11 ftp を使う †
default では ftp client はインストール済みだけど、ftp サーバ (proftpd) はインストールされておりません。
# pkg install service/network/ftp
サービスを有効にする
# svcadm enable ftp
Solaris 11 repo-full image からローカルリポジトリを作る †
# zfs create rpool/export/repoSolaris # mount -F hsfs <path_to>/xx-repo-full.iso /mnt # rsync -aP /mnt/repo/ /export/repoSolaris # umount /mnt # svccfg -s application/pkg/server setprop pkg/inst_root=/export/repoSolaris # svccfg -s application/pkg/server setprop pkg/readonly=true # svccfg -s application/pkg/server setprop pkg/port=10000 # svcadm refresh application/pkg/server # svcadm enable application/pkg/server
ローカルリポジトリを有効にする hostname が solaris の場合は
# pkg set-publisher -G '*' -g http://solaris:10000/ solaris # pkg refresh
シリアルポートがない NotePC でシリアルコンソールを使う †
市販の USB-シリアル変換ケーブルを使います。私が試したのは 変換名人の USB-RS232*1 (PL2303 chipのもの)Amazon でかなり手頃な値段のものです。Solaris 11, 11.1 では差すだけでデフォルトでインストール済みの usbsprl のドライバーで自動認識されます。/dev/term/0, /dev/cua/0 がこれ用のシリアルデバイス、インターフェースとして使えるようになります。 他の PC からシリアルコンソール login を可能にする。
terma と termb 用の consol-login サービスはデフォルトで備えつけられています。
# svcs -a | grep login:term disabled 9:40:29 svc:/system/console-login:termb disabled 9:42:53 svc:/system/console-login:terma
term0 用のサービスを作って、起動することにします。
# cd /lib/svc/manifest/system # cp console-login-terma.xml console-login-term0.xml
# vi console-login-term0.xml <?xml version="1.0"?> <!-- Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. NOTE: This service manifest is not editable; its contents will be overwritten by package or patch operations, including operating system upgrade. Make customizations in a different file. --> <!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xm/dtd/service_bundle.dtd.1"> <service_bundle type="manifest" name="SUNWcs:console"> <service name="system/console-login" type="service" version="1"> <instance name='terma' enabled='false'> <!-- these are passed to ttymon in the method script --> <property_group name='ttymon' type='application'> <propval name='device' type='astring' value='/dev/term/a' /> <propval name='terminal_type' type='astring' value='vt100' /> </property_group> </instance> <stability value='Evolving' /> </service> </service_bundle>
terma 用の内容から 'terma' -> 'term0' '/dev/term/a' -> '/dev/term/0' に書き換えてセーブ。
# svcadm restart manifest-import
# svcs console-login STATE STIME FMRI disabled 8:38:43 svc:/system/console-login:terma disabled 8:38:43 svc:/system/console-login:termb disabled 9:51:51 svc:/system/console-login:term0
# svcadm enable /system/console-login:term0
これで、他の PC からコンソールログインができるようになります。
他のPCからシリアルケーブルをクロスでつないで
# screen /dev/cua/b 9600
solaris term0 login:
のような login プロンプトが表示されたら成功です。NotePC とかでシリアルコンソールが必要な時というのは、Xサーバの設定を変えたりとか、画面が固まるとかに備えるためとかですかね。一点注意が必要なのは、そのような作業をする前に、あらかじめUSB-シリアル変換ケーブルだけは NotePC に差しておく必要があります。 /system/console-login:term0 を起動時から enable にしてても USB に接続されてない状態だと maintenance 状態になっており、後から差すだけではサービスは自動的には復活しません。
# svcadm clear /system/console-login:term0
シリアルコンソールに screen コマンドを使う †
20年以上、原始的な tip コマンドでシリアルに接続していた私ですが、瀧さんから screen が便利だよと教わったのでさっそく使ってみる。
$ screen /dev/ttyb 2400
一旦これでつなげておくと、あとは適当な端末から attach, detach で シリアルからの出力を表示可能なので、確かに便利ですね。
detach
Ctrl+a d
attach
$ screen -r
terminate
Ctrl+a k Really kill this window [y/n] y [screen is terminating]
Solaris 11.1(x86) で シリアルコンソールを使う †
GRUB の画面をシリアルコンソールに出力する。
# bootadm set-menu console=serial
tty-console という名前の BE を作成し bootadm でシリアルコンソールを指定する。
# beadm create tty-console # bootadm list-menu the location of the boot loader configuration files is: /rpool/boot/grub default 0 console serial timeout 30 0 Oracle Solaris 11.1 1 tty-console # bootadm change-entry -i 1 kargs="-B console=ttya" # bootadm list-menu -i 1 the location of the boot loader configuration files is: /rpool/boot/grub title: tty-console kernel: /platform/i86pc/kernel/amd64/unix kernel arguments: -B console=ttya boot archive: /platform/i86pc/amd64/boot_archive bootfs: rpool/ROOT/tty-console
シリアルコンソール login を可能にする。
# svcs -a | grep login:term disabled 9:40:29 svc:/system/console-login:termb disabled 9:42:53 svc:/system/console-login:terma # svcadm enable svc:/system/console-login:terma
Solaris 11.1 (x86) で Shutdown Animation(Happyface) を無効にする †
x86 の Shutdown で、Shutdown 中のバックの画面をテキスト表示に戻す
# svccfg -s svc:/system/boot-config:default setprop config/splash_shutdown = false # svcadm refresh svc:/system/boot-config:default
Solaris 11.1 で GRUB メニュー表示がおかしい †
beadm create xxx しても追加した BE が GRUB メニューに反映されない。 bootadm set-menu で設定した変更が GRUB メニューに反映されない。
PC(x86) や BIOS によってはこの現象があるるようです。私は以下で解決できました。
# bootadm install-bootloader
GRUB2 を再読み込みすることで解決できました。1-2 回はエラーで失敗しますが何度か実行すると成功しました。(ちょっと勇気が必要です)
Solaris 11.1 でユーザマネージャ(GUI)を使う時 †
デフォルト user でログインして、ユーザマネージャを起動しても 新規、削除、変更はできない。
- 右上のユーザーの横の鍵のアイコンをクリックする。
- 役割の変更... を選択
- 役割 root を選択
- 初期起動時は、新規パスワードを入力する
上がうまくできない時は、root 権限でユーザマネージャを起動する
$ sudo vp usermgr
Solaris 11 で beep 音がうるさい時 †
$ sudo vi /kernel/drv/audiohd.conf audiohd_beep=1;
上の行を audiohd_beep=0; に変更して保存する。
これが効かない時は、端末-> 編集-> プロファイル 編集-> 端末ベルを鳴らすのチェックを外す。
あるいは、以下を試してみるとか??
$ /usr/bin/xset b off
Solaris 11 で サスペンド/レジュームを可能にする †
$ sudo poweradm set suspend-enable=true $ sudo svcadm restart system/power
サスペンドに対応しているサーバの場合です
OpenIndiana で keymap/layout の変更 †
US キーボードに変更する場合
サポートしている keymap の表示
# kbd -s
# svccfg -s keymap:default listprop keymap
keymap/layout の変更
# svccfg -s keymap:default setprop keymap/layout=US-English # svcadm refresh keymap # svcadm restart keymap
なぜか、reboot しないと keymap/layout が反映されない。あれ?
OpenIndiana で 日本語入力を可能にする †
詳しくは次を参照してください OI-151a日本語入力
カーネルメモリーの使用量を調べる †
# echo '::memstat ' | mdb -k Page Summary Pages MB %Tot ------------ ---------------- ---------------- ---- Kernel 433006 1691 41% ZFS File Data 72413 282 7% Anon 390837 1526 37% Exec and libs 24520 95 2% Page cache 94665 369 9% Free (cachelist) 20371 79 2% Free (freelist) 8234 32 1% Total 1044046 4078 Physical 1044045 4078
USB デバイスの VID.PID を調べる †
# echo '::prtusb' | mdb -k INDEX DRIVER INST NODE VID.PID PRODUCT 1 ehci 0 pci1297,2005 0000.0000 No Product String 2 uhci 0 pci1297,2005 0000.0000 No Product String 3 uhci 1 pci1297,2005 0000.0000 No Product String 4 uhci 2 pci1297,2005 0000.0000 No Product String 5 uhci 3 pci1297,2005 0000.0000 No Product String 6 hubd 5 hub 0557.7000 No Product String 7 hid 7 keyboard 04fe.0007 ATEN 8 hid 8 mouse 093a.2510 USB OPTICAL MOUSE
起動している Zone の状況を見る †
globalzone # zonestat 10 Collecting data for first interval... Interval: 1, Duration: 0:00:10 SUMMARY Cpus/Online: 4/4 Physical: 4086M Virtual: 6129M ----------CPU---------- ----PHYSICAL----- -----VIRTUAL----- ZONE USED %PART %CAP %SHRU USED PCT %CAP USED PCT %CAP [total] 0.25 6.45% - - 2971M 72.7% - 3554M 57.9% - [system] 0.04 1.17% - - 1054M 25.8% - 1719M 28.0% - global 0.09 2.33% - - 604M 14.7% - 553M 9.03% - blogserver 0.00 0.15% - - 107M 2.63% - 206M 3.37% - firewall 0.00 0.14% - - 79.6M 1.95% - 71.1M 1.16% - mail100 0.00 0.14% - - 66.9M 1.63% - 59.9M 0.97% - mailserver 0.00 0.15% - - 61.3M 1.50% - 53.5M 0.87% - nameserver 0.00 0.16% - - 77.7M 1.90% - 68.6M 1.12% - pkgserver 0.00 0.15% - - 61.0M 1.49% - 55.5M 0.90% - rubyonrails 0.00 0.15% - - 63.0M 1.54% - 55.8M 0.91% - vnc10 0.00 0.13% - - 69.6M 1.70% - 61.8M 1.00% - vnc11 0.00 0.16% - - 62.5M 1.53% - 55.3M 0.90% - vnc12 0.00 0.15% - - 68.2M 1.67% - 57.5M 0.93% - vnc13 0.00 0.15% - - 64.8M 1.58% - 58.2M 0.95% - vnc14 0.00 0.14% - - 64.3M 1.57% - 54.8M 0.89% - vnc15 0.00 0.15% - - 62.6M 1.53% - 54.6M 0.89% - vnc16 0.00 0.15% - - 63.8M 1.56% - 55.3M 0.90% - vnc17 0.00 0.15% - - 68.7M 1.68% - 61.9M 1.01% - vnc18 0.00 0.15% - - 62.1M 1.52% - 54.7M 0.89% - vnc19 0.00 0.15% - - 71.0M 1.73% - 65.7M 1.07% - webserver 0.00 0.15% - - 72.7M 1.78% - 71.9M 1.17% - www100 0.00 0.17% - - 63.8M 1.56% - 58.4M 0.95% - Interval: 2, Duration: 0:00:20 ...
LiveCD のように起動後、自動ログインを可能にする。 †
$ cat /etc/gdm/custom.conf # GDM configuration storage [daemon] AutomaticLoginEnable=true AutomaticLogin=admin
[security] ...
デフォルトでは空欄になっている [daemon] のところに上記3行を書く、admin のところに自動ログインさせる user ID を書く、デモの環境やVirtualBox 上で使う分には便利だけど、セキュリティ上は注意が必要です。
ipfilter サービスで /etc/ipf/ipf.conf のポリシー設定を可能にする。 †
Solaris 11 Express/Solaris 11/OpenIndia 151a 以降では、ipfilter サービスを起動してもデフォルトでは /etc/ipf/ipf.conf のポリシー設定を読みにいかないようです。サービスプロパティを変更して、意図的にカスタムポリシーを参照するように設定する必要があります。
# svccfg -s ipfilter:default setprop firewall_config_default/policy =astring:“custom” # svccfg -s ipfilter:default setprop config_default/custom_policy_file = astring:“/etc/ipf/ipf.conf” # svcadm refresh ipfilter:default # svcadm restart ipfilter:default
*1 注釈1:最近購入した USB-RS232 は PL2303 chip の少し新しい version が使われており(usb 2.0 to com device) Solaris でも認識できますが動作が不安定でした