SolarisTips

Solarisのページに戻る

目次

Table of Contents

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 でも認識できますが動作が不安定でした