SolarisTipsのソース

#freeze
[[Solarisのページに戻る>Solaris]]

目次
#contentsx

------
** Install 後に rpool をミラー化する (-f は強制 option) [#qf3fbe0e]
  # 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) での設定 [#o5a9da11]

環境変数の表示
  {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 を使う [#mf597398]
default では ftp client はインストール済みだけど、ftp サーバ (proftpd) はインストールされておりません。
  # pkg install service/network/ftp
サービスを有効にする
  # svcadm enable ftp
** Solaris 11 repo-full image からローカルリポジトリを作る [#wb843eda]

  # 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 でシリアルコンソールを使う [#ya49aa5f]
市販の USB-シリアル変換ケーブルを使います。私が試したのは 変換名人の USB-RS232((注釈1:最近購入した USB-RS232 は PL2303 chip の少し新しい version が使われており(usb 2.0 to com device) Solaris でも認識できますが動作が不安定でした)) (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 コマンドを使う [#f46286c1]
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) で シリアルコンソールを使う [#a41ade40]

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) を無効にする [#ye1791a7]
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 メニュー表示がおかしい [#h6b05a43]
beadm create xxx しても追加した BE が GRUB メニューに反映されない。
bootadm set-menu で設定した変更が GRUB メニューに反映されない。

PC(x86) や BIOS によってはこの現象があるるようです。私は以下で解決できました。

   # bootadm install-bootloader

GRUB2 を再読み込みすることで解決できました。1-2 回はエラーで失敗しますが何度か実行すると成功しました。(ちょっと勇気が必要です)

** Solaris 11.1 でユーザマネージャ(GUI)を使う時 [#d3b8ab88]
デフォルト user でログインして、ユーザマネージャを起動しても
新規、削除、変更はできない。

- 右上のユーザーの横の鍵のアイコンをクリックする。
- 役割の変更... を選択
- 役割 root を選択
- 初期起動時は、新規パスワードを入力する

上がうまくできない時は、root 権限でユーザマネージャを起動する

   $ sudo vp usermgr


** Solaris 11 で beep 音がうるさい時 [#fe327819]
  $ sudo vi /kernel/drv/audiohd.conf
  audiohd_beep=1;

~上の行を audiohd_beep=0; に変更して保存する。

これが効かない時は、端末-> 編集-> プロファイル
編集-> 端末ベルを鳴らすのチェックを外す。

あるいは、以下を試してみるとか??
 $ /usr/bin/xset b off

----- 
** Solaris 11 で サスペンド/レジュームを可能にする [#hffa8cab]

  $ sudo poweradm set suspend-enable=true
  $ sudo svcadm restart system/power

~サスペンドに対応しているサーバの場合です

----
** OpenIndiana で keymap/layout の変更 [#fe79f2a4]

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 で 日本語入力を可能にする [#z1d0c9ca]

詳しくは次を参照してください [[OI-151a日本語入力:https://blogs.oracle.com/hara/entry/anthy]]

----
** カーネルメモリーの使用量を調べる [#d0384886]

 # 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 を調べる [#o97bf80b]

 # 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 の状況を見る [#g7281f16]

 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 のように起動後、自動ログインを可能にする。 [#g29ca45a]

 $ 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 のポリシー設定を可能にする。 [#y2fae580]

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