2009年10月19日月曜日

第11回 シェルスクリプト(その5 ブータブルなリカバリディスクの作成)

  1. 実行上の注意
  2. rootユーザーから下記の点に注意して、make_bootable_media.shを実行する。
    • ドライブにSolarisインストールディスクを入れてから実行する。必要なモジュールのコピーが終わると、下記のメッセージが表示されてディスクが排出されるので、初期化したDVD-RWメディアに入れ替えて「Enter」を押す。
    • Please insert writable media and press enter:
  3. make_bootable_media.sh
  4. 下記を作成して、「make_bootable_media.sh」と名前を付けて保存する。
    #!/bin/sh

    # stop oracle
    /etc/init.d/dbora stop

    # create flash archive
    mkdir -p /dvdimage/flash
    flarcreate -n solaris_oracle_initial -x /cdrom/ -c /dvdimage/flash/soi.flar

    # copy solaris installation dvd
    cd /cdrom/cdrom0
    find . -depth -print|grep -v ./Solaris_10|cpio -pdm /dvdimage
    find Solaris_10/Misc -depth -print|cpio -pdm /dvdimage

    # extract miniroot
    mkdir -p /dvdimage/miniroot
    /boot/solaris/bin/root_archive unpack /cdrom/cdrom0/boot/x86.miniroot /dvdimage/miniroot

    # create sysidcfg
    cd /dvdimage/miniroot/etc
    mv sysidcfg sysidcfg.org
    cat << EOF > sysidcfg
    name_service=none
    network_interface=rtls0 {dhcp protocol_ipv6=no}
    root_password=`cat /etc/shadow | grep root: | sed s/root:// |sed s/:.*//`
    security_policy=none
    system_locale=ja
    timezone=Asia/Tokyo
    timeserver=localhost
    nfs4_domain=dynamic
    EOF

    # edit profind
    cp -p /dvdimage/miniroot/usr/sbin/install.d/profind /dvdimage/miniroot/usr/sbin/install.d/profind.org
    sed s'/\[ -f \/tmp\/.preinstall \]/\[ true \]/' /dvdimage/miniroot/usr/sbin/install.d/profind.org > /dvdimage/miniroot/usr/sbin/install.d/profind

    # edit install-solaris
    cd /dvdimage/miniroot/sbin
    mv install-solaris install-solaris.org
    sed s"/ reboot/i=0;while [ \$i -lt 100 ];do tput bel;sleep 1;i=\`expr \$i + 1\`;done;reboot/" install-solaris.org > install-solaris
    chmod u+x install-solaris

    # archive miniroot
    /boot/solaris/bin/root_archive pack /dvdimage/boot/x86.miniroot /dvdimage/miniroot
    cd
    rm -r /dvdimage/miniroot
    eject cdrom
    echo "Please insert writable media and press enter: "
    read key

    # edit Grub menu
    cd /dvdimage/boot/grub
    mv menu.lst menu.lst.org
    cat << EOF >> menu.lst
    default=0
    timeout=60
    title Solaris10 Jumpstart
    kernel /boot/multiboot kernel/unix - install -B install_media=cdrom
    module /boot/x86.miniroot
    EOF

    # edit rule file
    cd /dvdimage/.install_config
    mv rules.ok rules.ok.org
    echo "any - x86-begin any_machine -" > rules

    # create any_machine
    cat << EOF > any_machine
    # profile keywords profile values
    # ---------------- -------------------
    install_type flash_install
    archive_location local_file /cdrom/flash/soi.flar
    partitioning explicit
    filesys any free /
    filesys any 4096 swap
    EOF

    # copy begin script
    cp -p /dvdimage/Solaris_10/Misc/jumpstart_sample/x86-begin .

    # validate rules file
    /dvdimage/Solaris_10/Misc/jumpstart_sample/check

    # create ISO image
    cd /dvdimage
    mkisofs -o /dvdimage/flash/soi.iso -b boot/grub/stage2_eltorito -c .catalog -no-emul-boot -boot-load-size 4 -boot-info-table -relaxed-filenames -N -L -l -r -J -d -D -V SOL_10_509_X86_JUMPSTART .

    # write ISO image to DVD

    # cdrw -iS -p 8 /dvdimage/flash/soi.iso
    cdrw -i /dvdimage/flash/soi.iso;

    # erase work area
    cd
    rm -r /dvdimage

    exit
  5. make_bootable_media.shの処理内容
  6. 設定内容については「ブータブルなリカバリディスクの作成 」を参照されたい。
    1. Oracleの停止
    2. # stop oracle
      /etc/init.d/dbora stop
    3. Flashアーカイブの作成
    4. # create flash archive
      mkdir -p /dvdimage/flash
      flarcreate -n solaris_oracle_initial -x /cdrom/ -c /dvdimage/flash/soi.flar
    5. インストールディスクのコピー
    6. cd /cdrom/cdrom0
      find . -depth -print|grep -v ./Solaris_10|cpio -pdm /dvdimage
      find Solaris_10/Misc -depth -print|cpio -pdm /dvdimage
    7. ミニルートの展開
    8. mkdir -p /dvdimage/miniroot
      /boot/solaris/bin/root_archive unpack /cdrom/cdrom0/boot/x86.miniroot /dvdimage/miniroot
    9. sysidcfgの作成
    10. # create sysidcfg cd /dvdimage/miniroot/etc
      mv sysidcfg sysidcfg.org
      cat << EOF > sysidcfg
      name_service=none
      network_interface=rtls0 {dhcp protocol_ipv6=no}
      root_password=`cat /etc/shadow | grep root: | sed s/root:// |sed s/:.*//`
      security_policy=none
      system_locale=ja
      timezone=Asia/Tokyo
      timeserver=localhost
      nfs4_domain=dynamic
      EOF
    11. profindの修正
    12. cp -p /dvdimage/miniroot/usr/sbin/install.d/profind /dvdimage/miniroot/usr/sbin/install.d/profind.org
      sed s'/\[ -f \/tmp\/.preinstall \]/\[ true \]/' /dvdimage/miniroot/usr/sbin/install.d/profind.org > /dvdimage/miniroot/usr/sbin/install.d/profind
    13. install-solarisの修正
    14. cd /dvdimage/miniroot/sbin
      mv install-solaris install-solaris.org
      sed s"/ reboot/i=0;while [ \$i -lt 100 ];do tput bel;sleep 1;i=\`expr \$i + 1\`;done;reboot/" install-solaris.org > install-solaris
      chmod u+x install-solaris
    15. ミニルートの圧縮
    16. /boot/solaris/bin/root_archive pack /dvdimage/boot/x86.miniroot /dvdimage/miniroot
      cd
      rm -r /dvdimage/miniroot
      eject cdrom
      echo "Please insert writable media and press enter: "
      read key
    17. GRUBメニューの編集
    18. cd /dvdimage/boot/grub
      mv menu.lst menu.lst.org
      cat << EOF > > menu.lst
      default=0
      timeout=60
      title Solaris10 Jumpstart
      kernel /boot/multiboot kernel/unix - install -B install_media=cdrom
      module /boot/x86.miniroot
      EOF
    19. rulesファイルの編集
    20. cd /dvdimage/.install_config
      mv rules.ok rules.ok.org
      echo "any - x86-begin any_machine -" > rules
    21. profileの作成
    22. cat << EOF > any_machine
      # profile keywords profile values
      # ---------------- -------------------
      install_type flash_install
      archive_location local_file /cdrom/flash/soi.flar
      partitioning explicit
      filesys any free /
      filesys any 4096 swap
      EOF
    23. 開始スクリプトの作成
    24. # copy begin script
      cp -p /dvdimage/Solaris_10/Misc/jumpstart_sample/x86-begin .
    25. ルールファイルのチェック
    26. # validate rules file
      /dvdimage/Solaris_10/Misc/jumpstart_sample/check
    27. DVDイメージファイルの作成
    28. cd /dvdimage
      mkisofs -o /dvdimage/flash/soi.iso -b boot/grub/stage2_eltorito -c .catalog -no-emul-boot -boot-load-size 4 -boot-info-table -relaxed-filenames -N -L -l -r -J -d -D -V SOL_10_509_X86_JUMPSTART .
    29. DVDに書き込み
    30. # write ISO image to DVD
      # cdrw -iS -p 8 /dvdimage/flash/soi.iso
      cdrw -i /dvdimage/flash/soi.iso;
    31. ワークエリアの消去
    32. # erase work area
      cd
      rm -r /dvdimage

0 件のコメント:

コメントを投稿