ページの先頭行へ戻る
PRIMECLUSTER Global Disk Services  説明書 4.5
FUJITSU Software

D.1.5 システムディスクに関する異常【EFI】

/ (ルート)、/usr、あるいは /var といった、ファイルシステムが動作しているシステムディスクに関するトラブルへの対処方法について説明します。

以下に該当する場合は、それぞれに記載されている対処を行ってください。

(1) ルートファイルシステムなどのバックアップを採取する。

説明

システムディスクをミラーリングすることによって、一方の物理ディスクが故障したとしてもデータは保護されます。しかし、多重故障などによる致命的な障害や操作ミスによって破損されたデータを復元するためには、あらかじめバックアップを採取しておく必要があります。

対処

7.4.2 バックアップ手順【EFI】」を参照してください。


(2) システムはブートできるが、システムディスクのデータが不当である。

説明

何らかのトラブルによって、システムディスクのデータが不当となり、あらかじめ採取されたバックアップデータをリストアすることによって、復旧しなければならない場合があります。

対処

7.4.5 リストア手順 (システムがブートできる場合)【EFI】」を参照してください。


(3) システムがブートできない (主ブートディスク装置の故障)

説明

システムディスクがミラーリングされていても、ブートに失敗する場合がありえます。例えば、ブートディスク装置内にあるブート中にアクセスされるファイルの一部が物理的に破壊されている場合、あるいは不当な手順によるディスク交換が行われた場合などが該当します。
失敗したブート中のコンソールメッセージなどを調査して、本現象と推測される場合には、ミラーリングしているもう一方のブートディスク、すなわち、副ブートディスク装置からのブートを試みてください。

対処

1) EFI ブートマネージャのブートオプション選択画面に表示されるブートディスク装置の中から、副ブートディスク装置を選択してブートします。
SDX ディスク名のうち、最も上に表示されているものが主ブートディスク装置名で、それ以外の SDX ディスク名は副ブートディスク装置名です。3 多重以上のミラー構成の場合、副ブートディスク装置は複数存在します。以下の例では、Root1 が主ブートディスク装置名で、Root2、Root3 が副ブートディスク装置名です。

Root1
Root2
Root3

2) 正常にブートできた場合は、主ブートディスク装置の故障原因を調査して、ディスク交換などによる復旧を行ってください。

参照

ディスク交換の手順については、「B.1.8 sdxswap - ディスクの交換」または「7.3.1.2 操作手順」を参照してください。

上記の手順で復旧できない場合は、主ブートディスク装置のデータ異常以外に原因があるか、あるいは副ブートディスク装置のデータも異常であることが考えられます。
副ブートディスク装置のデータも異常と思われる場合は、「(5) システムがブートできない (ブートディスクのデータ破壊)。」を参照してください。


(4) システムがブートできない (全ブートディスク装置の故障)。

説明

システムディスクがミラーリングされていても、ブートに失敗する場合があります。

すべてのブートディスクが同時に物理的に故障した場合の復旧手順を、以下に説明します。

以下の手順では、ルートクラスに登録されたすべての物理ディスクを交換し、あらかじめ採取されたバックアップをもとにシステムディスクのデータを復旧して、再度ミラーリングの構築をやり直します。

また、物理ディスク故障以外の何らかの異常によってブートできなくなった場合を想定し、物理ディスクの交換やシステムディスクのデータのリストアを行わずに、ミラーリングの設定を解除してブートできるように復旧する方法も説明します。

注意

正常なシステムでシステムディスクのミラーリングを解除する場合は、「9.4 システムディスクミラーリングの解除【EFI】」の手順で解除してください。

注意

本手順に従って復旧を行うためには、システムディスクミラーリングの設定時に、以下の情報を採取しておく必要があります。

  • システムディスクのパーティション構成

  • システムディスクのバックアップ

詳細は、「6.5 システムディスクミラーリングの設定【EFI】」を参照してください。

対処

以下の手順に従って、復旧します。

1) ルートクラスに登録されている物理ディスクをすべて交換します。交換作業は、各装置で定められた手順に従って実施してください。

ディスクが故障していない場合、本作業は必要ありません。

2) CD-ROM装置からシステムをブートします。

3) 交換したシステムディスクを交換前のパーティション構成に戻します。

参照

partedコマンドの詳細については、parted(8)のマニュアルを参照してください。

3-1) partedコマンドを起動します。

# parted /dev/sda

3-2) mklabelサブコマンドを使用して、GPT形式のディスクラベル(パーティションテーブル)を作成します。

(parted) mklabel gpt

3-3) システムディスクのミラーリング設定を行う前に、「6.5 システムディスクミラーリングの設定【EFI】」の手順1)で確認したパーティション構成に従って、パーティションを作成します。パーティションは、mkpartサブコマンドを使用して作成します。

(parted) mkpart primary linux-swap 0.017 1024.000
(parted) mkpart primary ext4  1041.000 9233.000
(parted) mkpart primary ext4  9234.000 13330.000
(parted) mkpart primary ext4  13331.000 15379.000
(parted) mkpart primary ext4  15380.000 21380.000
(parted) mkpart primary ext4  21381.000 21581.000
(parted) mkpart primary fat16 21582.000 21782.000

3-4) printサブコマンドを使用し、パーティション構成が「6.5 システムディスクミラーリングの設定【EFI】」の手順1) で確認した構成と同じであることを確認します。

(parted) print
Disk geometry for /dev/sda: 0.000-35046.525 megabytes
Disk label type: gpt
Minor    Start       End     Filesystem  Name                Flags
1          0.017   1024.000
2       1041.000   9233.000
3       9234.000  13330.000
4      13331.000  15379.000
5      15380.000  21380.000
6      21381.000  21581.000
7      21582.000  21782.000  fat16

注意

手順1)でディスクを交換しなかった場合、GDSの占有スライスが残ったままになります。このとき、printサブコマンドを実行すると、GDSの占有スライスが表示されます。print サブコマンドで表示されるパーティションのうち、「6.5 システムディスクミラーリングの設定【EFI】」の手順1) で確認したパーティション以外のパーティションが、GDS の占有スライスです。この場合、partedコマンドのrmサブコマンドで、GDSの占有スライスを削除します。

例:占有スライスのパーティション番号 (Minor フィールドに表示される番号)が 8 の場合

(parted) rm 8

注意

RHEL6(Intel64) または RHEL7(Intel64) の場合

手順1)でミラー先のディスクを交換しなかった場合、ミラー先のディスクのパーティションをすべて削除します。

例:ミラー先のディスクが/dev/sdcの場合

parted /dev/sdc
(parted) rm 1
(parted) rm 2
(parted) rm 3
(parted) rm 4
(parted) rm 5
(parted) rm 6
(parted) rm 7
(parted) rm 8

3-5) partedコマンドを終了します。

(parted) quit

4) テープ媒体などに採取されたバックアップデータを、それぞれの物理スライスへリストアします。

本作業は、手順1) で物理ディスクを交換した場合や、システムディスクのデータが不正になった場合に行います。

参照

リストア方法については、OS、リストアするファイルシステム、および使用するコマンドのマニュアルを参照してください。


5) システムディスクのミラーリング設定を解除します。
手順は、OSのバージョンによって異なります。


5a) RHEL7(Intel64)の場合

5a-1) EFIシステムパーティションとルートパーティションをマウントします。
以下の例では、一時的なマウントポイントとして、/work/efi、/work/root、および /work/boot ディレクトリを使用します。

# mkdir /work
# mkdir /work/efi
# mkdir /work/root
# mkdir /work/boot
# mount /dev/sda7 /work/efi
# mount /dev/sda5 /work/root
# mount /dev/sda6 /work/boot

参考

システムディスクのミラーリングを行った後、initrdファイルが更新される操作(カーネルのアップデートなど)を一度も行っていない場合、手順5a-2)、5a-3)の代わりに、後述の参考「initrdファイルが更新されていない場合のgrub.cfgファイルの編集方法」の手順を実施すると、より簡単かつ短時間で設定を解除できます。

この手順は、initrdファイルが更新される操作を行っていないことが確実な場合にだけ実施してください。それ以外の場合は、以下の5a-2)~5a-12)の手順を実施してください。

5a-2) initrdファイルからGDSの情報を削除します。

5a-2-1) エントリ名を確認します。
/work/efi/EFI/redhat/grub.cfgファイルのset default行に記載されているエントリ名を確認します。

# more /work/efi/EFI/redhat/grub.cfg
### BEGIN /etc/grub.d/00_header ###
set pager=1

if [ -s $prefix/grubenv ]; then
  load_env
fi
if [ "${next_entry}" ] ; then
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   set boot_once=true
else
   set default="GDS sysvol entry"
fi

5a-2-2) initrdファイル名を確認します。
grub.cfgファイルのエントリのうち、手順5a-2-1)で確認したエントリのinitrdファイル名を確認します。

以下の例では、initrdファイル名は initramfs-3.10.0-123.el7.x86_64.imgです。

# more /work/efi/EFI/redhat/grub.cfg
menuentry 'GDS sysvol entry' --class red --class gnu-linux --class gnu --class os --unrestricted { (*1) load_video set gfxpayload=keep insmod gzio insmod part_gpt insmod xfs insmod regexp regexp -s device '(hd[^,]+)' set root="$device,gpt2" linuxefi /vmlinuz-3.10.0-123.el7.x86_64 root=/dev/sfdsk/gdssys2 ro vconsole.keymap=jp106 crashkernel=auto vconsole.font=latarcyrheb-sun16 rhgb quiet LANG=ja_JP.UTF-8 rd.driver.post=sfdsksys initrdefi /initramfs-3.10.0-123.el7.x86_64.img (*2) }
(*1) 手順5a-2-1)で確認したエントリ名
(*2) initrdファイル名

5a-2-3) /work/root ディレクトリに、作業ディレクトリを2つ作成します。

既存のディレクトリとは異なる名前のディレクトリを作成してください。

# mkdir /work/root/作業ディレクトリ1
# mkdir /work/root/作業ディレクトリ2

5a-2-4) initrdファイルを各作業ディレクトリに展開します。

以下の手順で、手順5a-2-3) で作成した作業ディレクトリに initrd ファイルを展開します。

/work/root にマウントしたファイルシステムに十分な空き容量が無く、以下の手順において "no space left on device" のメッセージが出力された場合は、空き容量がある他のファイルシステムをマウントして作業ディレクトリを作成し、initrd ファイルを展開してください。

1) initrdファイルにEarly CPIO imageが含まれるかを確認します。

以下のコマンドを実行して、Early CPIO imageと出力された場合、initrdファイルにEarly CPIO imageが含まれています。

# /work/root/usr/bin/lsinitrd /work/boot/initramfs-3.10.0-123.el7.x86_64.img \
(*1)
2>/dev/null | grep -e "^Early CPIO image"
(*1) 手順5a-2-2)で確認したinitrdファイル名

2) initrdファイルにEarly CPIO imageが含まれている場合、以下の手順でinitrdファイルを展開します。

# cd /work/root/作業ディレクトリ1
# cpio -idm < /work/boot/initramfs-3.10.0-123.el7.x86_64.img (*1)
# cd /work/root/作業ディレクトリ2 # /work/root/usr/lib/dracut/skipcpio /work/boot/initramfs-3.10.0-123.el7.x86_64.img \
| gunzip -c - | cpio -idm (*1)
(*1) 手順5a-2-2)で確認したinitrdファイル名

3) initrdファイルにEarly CPIO imageが含まれていない場合、以下の手順でinitrdファイルを展開します。

# cd /work/root/作業ディレクトリ2
# gunzip -c /work/boot/initramfs-3.10.0-123.el7.x86_64.img | cpio -idm
                                                        (*1)
(*1) 手順5a-2-2)で確認したinitrdファイル名

5a-2-5) 展開されたinitrdから、GDSのドライバを削除します。

# rm /work/root/作業ディレクトリ2/lib/modules/3.10.0-123.el7.x86_64/extra/FJSVsdx-drvcore/sfdsksys.ko
# rm /work/root/作業ディレクトリ2/lib/modules/3.10.0-123.el7.x86_64/extra/FJSVsdx-drvcore/sfdsk_lib.ko

5a-2-6) 展開されたinitrdから、GDSのドライバを読み込むシェルスクリプトを削除します。

以下のファイルが存在する場合、削除します。

# rm /work/root/作業ディレクトリ2/sbin/ins_sfdsksys.sh
# rm /work/root/作業ディレクトリ2/usr/lib/dracut/hooks/cmdline/01-parse-ins_sfdsksys.sh

5a-2-7) 編集したinitrdを圧縮します。

1) 手順5a-2-4)の1)でinitrdファイルにEarly CPIO imageが含まれていた場合、以下の手順でinitrdを圧縮します。

# cd /work/root/作業ディレクトリ1
# find . -print0 | cpio --null -H newc -o --quiet > /work/boot/initrd-new.img
# cd /work/root/作業ディレクトリ2
# find . -print0 | cpio --null -H newc -o --quiet | gzip -9 >> /work/boot/initrd-new.img

2) 手順5a-2-4)の1)でinitrdファイルにEarly CPIO imageが含まれていなかった場合、以下の手順でinitrdを圧縮します。

# cd /work/root/作業ディレクトリ2
# find . -print0 | cpio --null -H newc -o --quiet | gzip -9 > /work/boot/initrd-new.img

5a-2-8) 手順5a-2-3)で作成した作業ディレクトリを削除します。

# cd /
# rm -rf /work/root/作業ディレクトリ1
# rm -rf /work/root/作業ディレクトリ2

5a-2-9) 手順5a-2-7)で圧縮したinitrdファイルを、EFIシステムパーティションに配置します。

手順5a-2-2)で確認したinitrdファイルをバックアップしてから、手順5a-2-7)で圧縮したinitrdファイルを手順5a-2-2)で確認したinitrdファイルと同じファイル名で配置します。

# cd /work/boot
# mv initramfs-3.10.0-123.el7.x86_64.img initramfs-3.10.0-123.el7.x86_64.img.gdsbak
# mv /work/boot/initrd-new.img /work/boot/initramfs-3.10.0-123.el7.x86_64.img

5a-3) grub.cfgファイルを編集します。

# vim /work/efi/EFI/redhat/grub.cfg

grub.cfgファイルのエントリのうち、手順5a-2-1)で確認したエントリを、以下のように変更します。

(*1) 手順5a-2-1)で確認したエントリ名
(*2) rootデバイス名を、GDSの論理ボリュームのパスから UUID に変更
     (UUID は blkid コマンドで確認できます)
(*3) rd.driver.post=sfdsksysの記述を削除

参考

initrdファイルが更新されていない場合のgrub.cfgファイルの編集方法

RHEL7(Intel64)でシステムディスクのミラーリングを行った後、initrdファイルが更新される操作(カーネルのアップデートなど)を一度も行っていない場合、手順5a-2)、5a-3)を実行せず、代わりに以下の手順を実行することで、より簡単かつ短時間で設定を解除できます。

  1. エントリ名を確認します。
    /work/efi/EFI/redhat/grub.cfgファイルのset default行に記載されているエントリ名を確認します。

    ### BEGIN /etc/grub.d/00_header ###
    set pager=1
    
    if [ -s $prefix/grubenv ]; then
      load_env
    fi
    if [ "${next_entry}" ] ; then
       set default="${next_entry}"
       set next_entry=
       save_env next_entry
       set boot_once=true
    else
       set default="GDS sysvol entry"
    fi
  2. grub.cfgファイルを編集します。

    # vim /work/efi/EFI/redhat/grub.cfg

    grub.cfgファイルに記述されている、システムディスクのミラーリング設定後のカーネルイメージの設定を、システムディスクのミラーリングを行わない設定に変更します。grub.cfgファイルのエントリのうち、手順1.で確認したエントリが、システムディスクのミラーリング設定後のカーネルイメージの設定です。以下に例を示します。

    • 編集前の例

      menuentry 'GDS sysvol entry' --class red --class gnu-linux --class gnu  --class os --unrestricted {
                              (*1)
              load_video
              set gfxpayload=keep
              insmod gzio
              insmod part_gpt
              insmod xfs
              insmod regexp
              regexp -s device '(hd[^,]+)'
              set root="$device,gpt2"
              linuxefi /vmlinuz-3.10.0-123.el7.x86_64 root=/dev/sfdsk/gdssys2
                                                                          (*2)
              ro vconsole.keymap=jp106 crashkernel=auto
              vconsole.font=latarcyrheb-sun16 rhgb quiet LANG=ja_JP.UTF-8
              rd.driver.post=sfdsksys
                                  (*3)
              initrdefi /initramfs-3.10.0-123.el7.x86_64.img 
                                                         (*4)
      }
    • 編集後の例

      menuentry 'GDS sysvol entry' --class red --class gnu-linux --class gnu  --class os --unrestricted {
                              (*1)
              load_video
              set gfxpayload=keep
              insmod gzio
              insmod part_gpt
              insmod xfs
              insmod regexp
              regexp -s device '(hd[^,]+)'
              set root="$device,gpt2"
              linuxefi /vmlinuz-3.10.0-123.el7.x86_64 root=UUID=ef9cab98-5b1d-4fe2-89e6-4e1548778338
                                                                                                 (*2)
              ro vconsole.keymap=jp106 crashkernel=auto
              vconsole.font=latarcyrheb-sun16 rhgb quiet LANG=ja_JP.UTF-8
              initrdefi /initramfs-3.10.0-123.el7.x86_64.img.gdsbak
                                                                (*4)
      }
      (*1) 手順1.で確認したエントリ名
      (*2) rootデバイス名を、GDSの論理ボリュームのパスから UUID に変更
           (UUID は blkid コマンドで確認できます)
      (*3) rd.driver.post=sfdsksysの記述を削除
      (*4) initrdファイル名の最後に.gdsbakを付加

5a-4) fstabファイルを編集します。

# vim /work/root/etc/fstab

fstabファイルに記述されている、ルートクラスのボリュームのマウント設定行を、交換したシステムディスクのパーティション構成に合わせて編集します。以下に例を示します。

5a-5) dracut.confファイルを編集します。本手順は、PH15096 の修正が適用されている場合は不要です。

# vim /work/root/etc/dracut.conf

dracut.confファイルから、GDSのドライバの記述を削除します。

(*1) GDSのドライバの記述
(*2) 半角1文字分の空白を残し、sfdsksysを削除

5a-6) /etc/default/grubファイルを編集します。
/etc/default/grubファイルのGRUB_DEFAULTの設定を変更します。また、rd.driver.post=sfdsksysの記述を削除します。

# vim /work/root/etc/default/grub
(*1) 手順5a-2-2)で確認したinitrdファイル名に含まれるカーネル版数

5a-7) 以下のディレクトリが存在する場合、削除します。

5a-8) root_mknod.shファイルの権限を変更します。

# chmod 400 /work/root/etc/opt/FJSVsdx/RootMirror/root_mknod.sh

5a-9) EFI環境変数に設定されているGDSの構成データベースの情報を削除します。

# cd /sys/firmware/efi/vars/
# cat sysvol-db2-*/raw_var > del_var

5a-10) EFIシステムパーティションとルートパーティションのマウントを解除します。

# cd /
# umount /work/efi
# umount /work/root
# umount /work/boot
# rmdir /work/efi
# rmdir /work/root
# rmdir /work/boot
# rmdir /work

5a-11) システムを再起動します。

# shutdown -r now

5a-12) システム再起動後、grub.cfgファイルを更新するため、以下のコマンドを実行します。

# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg


5b) RHEL6(Intel64)の場合

5b-1) EFIシステムパーティションとルートパーティションをマウントします。
以下の例では、一時的なマウントポイントとして、/work/efi、/work/root、および /work/boot ディレクトリを使用します。

# mkdir /work
# mkdir /work/efi
# mkdir /work/root
# mkdir /work/boot
# mount /dev/sda7 /work/efi
# mount /dev/sda5 /work/root
# mount /dev/sda6 /work/boot

参考

システムディスクのミラーリングを行った後、initrdファイルが更新される操作(カーネルのアップデートなど)を一度も行っていない場合、手順5b-2)、5b-3)の代わりに、後述の参考「initrdファイルが更新されていない場合のgrub.confファイルの編集方法」の手順を実施すると、より簡単かつ短時間で設定を解除できます。

この手順は、initrdファイルが更新される操作を行っていないことが確実な場合にだけ実施してください。それ以外の場合は、以下の5b-2)~5b-10)の手順を実施してください。

5b-2) initrdファイルからGDSの情報を削除します。

5b-2-1) initrdファイル名を確認します。
grub.confファイルのエントリのうち、(defaultの値+1)番目のエントリのinitrdファイル名を確認します。
以下の例では、initrdファイル名は initramfs-2.6.32-71.el6.x86_64.img です。

# more /work/efi/EFI/redhat/grub.conf
default=1
      (*1)
timeout=5
splashimage=(hd0,1)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux (2.6.32-71.el6.x86_64)
    root (hd0,1)
    kernel /vmlinuz-2.6.32-71.el6.x86_64 ro 
           root=UUID=ef9cab98-5b1d-4fe2-89e6-4e1548778338
           rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM
           LANG=ja_JP.UTF-8 KEYBOARDTYPE=pc KEYTABLE=jp106
           crashkernel=128M
    initrd /initramfs-2.6.32-71.el6.x86_64.img

title Red Hat Enterprise Linux (2.6.32-71.el6.x86_64)_gds_sysvol
                                                             (*2)
    root (hd0,1)
    kernel /vmlinuz-2.6.32-71.el6.x86_64 ro
           root=/dev/sfdsk/gdssys2
           rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM
           LANG=ja_JP.UTF-8 KEYBOARDTYPE=pc KEYTABLE=jp106
           crashkernel=128M rdinsmodpost=sfdsksys
    initrd /initramfs-2.6.32-71.el6.x86_64.img
                                           (*3)
(*1) defaultの値(この例では1)
(*2) (defaultの値+1)番目(この例では2番目)のエントリ
(*3) initrdファイル名(「initramfs-文字列-sysvol.img」形式の場合もある)

5b-2-2) /work/root ディレクトリに作業ディレクトリを作成し、移動します。

既存のディレクトリとは異なる名前のディレクトリを作成してください。

# mkdir /work/root/作業ディレクトリ
# cd /work/root/作業ディレクトリ

5b-2-3) initrdファイルを作業ディレクトリに展開します。

# zcat /work/boot/initramfs-2.6.32-71.el6.x86_64.img | cpio -i -c
(*1)
(*1) 手順5b-2-1)で確認したinitrdファイル名(「initramfs-文字列-sysvol.img」形式の場合もある)

/work/root にマウントしたファイルシステムに十分な空き容量が無く、"no space left on device" のメッセージが出力された場合は、空き容量がある他のファイルシステムをマウントして作業ディレクトリを作成し、initrd ファイルを展開してください。

5b-2-4) 展開されたinitrdから、GDSのドライバを削除します。

5b-2-5) 展開されたinitrdから、GDSのドライバを読み込むシェルスクリプトを削除します。

以下のファイルが存在する場合、削除します。

# rm /work/root/作業ディレクトリ/sbin/ins_sfdsksys.sh
# rm /work/root/作業ディレクトリ/cmdline/20parse-ins_sfdsksys.sh

5b-2-6) 編集したinitrdをcpio形式で圧縮します。

# cd /work/root/作業ディレクトリ
# find . | cpio --quiet -c -o | gzip -c > /work/boot/initrd-new.img

5b-2-7) 手順5b-2-2)で作成した作業ディレクトリを削除します。

# cd /
# rm -rf /work/root/作業ディレクトリ

5b-2-8) 手順5b-2-6)で圧縮したinitrdファイルを、EFIシステムパーティションに配置します。

5b-3) grub.confファイルを編集します。

# vim /work/efi/EFI/redhat/grub.conf

grub.confファイルのエントリのうち、(defaultの値+1)番目のエントリを、以下のように変更します。

(*1) defaultの値(この例では1)
(*2) (defaultの値+1)番目(この例では2番目)のエントリのタイトルの _gds_sysvol を _gds_no_sysvol に変更
(*3) rootデバイス名を、GDSの論理ボリュームのパスから UUID に変更
     (UUID は blkid コマンドで確認できます)
(*4) rdinsmodpost=sfdsksysの記述を削除
(*5) initrdの値が手順5b-2-7)で配置したinitrdファイル名と異なる場合、initrdを手順5b-2-7)で配置したinitrdファイル名に変更

参考

initrdファイルが更新されていない場合のgrub.confファイルの編集方法

RHEL6(Intel64)でシステムディスクのミラーリングを行った後、initrdファイルが更新される操作(カーネルのアップデートなど)を一度も行っていない場合、手順5b-2)、5b-3)を実行せず、代わりに以下の手順を実行することで、より簡単かつ短時間で設定を解除できます。

  1. grub.confファイルを編集します。

    # vim /work/efi/EFI/redhat/grub.conf

    grub.confファイルに記述されている、システムディスクのミラーリング設定後のカーネルイメージの設定を、システムディスクのミラーリングを行わない設定に変更します。grub.confファイルのエントリのうち、(defaultの値+1)番目のエントリが、システムディスクのミラーリング設定後のカーネルイメージの設定です。以下に例を示します。

    • 編集前の例

      default=1
            (*1)
      timeout=5
      splashimage=(hd0,1)/grub/splash.xpm.gz
      hiddenmenu
      title Red Hat Enterprise Linux (2.6.32-71.el6.x86_64) 
          root (hd0,1)
          kernel /vmlinuz-2.6.32-71.el6.x86_64 ro 
                 root=UUID=ef9cab98-5b1d-4fe2-89e6-4e1548778338 
                 rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM 
                 LANG=ja_JP.UTF-8 KEYBOARDTYPE=pc KEYTABLE=jp106 
                 crashkernel=128M 
          initrd /initramfs-2.6.32-71.el6.x86_64.img
                                                 (*2)               
      
      title Red Hat Enterprise Linux (2.6.32-71.el6.x86_64)_gds_sysvol
                                                                   (*3)
          root (hd0,1)
          kernel /vmlinuz-2.6.32-71.el6.x86_64 ro 
                 root=/dev/sfdsk/gdssys2 
                                     (*4)
                 rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM 
                 LANG=ja_JP.UTF-8 KEYBOARDTYPE=pc KEYTABLE=jp106 
                 crashkernel=128M  rdinsmodpost=sfdsksys
                                                     (*5)
          initrd /initramfs-2.6.32-71.el6.x86_64.img
                                                 (*6)
    • 編集後の例

      default=1
            (*1)
      timeout=5
      splashimage=(hd0,1)/grub/splash.xpm.gz
      hiddenmenu
      title Red Hat Enterprise Linux (2.6.32-71.el6.x86_64)
          root (hd0,1)
          kernel /vmlinuz-2.6.32-71.el6.x86_64 ro 
                 root=UUID=ef9cab98-5b1d-4fe2-89e6-4e1548778338 
                 rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM 
                 LANG=ja_JP.UTF-8 KEYBOARDTYPE=pc KEYTABLE=jp106 
                 crashkernel=128M 
          initrd /initramfs-2.6.32-71.el6.x86_64.img
                                                 (*2)
      
      title Red Hat Enterprise Linux (2.6.32-71.el6.x86_64)_gds_no_sysvol
                                                                      (*3)
          root (hd0,1)
          kernel /vmlinuz-2.6.32-71.el6.x86_64 ro 
                 root=UUID=ef9cab98-5b1d-4fe2-89e6-4e1548778338
                                                            (*4)
                 rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM 
                 LANG=ja_JP.UTF-8 KEYBOARDTYPE=pc KEYTABLE=jp106 
                 crashkernel=128M 
                              (*5)
          initrd /initramfs-2.6.32-71.el6.x86_64.img
                                                 (*6)
      (*1) defaultの値(この例では1)
      (*2) システムディスクのミラーリング設定前のinitrdファイル名
      (*3) (defaultの値+1)番目(この例では2番目)のエントリのタイトルの_gds_sysvol を _gds_no_sysvol に変更
      (*4) rootデバイス名を、GDSの論理ボリュームのパスから UUID に変更
           (UUID は blkid コマンドで確認できます)
      (*5) rdinsmodpost=sfdsksysの記述を削除
      (*6) initrdの値が(*2)と異なる場合、initrdを(*2)と同じ値に変更
  2. 手順1の「編集前の例」において(*2)と(*6)が同じ値だった場合、システムディスクのミラーリング設定時にGDSがバックアップしたinitrdファイル(initramfs-カーネルバージョン.img.gdsbak)のファイル名を(*2)(*6)と同じ名前に変更します。
    まず、initrdファイルをバックアップします。既存ファイルを上書きしないようにするため、バックアップのファイル名(mvコマンドの第2引数)は既存ファイルと異なるファイル名にしてください。

    # cd /work/boot
    # mv initramfs-2.6.32-71.el6.x86_64.img initramfs-2.6.32-71.el6.x86_64.img.bak.gdsbak

    次に、システムディスクのミラーリング設定時にGDSがバックアップしたinitrdファイルのファイル名を(*2)(*6)と同じ名前に変更します。

    # mv initramfs-2.6.32-71.el6.x86_64.img.gdsbak initramfs-2.6.32-71.el6.x86_64.img

5b-4) fstabファイルを編集します。

# vim /work/root/etc/fstab

fstabファイルに記述されている、ルートクラスのボリュームのマウント設定行を、交換したシステムディスクのパーティション構成に合わせて編集します。以下に例を示します。

5b-5) dracut.confファイルを編集します。本手順は、PH15096 の修正が適用されている場合は不要です。

# vim /work/root/etc/dracut.conf

dracut.confファイルから、GDSのドライバの記述を削除します。

(*1) GDSのドライバの記述
(*2) 半角1文字分の空白を残し、sfdsksysを削除

5b-6) 以下のディレクトリが存在する場合、削除します。

# rm -rf /work/root/usr/share/dracut/modules.d/96ins_sfdsksys
# rm -rf /work/root/usr/share/dracut/modules.d/96sfdsksys

5b-7) root_mknod.shファイルの権限を変更します。

# chmod 400 /work/root/etc/opt/FJSVsdx/RootMirror/root_mknod.sh

5b-8) EFI環境変数に設定されているGDSの構成データベースの情報を削除します。

# cd /sys/firmware/efi/vars/
# cat sysvol-db2-*/raw_var > del_var

5b-9) EFIシステムパーティションとルートパーティションのマウントを解除します。

# cd /
# umount /work/efi
# umount /work/root
# umount /work/boot
# rmdir /work/efi
# rmdir /work/root
# rmdir /work/boot
# rmdir /work

5b-10) レスキューモードを終了します。

# exit

6) EFIブートマネージャ (PRIMEQUEST 3000の場合はBIOS) のブートオプションに、交換したブートディスクを追加します。
手順は、OSのバージョンによって異なります。


6-1) EFIブートマネージャのブートオプション選択画面 (PRIMEQUEST 3000の場合はBIOSのBootタブ) で、[Boot Maintenance Manager] を選択します。

6-2) Boot Maintenance Manager画面で、[Boot Options] を選択します。

6-3) Boot Options画面で、[Add Boot Option] を選択します。

6-4) Add Boot Option画面が表示されたら、交換したブートディスクをブートオプションに追加します。

  1. デバイスの一覧から、/dev/sda に対応するデバイスを選択します。

    デバイスの認識方法については、EFIのマニュアルを参照してください。

  2. 選択したディスクのルートディレクトリの内容が表示された後、"EFI"を選択します。

  3. EFIディレクトリの内容が表示された後、"redhat"を選択します。

  4. redhatディレクトリの内容が表示された後、"grub.efi"(RHEL6の場合)または"shim.efi"(RHEL7の場合) を選択します。

  5. "Input the description"を選択します。

  6. ラベルに使用する文字列を入力します。

    ここでは"New_sda"とします。

  7. "Commit Changes and Exit"を選択します。

  8. PRIMEQUEST 3000の場合、[Esc] を入力し [Boot Options] を終了します。

  9. [Esc] を入力し [Boot Maintenance Manager] を終了します。

6-5) PRIMEQUEST 3000の場合、BIOS の Exit タブで [Boot Override] を選択します。

PRIMEQUEST 3000以外の場合、EFIブートマネージャのブートオプション選択画面で [Boot Manager] を選択します。

6-6) オプション選択画面 (PRIMEQUEST 3000の場合はBoot Override画面) で、手順6-4)の6.で入力したラベル名を選択し、ブートします。


7) EFIブートマネージャのブートオプションから、SDXディスクの項目を削除します。

参照

efibootmgrコマンドの詳細については、efibootmgrコマンドのマニュアルを参照してください。

7-1) 現在の EFIブートマネージャの設定を確認します。

# efibootmgr
BootCurrent: 0000
Timeout: 5 seconds
BootOrder: 0001,0002,0000
Boot0000* sda
Boot0001* RootDisk1
Boot0002* RootDisk2

この例では、項番 0001 の RootDisk1 と、項番 0002 の RootDisk2 が SDXディスクの項目です。

7-2) ブートオプションから SDXディスクの項目を削除します。

# efibootmgr -B -b 0001
BootCurrent: 0000
Timeout: 5 seconds
BootOrder: 0002,0000
Boot0000* sda
Boot0002* RootDisk2
# efibootmgr -B -b 0002
BootCurrent: 0000
Timeout: 5 seconds
BootOrder: 0000
Boot0000* sda

8) システムディスクのミラーリングを再設定します。

参照

設定方法については、「6.5 システムディスクミラーリングの設定【EFI】」以下を参照してください。


(5) システムがブートできない (ブートディスクのデータ破壊)

説明

何らかのトラブルによって、システムディスクのデータが不当となり、あらかじめ採取されたバックアップデータからの復旧が必要となる場合があります。
副ブートディスク装置からの復旧に失敗した場合は、以下の手順で復旧してください。

対処

7.4.6 リストア手順 (システムがブートできない場合)【EFI】」を参照してください。


(6) システムがブートできない (errataカーネルの削除)。【RHEL7】

説明

システムディスクをミラーリングしている環境でerrataカーネルを削除した後、システムを再起動する前にgrub2-mkconfigコマンドでgrub.cfgファイルを更新しなかった場合、システムが起動できなくなることがあります。

参照

errataカーネル削除時の注意事項については、「7.18 errataカーネルの削除【RHEL7】」を参照してください。

対処

1) EFIブートマネージャのブートオプション選択画面で "GDS sysvol entry for Red Hat Enterprise Linux Server, ..."の形式のブートエントリを選択してシステムを起動します。

2) システムが起動した後、grub.cfgファイルを更新するため、grub2-mkconfigコマンドを実行します。

# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg

3) 手順1)で該当するブートエントリがなかった場合、「(4) システムがブートできない (全ブートディスク装置の故障)。」に従って復旧してください。なお、ディスクを交換する必要はありません。


(7) システムディスクミラーリングの設定が失敗する。【RHEL7】

説明

システムディスクミラーリングの設定時に「システムディスク ミラー設定中」というポップアップメッセージが表示された後、「システムディスク ミラー解除中」というポップアップメッセージが表示され、システムディスクミラーリングの設定が完了しないことがあります。

このとき、/var/log/messagesファイルに以下のメッセージが出力されます。

[メッセージ]

kernel: efivars: set_variable() failed: status=-28
systemd-udevd: inotify_add_watch(X, /dev/sdXX, XX) failed: No such file or directory

この現象は、NVRAMの空き容量が少ない場合に発生します。

対処

1) /etc/default/grubファイルのGRUB_CMDLINE_LINUXの行にefi_no_storage_paranoiaを追加します。

(例)

GRUB_CMDLINE_LINUX="rd.lvm.lv=rhel/root (中略) crashkernel=auto efi_no_storage_paranoia"

2) grub2-mkconfigコマンドを実行します。

# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg

3) システムを再起動します。

# shutdown -r now

4) システムディスクミラーリングの設定を行います。

参照

システムディスクミラーリングの設定方法については、「6.5 システムディスクミラーリングの設定【EFI】」を参照してください。