Messages in cipher reflected in the looking glass
[ Yasuhiro Fujitsuki's Weblog ]
http://blogs.sun.com/thaniwa/date/20090118 2009年 1月 18日 日曜日

(JA) Solaris Express (nevada) b105 : USB ZFS boot

前回に続き、Solaris Express を ZFSブート化した場合の rmformat , df -k , /var/adm/messages の出力です。
ちなみにテスト環境はこんな感じです。一応、メインの被写体はPCではなくUSBメモリです。
余計なものが微妙に写りこんでいますが、詮索しないでください。f(^-^;
(ログの日付でいつ、どこで作業しているかは大体想像できるかと思いますし。)
Solaris をテキストインストーラで起動して、USBにZFS環境を構築しているところです。 X-Windowが表示されているので、別途端末エミュレータを表示させて、 裏で zpool や zfs の出力を見てたり、インストーラの画面を取り込んでいました。
インストール中は /a にマウントされます。rootユーザのホームディレクトリは /a/root となっているので、この辺にインストール時のログ等を取った場合、 置いておくと良かったりします。


hbash-3.2# rmformat
デバイスを探しています...
     1. Logical Node: /dev/rdsk/c0t2d0p0
        Physical Node: /pci@0,0/pci1462,6510@1f,2/cdrom@2,0
        Connected Device: TEAC     DV-W28S-R        F.0B
        Device Type: DVD Reader/Writer
	Bus: <Unknown>
	Size: <Unknown>
	Label: <Unknown>
	Access permissions: <Unknown>
     2. Logical Node: /dev/rdsk/c1t0d0p0
        Physical Node: /pci@0,0/pci1462,6510@1d,7/storage@2/disk@0,0
        Connected Device:          Patriot Memory   PMAP
        Device Type: Removable
	Bus: USB
	Size: 30.6 GB
	Label: <None>
	Access permissions: <Unknown>


bash-3.2# df -k
ファイルシステム      kbytes 使用済み 使用可能 容量      マウント先
rpool/ROOT/snv_105   30707712 7499809 20059944    28%    /
/devices                   0       0       0     0%    /devices
/dev                       0       0       0     0%    /dev
ctfs                       0       0       0     0%    /system/contract
proc                       0       0       0     0%    /proc
mnttab                     0       0       0     0%    /etc/mnttab
swap                 3607736     524 3607212     1%    /etc/svc/volatile
objfs                      0       0       0     0%    /system/object
sharefs                    0       0       0     0%    /etc/dfs/sharetab
/usr/lib/libc/libc_hwcap1.so.1
                     27559753 7499809 20059944    28%    /lib/libc.so.1
fd                         0       0       0     0%    /dev/fd
swap                 3607292      80 3607212     1%    /tmp
swap                 3607260      48 3607212     1%    /var/run
rpool/export         30707712      19 20059944     1%    /export
rpool/export/home    30707712      18 20059944     1%    /export/home
rpool                30707712      30 20059944     1%    /rpool


# cat /var/adm/messages
Jan 11 14:41:39 unknown npe: [ID 236367 kern.info] PCI Express-device: pci1462,6510@1d,7, ehci1
Jan 11 14:41:39 unknown genunix: [ID 936769 kern.info] ehci1 is /pci@0,0/pci1462,6510@1d,7
Jan 11 14:41:40 unknown usba: [ID 912658 kern.info] USB 2.0 device (usb13fe,1f00) operating at hi speed (USB 2.x) on USB 2.0 
root hub: storage@2, scsa2usb0 at bus address 
Jan 11 14:41:40 unknown usba: [ID 349649 kern.info] 	         Patriot Memory 078C0EAB038F
Jan 11 14:41:40 unknown genunix: [ID 936769 kern.info] scsa2usb0 is /pci@0,0/pci1462,6510@1d,7/storage@2
Jan 11 14:41:40 unknown genunix: [ID 408114 kern.info] /pci@0,0/pci1462,6510@1d,7/storage@2 (scsa2usb0) online
Jan 11 14:41:40 unknown scsi: [ID 193665 kern.info] sd2 at scsa2usb0: target 0 lun 0
Jan 11 14:41:40 unknown genunix: [ID 936769 kern.info] sd2 is /pci@0,0/pci1462,6510@1d,7/storage@2/disk@0,0
Jan 11 14:41:40 unknown genunix: [ID 408114 kern.info] /pci@0,0/pci1462,6510@1d,7/storage@2/disk@0,0 (sd2) online
Jan 11 14:41:44 unknown genunix: [ID 308332 kern.info] root on rpool/ROOT/snv_105 fstype zfs

下記はインストール直後の zpool, zfs の出力。

bash-3.2# zpool list
NAME    SIZE   USED  AVAIL    CAP  HEALTH  ALTROOT
rpool  29.8G  8.18G  21.6G    27%  ONLINE  -

bash-3.2# zfs list
NAME                 USED  AVAIL  REFER  MOUNTPOINT
rpool               10.2G  19.1G  30.5K  /rpool
rpool/ROOT          7.15G  19.1G    18K  legacy
rpool/ROOT/snv_105  7.15G  19.1G  7.15G  /
rpool/dump          1.00G  19.1G  1.00G  -
rpool/export          37K  19.1G    19K  /export
rpool/export/home     18K  19.1G    18K  /export/home
rpool/swap             2G  21.1G  24.0M  -

ZFSブートを行う場合のテキストインストーラのログを載せておきます。

下記はディスクの選択ですが、デフォルトでは HDD がブートデバイスとしても選択されています。 (「**」がついています)
ここでは、USBメモリ c1t0d0 を選択し、HDD c0t0d0 のチェックをはずしています。

  ディスクの選択                                                                
                                                                                
  On this screen you must select the disks for installing Solaris software.     
  Start by looking at the Suggested Minimum field; this value is the            
  approximate space needed to install the software you've selected. For ZFS,    
  multiple disks will be configured as mirrors, so the disk you choose, or the  
  slice within the disk must exceed the Suggested Minimum value.                
  NOTE: ** denotes current boot disk                                            
                                                                                
  ディスクデバイス                                                空き領域      
  ============================================================================= 
  [ ] ** c0t0d0                                           37973 MB              
  [X]    c1t0d0                                           30553 MB  (F4 で編集) 
                                                                                
                                  Maximum Root Size:  30553 MB                  
                                     推奨する最小値:   9206 MB                  
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
    F2_継続    F3_前に戻る    F4_編集    F5_終了    F6_ヘルプ                   

上記のようにするとブートデバイスが選択されていない状態になるので、 ブートデバイスを選択する必要があります。
今回は USB メモリにブート用の Grub もインストールしますので、 F3 キーを入力して選択画面に移動します。

  ブートデバイス未選択                                                          
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
        デフォルトのブートデバイス (c0t0d0) を選択していません。                
        前に戻って、デフォルトのブートデバイスを選択しない場合、                
        システムは以下で選択したオプションに従って、常に別の                    
        デバイスから Solaris をリブートします。                                 
                                                                                








        > Solaris インストールプログラムにブートデバイスの構成を                
          まかせるには、「了解」を選択してください。                            
                                                                                
        > 別のブートデバイスを構成するには、「選択」を選択して                  
          ください。                                                            
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
    F2_了解    F3_選択    F5_取消し                                             

USBメモリしか表示されませんので、そのまま進みます。

  ブートディスクの選択                                                          
                                                                                
  この画面では、システムをブートするディスクを選択します。                      
  ブートディスクに x86BOOT パーティションが含まれている場合、                   
  ルート (/) パーティションは、どのディスクに配置してもかまいません。           
  x86BOOT パーティションを使用する場合、ルート (/) パーティションは             
  ブートディスク上に配置されます。                                              
                                                                                
  元のブートディスク : c0t0d0                                                   
                                                                                
            ディスク                                                            
        ==============================                                          
        [X] c1t0d0                                                              
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
    F2_了解    F5_取消し    F6_ヘルプ                                           

ZFSのコンフィギュレーションに移るので、必要に応じて変更します。

  Configure ZFS Settings                                                        
                                                                                
  Specify the name of the pool to be created from the disk(s) you have chosen.  
  Also specify the name of the dataset to be created within the pool that is    
  to be used as the root directory for the filesystem.                          
                                                                                
                                                                                
              ZFS Pool Name: rpool                                              
      ZFS Root Dataset Name: snv_105                                            
      ZFS Pool Size (in MB): 30554                                              
  Size of Swap Area (in MB): 2048                                               
  Size of Dump Area (in MB): 1024                                               
        (Pool size must be between 9206 MB and 30554 MB)                        
                                                                                
                         [X] Keep / and /var combined                           
                         [ ] Put /var on a separate dataset                     
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
    F2_継続    F3_前に戻る    F5_終了    F6_ヘルプ                              

インストールの最終確認時に表示されるプロファイルです。

  プロファイル                                                                  
                                                                                
  以下の情報は Solaris をインストールするために必要なプロファイルです。         
  前の画面で行なった選択が反映されています。                                    
                                                                                
  注: デフォルトのブートデバイスを変更したため、BIOS を変更                     
      する必要があります。                                                      
                                                                                
  ============================================================================  
                                                                                
             インストールオプション: 初期                                       
                     ブートデバイス: c1t0d0                                     
              Root File System Type: ZFS                                        
               クライアントサービス: なし                                       
                                                                                
                           ロケール: [日本語 EUC (ja)]                          
                                     [日本語 PC 漢字 (ja_JP.PCK)]               
                                     [日本語 UTF-8 (ja_JP.UTF-8)]               
                 システムのロケール: [日本語 UTF-8 (ja_JP.UTF-8)] ( ja_J        
                                                                                
                       ソフトウェア: Solaris 11, 全体ディストリビューションサポ 
                          Pool Name: rpool                                      
              Boot Environment Name: snv_105                                    
                          Pool Size: 30554 MB                                   




                    Devices in Pool: c1t0d0                                     
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
    F2_インストールを開始    F4_変更    F5_終了    F6_ヘルプ                    

上記で F2 キーを押して、インストールを開始する場合、 下記のような警告が出てきます。 これはブートデバイスの変更に伴うことなので、 F2 キーを押してそのままインストールを行います。

  警告                                                                          
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
        次のディスク構成状態が検出されました。確実にインストールを              
        行うためには、エラーを修正する必要があります。警告について              
        は無視できます (インストールが 失敗することはありません)。              
                                                                                
        警告: デフォルトのブートデバイスの変更                                  
        システムが、指定したブートデバイスから常に Solaris                      
        をリブートするようにしたい場合には、Solaris                             
        ソフトウェアをインストールしたあとで、システムの BIOS                   
        デフォルトブートデバイスを変更する必要があります。                      
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
    F2_了解    F5_取消し                                                        

これでインストールが開始されます。
あとは下記のような感じで出力され、インストールが行われます。
Patriot Memory Patriot USB Xporter XT Boost 32GB を使っていますが、 Entire(全体ディストリビューション)インストールで、ここから2時間ほど時間がかかります。

Solaris をインストールするためにシステムを準備しています

ディスク (c1t0d0) を構成中です
        - fdisk パーティションテーブルを作成中です
        - Solaris ディスクラベル (VTOC) を作成中です
        - Creating pool rpool
        - Creating swap zvol for pool rpool
        - Creating dump zvol for pool rpool


Solaris 11 ソフトウェアのインストールが完了しました

システムファイルをカスタマイズ中です
        - マウントポイントテーブル (/etc/vfstab)
        - 選択されていないディスクのマウントポイント (/var/sadm/system/data/vfstab.unselected)
        - ネットワークホストアドレス (/etc/hosts)
        - 環境変数 (/etc/default/init)

デバイスをクリーンアップ中です

システムデバイスをカスタマイズ中です
        - 物理デバイス (/devices)
        - 論理デバイス (/dev)

ブート情報をインストール中です
bootadm: biosdev command failed for disk: /dev/dsk/c1t0d0s0.
bootadm: is_bootdisk(): cannot determine BIOS disk ID 'hd?' for disk: /dev/dsk/c1t0d0s0
bootadm: get_grubroot(): cannot get (hd?,?,?) for menu. menu not on bootdisk: /dev/rdsk/c1t0d0s0
        - ブートブロック (c1t0d0) をインストール中です
        - ブートブロック (/dev/rdsk/c1t0d0s0) をインストール中です

上記のインストール方法では、Grub は USBメモリにインストールされます。 この方法では、HDD側には Grub がインストールされませんので、 Linux 等がすでにインストールされていても影響を与えません。 また、USBメモリを挿せば Solaris 、はずせば Windows/Linux 等が起動できるようになります。

最近、USBメモリは 8GB で 2000-3000円台で買えますし、 16GBも 4000円前後で買えます。 OpenSolarisの推奨は9GBとなっているのですが、 8GBであれば普通に使えますし、IPS等のアップデート等のテストなら 16GBあれば足りるのではないかと。
Solaris Express でも 16GB 以上あれば十分全体ディストリビューションで インストールできますので、 HDDにはSolarisをインストールせずに USBメモリで済ませてしまうということもできそうです。 (PCがUSBメモリからのブートに対応していることが前提ですが)