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