/ (ルート)、/usr、あるいは /var といった、ファイルシステムが動作しているシステムディスクに関するトラブルへの対処方法について説明します。
以下に該当する場合は、それぞれに記載されている対処を行ってください。
(1) ルートファイルシステムなどのバックアップを採取する。
説明
システムディスクをミラーリングすることによって、一方の物理ディスクが故障したとしてもデータは保護されます。しかし、多重故障などによる致命的な障害や操作ミスによって破損されたデータを復元するためには、あらかじめバックアップを採取しておく必要があります。
対処
「7.4.2 バックアップ手順【EFI】」を参照してください。
(2) システムはブートできるが、システムディスクのデータが不当である。
説明
何らかのトラブルによって、システムディスクのデータが不当となり、あらかじめ採取されたバックアップデータをリストアすることによって、復旧しなければならない場合があります。
対処
「7.4.5 リストア手順 (システムがブートできる場合)【EFI】」を参照してください。
(3) システムがブートできない (主ブートディスク装置の故障)。
説明
システムディスクがミラーリングされていても、ブートに失敗する場合がありえます。例えば、ブートディスク装置内にあるブート中にアクセスされるファイルの一部が物理的に破壊されている場合、あるいは不当な手順によるディスク交換が行われた場合などが該当します。
失敗したブート中のコンソールメッセージなどを調査して、本現象と推測される場合には、ミラーリングしているもう一方のブートディスク、すなわち、副ブートディスク装置からのブートを試みてください。
対処
1) EFI ブートマネージャのブートオプション選択画面に表示されるブートディスク装置の中から、副ブートディスク装置を選択してブートします。
SDX ディスク名のうち、最も上に表示されているものが主ブートディスク装置名で、それ以外の SDX ディスク名は副ブートディスク装置名です。3 多重以上のミラー構成の場合、副ブートディスク装置は複数存在します。以下の例では、Root1 が主ブートディスク装置名で、Root2、Root3 が副ブートディスク装置名です。
EFI Boot Manager ver 1.10 Please select a boot option Root1 Root2 Root3 ~ Use ↑ and ↓ to change option(s). Use Enter to select an option |
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 ext3 1041.000 9233.000 (parted) mkpart primary ext3 9234.000 13330.000 (parted) mkpart primary ext3 13331.000 15379.000 (parted) mkpart primary ext3 15380.000 21380.000 (parted) mkpart primary ext3 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 |
(*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) 手順5a-2-2)で確認したinitrdファイル名
2) initrdファイルにEarly CPIO imageが含まれている場合、以下の手順でinitrdファイルを展開します。
# cd /work/root/作業ディレクトリ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のドライバを読み込むシェルスクリプトを削除します。
以下のファイルが存在する場合、削除します。
/work/root/作業ディレクトリ2/sbin/ins_sfdsksys.sh
/work/root/作業ディレクトリ2/usr/lib/dracut/hooks/cmdline/01-parse-ins_sfdsksys.sh
# rm /work/root/作業ディレクトリ2/sbin/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 |
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)で確認したエントリを、以下のように変更します。
編集前の例
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 } |
編集後の例
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 } |
(*1) 手順5a-2-1)で確認したエントリ名 (*2) rootデバイス名を、GDSの論理ボリュームのパスから UUID に変更 (UUID は blkid コマンドで確認できます) (*3) rd.driver.post=sfdsksysの記述を削除
参考
RHEL7(Intel64)でシステムディスクのミラーリングを行った後、initrdファイルが更新される操作(カーネルのアップデートなど)を一度も行っていない場合、手順5a-2)、5a-3)を実行せず、代わりに以下の手順を実行することで、より簡単かつ短時間で設定を解除できます。
エントリ名を確認します。
/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 |
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ファイルに記述されている、ルートクラスのボリュームのマウント設定行を、交換したシステムディスクのパーティション構成に合わせて編集します。以下に例を示します。
編集前の例
/dev/sfdsk/gdssys2 / ext3 defaults 1 1 /dev/sfdsk/gdssys5 /boot ext3 defaults 1 2 /dev/sfdsk/gdssys6 /boot/efi vfat defaults 0 0 /dev/sfdsk/gdssys3 /etc/opt ext3 defaults 1 2 /dev/sfdsk/gdssys32 /usr ext3 defaults 1 2 /dev/sfdsk/gdssys4 /var ext3 defaults 1 2 /dev/sfdsk/gdssys33 swap swap defaults 0 0 |
編集後の例
UUID=ef9cab98-5b1d-4fe2-89e6-4e1548778338 / ext3 defaults 1 1 UUID=d8355b07-2cae-4604-86d8-88e8fbcc5c54 /boot ext3 defaults 1 2 UUID=6580-6FA6 /boot/efi vfat defaults 0 0 UUID=965bac91-dfd0-471d-84c4-4fa10592c7c4 /etc/opt ext3 defaults 1 2 UUID=86ef50f9-aebd-4cf2-9244-24755655ffba /usr ext3 defaults 1 2 UUID=eec4b0e6-d9f7-4e3d-aee4-403f824d3f82 /var ext3 defaults 1 2 UUID=d340f796-dbcf-4e17-9876-0cd57b9f7722 swap swap defaults 0 0 |
5a-5) dracut.confファイルを編集します。本手順は、PH15096 の修正が適用されている場合は不要です。
# vim /work/root/etc/dracut.conf |
dracut.confファイルから、GDSのドライバの記述を削除します。
編集前の例
... # install local /etc/lvm/lvm.conf lvmconf="yes" add_drivers+=" sfdsksys" (*1) |
編集後の例
... # install local /etc/lvm/lvm.conf lvmconf="yes" add_drivers+=" " (*2) |
(*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 |
編集前の例
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT='GDS sysvol entry'
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="vconsole.keymap=jp106 crashkernel=auto
vconsole.font=latarcyrheb-sun16 rhgb quiet
rd.driver.post=sfdsksys"
GRUB_DISABLE_RECOVERY="true" |
編集後の例
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT='Red Hat Enterprise Linux Server, with Linux 3.10.0-123.el7.x86_64'
(*1)
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="vconsole.keymap=jp106 crashkernel=auto
vconsole.font=latarcyrheb-sun16 rhgb quiet
"
GRUB_DISABLE_RECOVERY="true" |
(*1) 手順5a-2-2)で確認したinitrdファイル名に含まれるカーネル版数
5a-7) 以下のディレクトリが存在する場合、削除します。
/work/root/usr/lib/dracut/modules.d/90k_sfdsksys
# rm -rf /work/root/usr/lib/dracut/modules.d/90k_sfdsksys |
/work/root/etc/opt/FJSVsdx/bkup/grub
# rm -rf /work/root/etc/opt/FJSVsdx/bkup/grub |
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 |
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) 手順5b-2-1)で確認したinitrdファイル名(「initramfs-文字列-sysvol.img」形式の場合もある)
/work/root にマウントしたファイルシステムに十分な空き容量が無く、"no space left on device" のメッセージが出力された場合は、空き容量がある他のファイルシステムをマウントして作業ディレクトリを作成し、initrd ファイルを展開してください。
5b-2-4) 展開されたinitrdから、GDSのドライバを削除します。
RHEL6.0環境または PH15096 の修正が適用されている場合
# rm /work/root/作業ディレクトリ/lib/modules/2.6.32-71.el6.x86_64/extra/FJSVsdx-drvcore/sfdsksys.ko # rm /work/root/作業ディレクトリ/lib/modules/2.6.32-71.el6.x86_64/extra/FJSVsdx-drvcore/sfdsk_lib.ko |
RHEL6.1以降の環境かつ PH15096 の修正が適用されていない場合
# rm /work/root/作業ディレクトリ/lib/modules/2.6.32-220.el6.x86_64/weak-updates/FJSVsdx-drvcore/sfdsksys.ko # rm /work/root/作業ディレクトリ/lib/modules/2.6.32-220.el6.x86_64/weak-updates/FJSVsdx-drvcore/sfdsk_lib.ko |
5b-2-5) 展開されたinitrdから、GDSのドライバを読み込むシェルスクリプトを削除します。
以下のファイルが存在する場合、削除します。
/work/root/作業ディレクトリ/sbin/ins_sfdsksys.sh
/work/root/作業ディレクトリ/cmdline/20parse-ins_sfdsksys.sh
# rm /work/root/作業ディレクトリ/sbin/ins_sfdsksys.sh |
RHEL6.0の場合、以下のファイルも削除します。
/work/root/作業ディレクトリ/sbin/insmodpost.sh
/work/root/作業ディレクトリ/cmdline/20parse-insmodpost.sh
# rm /work/root/作業ディレクトリ/sbin/insmodpost.sh # rm /work/root/作業ディレクトリ/cmdline/20parse-insmodpost.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-2-1)で確認したinitrdファイル名が「initramfs-カーネルバージョン.img」形式の場合
手順5b-2-1)で確認したinitrdファイルをバックアップしてから、手順5b-2-6)で圧縮したinitrdファイルを手順5b-2-1)で確認したinitrdファイルと同じファイル名で配置します。
# cd /work/boot # mv initramfs-2.6.32-71.el6.x86_64.img initramfs-2.6.32-71.el6.x86_64.img.gdsbak # mv /work/boot/initrd-new.img /work/boot/initramfs-2.6.32-71.el6.x86_64.img |
手順5b-2-1)で確認したinitrdファイル名が「initramfs-文字列-sysvol.img」形式の場合
既存ファイルを上書きしないようにするため、既存ファイルと異なるファイル名で配置してください。
# mv /work/boot/initrd-new.img /work/boot/initramfs-2.6.32-71.el6.x86_64-no_sysvol.img |
5b-3) grub.confファイルを編集します。
# vim /work/efi/EFI/redhat/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 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 (*3) 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 (*4) initrd /initramfs-2.6.32-71.el6.x86_64.img (*5) |
編集後の例
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_no_sysvol (*2) root (hd0,1) kernel /vmlinuz-2.6.32-71.el6.x86_64 ro root=UUID=ef9cab98-5b1d-4fe2-89e6-4e1548778338 (*3) rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=ja_JP.UTF-8 KEYBOARDTYPE=pc KEYTABLE=jp106 crashkernel=128M (*4) initrd /initramfs-2.6.32-71.el6.x86_64.img (*5) |
(*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ファイル名に変更
参考
RHEL6(Intel64)でシステムディスクのミラーリングを行った後、initrdファイルが更新される操作(カーネルのアップデートなど)を一度も行っていない場合、手順5b-2)、5b-3)を実行せず、代わりに以下の手順を実行することで、より簡単かつ短時間で設定を解除できます。
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)と同じ値に変更
手順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ファイルに記述されている、ルートクラスのボリュームのマウント設定行を、交換したシステムディスクのパーティション構成に合わせて編集します。以下に例を示します。
編集前の例
/dev/sfdsk/gdssys2 / ext3 defaults 1 1 /dev/sfdsk/gdssys5 /boot ext3 defaults 1 2 /dev/sfdsk/gdssys6 /boot/efi vfat defaults 0 0 /dev/sfdsk/gdssys3 /etc/opt ext3 defaults 1 2 /dev/sfdsk/gdssys32 /usr ext3 defaults 1 2 /dev/sfdsk/gdssys4 /var ext3 defaults 1 2 /dev/sfdsk/gdssys33 swap swap defaults 0 0 |
編集後の例
UUID=ef9cab98-5b1d-4fe2-89e6-4e1548778338 / ext3 defaults 1 1 UUID=d8355b07-2cae-4604-86d8-88e8fbcc5c54 /boot ext3 defaults 1 2 UUID=6580-6FA6 /boot/efi vfat defaults 0 0 UUID=965bac91-dfd0-471d-84c4-4fa10592c7c4 /etc/opt ext3 defaults 1 2 UUID=86ef50f9-aebd-4cf2-9244-24755655ffba /usr ext3 defaults 1 2 UUID=eec4b0e6-d9f7-4e3d-aee4-403f824d3f82 /var ext3 defaults 1 2 UUID=d340f796-dbcf-4e17-9876-0cd57b9f7722 swap swap defaults 0 0 |
5b-5) dracut.confファイルを編集します。本手順は、PH15096 の修正が適用されている場合は不要です。
# vim /work/root/etc/dracut.conf |
dracut.confファイルから、GDSのドライバの記述を削除します。
編集前の例
... # install local /etc/lvm/lvm.conf lvmconf="yes" add_drivers+=" sfdsksys" (*1) |
編集後の例
... # install local /etc/lvm/lvm.conf lvmconf="yes" add_drivers+=" " (*2) |
(*1) GDSのドライバの記述 (*2) 半角1文字分の空白を残し、sfdsksysを削除
5b-6) 以下のディレクトリが存在する場合、削除します。
/work/root/usr/share/dracut/modules.d/96ins_sfdsksys
/work/root/usr/share/dracut/modules.d/96sfdsksys
# 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 |
5c) RHEL4(IPF)またはRHEL5(IPF)の場合
5c-1) EFIシステムパーティションとルートパーティションをマウントします。
以下の例では、一時的なマウントポイントとして、/work/efiディレクトリと/work/rootディレクトリを使用します。
# mkdir /work # mkdir /work/efi # mkdir /work/root # mount /dev/sda7 /work/efi # mount /dev/sda5 /work/root |
参考
システムディスクのミラーリングを行った後、initrdファイルが更新される操作(カーネルのアップデートなど)を一度も行っていない場合、手順5c-2)、5c-3)の代わりに、後述の参考「initrdファイルが更新されていない場合のelilo.confファイルの編集方法」の手順を実施すると、より簡単かつ短時間で設定を解除できます。
この手順は、initrdファイルが更新される操作を行っていないことが確実な場合にだけ実施してください。それ以外の場合は、以下の5c-2)~5c-7)の手順を実施してください。
5c-2) initrdファイルからGDSの情報を削除します。
5c-2-1) initrdファイル名を確認します。
initrdファイル名は、elilo.confファイルのエントリのうち、labelの値がdefaultの値と同じエントリの、initrd= の右辺に記述されています。
以下の例では、initrdファイル名はinitrd-2.6.9-5.0.3.EL-sysvol_1.imgです。
# more /work/efi/efi/redhat/elilo.conf prompt timeout=20 default=2.6.9-5.0.3.EL_gds_sysvol (*1) relocatable image=vmlinuz-2.6.9-5.0.3.EL label=2.6.9-5.0.3.EL initrd=initrd-2.6.9-5.0.3.EL.img append="rhgb quiet root=LABEL=/" image=vmlinuz-2.6.9-5.0.3.EL label=2.6.9-5.0.3.EL_gds_sysvol (*2) initrd=initrd-2.6.9-5.0.3.EL-sysvol_1.img (*3) append="rhgb quiet root=/dev/sfdsk/System/dsk/rootVolume" |
(*1) defaultラベル (*2) defaultラベルと一致 (*3) initrdファイル名
5c-2-2) 作業ディレクトリを作成し、移動します。
既存のディレクトリとは異なる名前のディレクトリを作成してください。
# mkdir /work/root/作業ディレクトリ # cd /work/root/作業ディレクトリ |
5c-2-3) initrdファイルを作業ディレクトリに展開します。
/work/root にマウントしたファイルシステムに十分な空き容量が無く、以下の手順において "no space left on device" のメッセージが出力された場合は、空き容量がある他のファイルシステムをマウントして作業ディレクトリを作成し、initrd ファイルを展開してください。
# zcat /work/efi/efi/redhat/initrd-2.6.9-5.0.3.EL-sysvol_1.img | cpio -i -c (*1) |
(*1) 手順5b-2-1)で確認したinitrdファイル名
5c-2-4) 展開されたinitrdから、GDSのドライバを削除します。
# rm /work/root/作業ディレクトリ/lib/sfdsk_lib # rm /work/root/作業ディレクトリ/lib/sfdsksys |
5c-2-5) 展開されたinitrdのinitスクリプトから、GDSの情報を削除します。
(1) initスクリプトをバックアップします。
# cp /work/root/作業ディレクトリ/init /work/efi/efi/redhat/init.org |
(2) initスクリプトを編集します。
# vim /work/root/作業ディレクトリ/init |
RHEL5 の場合、mkrootdev行を / (ルート)の論理ボリュームのパスから物理スライス名に変更します。
RHEL4 の場合、本手順は不要です。
編集前の例
mkrootdev -t ext3 -o defaults,ro /dev/sfdsk/System/dsk/root
(*1) |
編集後の例
mkrootdev -t ext3 -o defaults,ro sda5
(*1) |
(*1) mkrootdev行を / (ルート)の論理ボリュームのパスから物理スライス名に変更
sfdskという文字列を含む行をすべて削除します。
削除する行の例
mkdir -p /dev/sfdsk mkdir -p /dev/sfdsk/System mkdir -p /dev/sfdsk/System/dsk mknod /dev/sfdsk/System/dsk/efiVolume b 231 6 mknod /dev/sfdsk/System/dsk/bootVolume b 231 73 mknod /dev/sfdsk/System/dsk/optVolume b 231 71 mknod /dev/sfdsk/System/dsk/rootVolume b 231 2 mknod /dev/sfdsk/System/dsk/swapVolume b 231 72 mknod /dev/sfdsk/System/dsk/usrVolume b 231 74 mknod /dev/sfdsk/System/dsk/varVolume b 231 4 echo "Loading sfdsk" insmod /lib/sfdsk_lib insmod /lib/sfdsksys |
5c-2-6) 編集したinitrdをcpio形式で圧縮します。
# cd /work/root/作業ディレクトリ # find . | cpio --quiet -c -o | gzip -c > /work/initrd-new.img |
/work/root 配下に作成した作業ディレクトリを削除します。
# cd / # rm -rf /work/root/作業ディレクトリ |
5c-2-7) 手順5c-2-6)で圧縮したinitrdファイルを、EFIシステムパーティションに配置します。
既存ファイルを上書きしないようにするため、既存ファイルと異なるファイル名で配置してください。
# cp /work/initrd-new.img /work/efi/efi/redhat/initrd-2.6.9-5.0.3.EL-no_sysvol_1.img |
5c-3) elilo.confファイルを編集します。
# vim /work/efi/efi/redhat/elilo.conf |
defaultの値を、GDSでミラーリングされていないことを示す文字列に変更します。
また、elilo.confファイルのエントリのうち、labelの値がdefaultの値と一致するエントリを、以下のように変更します。
編集前の例
prompt timeout=20 default=2.6.9-5.0.3.EL_gds_sysvol (*1) relocatable image=vmlinuz-2.6.9-5.0.3.EL label=2.6.9-5.0.3.EL initrd=initrd-2.6.9-5.0.3.EL.img append="rhgb quiet root=LABEL=/" image=vmlinuz-2.6.9-5.0.3.EL label=2.6.9-5.0.3.EL_gds_sysvol (*2) initrd=initrd-2.6.9-5.0.3.EL-sysvol_1.img (*3) append="rhgb quiet root=/dev/sfdsk/System/dsk/rootVolume" (*4) |
編集後の例
prompt timeout=20 default=2.6.9-5.0.3.EL_no_sysvol (*1) relocatable image=vmlinuz-2.6.9-5.0.3.EL label=2.6.9-5.0.3.EL initrd=initrd-2.6.9-5.0.3.EL.img append="rhgb quiet root=LABEL=/" image=vmlinuz-2.6.9-5.0.3.EL label=2.6.9-5.0.3.EL_no_sysvol (*2) initrd=initrd-2.6.9-5.0.3.EL-no_sysvol_1.img (*3) append="rhgb quiet root=/dev/sda5" (*4) |
(*1) defaultの値の _gds_sysvol を _no_sysvol に変更 (*2) 変更前のdefaultの値と一致するlabelの値を、変更後のdefaultと同じ値に変更 (*3) initrdを、手順5b-2-7)で配置したinitrdファイル名に変更 (*4) rootデバイス名を、GDSの論理ボリュームのパスから物理スライスのパスに変更
参考
RHEL4(IPF)またはRHEL5(IPF)でシステムディスクのミラーリングを行った後、initrdファイルが更新される操作(カーネルのアップデートなど)を一度も行っていない場合、手順5c-2)、5c-3)を実行せず、代わりに以下の手順を実行することで、より簡単かつ短時間で設定を解除できます。
elilo.confファイルを編集します。
# vim /work/efi/efi/redhat/elilo.conf |
elilo.confファイルに記述されている、システムディスクのミラーリング設定後のカーネルイメージの設定を、システムディスクのミラーリングを行わない設定に変更します。カーネルイメージのうち、labelの値が defaultの値と同じであるものが、システムディスクのミラーリング設定後のカーネルイメージです。
以下に例を示します。
編集前の例
prompt timeout=20 default=2.6.9-5.0.3.EL_gds_sysvol (*1) relocatable image=vmlinuz-2.6.9-5.0.3.EL label=2.6.9-5.0.3.EL initrd=initrd-2.6.9-5.0.3.EL.img (*2) append="rhgb quiet root=LABEL=/" image=vmlinuz-2.6.9-5.0.3.EL label=2.6.9-5.0.3.EL_gds_sysvol (*3) initrd=initrd-2.6.9-5.0.3.EL-sysvol_1.img append="rhgb quiet root=/dev/sfdsk/RootClass/dsk/rootVolume" (*5) |
編集後の例
prompt timeout=20 default=2.6.9-5.0.3.EL_gds_no_sysvol (*1) relocatable image=vmlinuz-2.6.9-5.0.3.EL label=2.6.9-5.0.3.EL initrd=initrd-2.6.9-5.0.3.EL.img (*2) append="rhgb quiet root=LABEL=/" image=vmlinuz-2.6.9-5.0.3.EL label=2.6.9-5.0.3.EL_gds_no_sysvol (*3) initrd=initrd-2.6.9-5.0.3.EL.img (*4) append="rhgb quiet root=/dev/sda5" (*5) |
(*1) defaultの値の _gds_sysvol を _no_sysvol に変更 (*2) システムディスクのミラーリング設定前のinitrdファイル名 (*3) 変更前のdefaultの値と一致するlabelの値を、変更後のdefaultと同じ値に変更 (*4) initrdを、(*2)と同じ値に変更 (*5) rootデバイス名を、GDSの論理ボリュームのパスから物理スライスのパスに変更
5c-4) fstabファイルを編集します。
# vim /work/root/etc/fstab |
fstabファイルに記述されている、ルートクラスのボリュームのマウント設定行を、交換したシステムディスクのパーティション構成に合わせて編集します。以下に例を示します。
編集前の例
/dev/sfdsk/System/dsk/root / ext3 defaults 1 1 /dev/sfdsk/System/dsk/boot /boot ext3 defaults 1 2 /dev/sfdsk/System/dsk/efi /boot/efi vfat defaults 0 0 /dev/sfdsk/System/dsk/opt /etc/opt ext3 defaults 1 2 /dev/sfdsk/System/dsk/usr /usr ext3 defaults 1 2 /dev/sfdsk/System/dsk/var /var ext3 defaults 1 2 /dev/sfdsk/System/dsk/swap swap swap defaults 0 0 |
編集後の例
/dev/sda5 / ext3 defaults 1 1 /dev/sda6 /boot ext3 defaults 1 2 /dev/sda7 /boot/efi vfat defaults 0 0 /dev/sda4 /etc/opt ext3 defaults 1 2 /dev/sda2 /usr ext3 defaults 1 2 /dev/sda3 /var ext3 defaults 1 2 /dev/sda1 swap swap defaults 0 0 |
5c-5) EFI環境変数に設定されているGDSの構成データベースの情報を削除します。
# cd /sys/firmware/efi/vars/ # cat sysvol-db-*/raw_var > del_var |
5c-6) EFIシステムパーティションとルートパーティションのマウントを解除します。
# umount /work/efi # umount /work/root # rmdir /work/efi # rmdir /work/root # rmdir /work |
5c-7) レスキューモードを終了します。
# exit |
6) EFIブートマネージャのブートオプションに、交換したブートディスクを追加します。
手順は、OSのバージョンによって異なります。
6a) RHEL6(Intel64) または RHEL7(Intel64) の場合
6a-1) EFIブートマネージャのブートオプション選択画面で、[Boot Maintenance Manager] を選択します。
6a-2) Boot Maintenance Manager画面で、[Boot Option] ( PRIMEQUEST 1000 シリーズの場合 )または[Boot Options] ( PRIMEQUEST 2000 シリーズの場合) を選択します。
6a-3) Boot Options画面で、[Add Boot Option] を選択します。
6a-4) Add Boot Option画面が表示されたら、交換したブートディスクをブートオプションに追加します。
デバイスの一覧から、/dev/sda に対応するデバイスを選択します。
デバイスの認識方法については、EFIのマニュアルを参照してください。
選択したディスクのルートディレクトリの内容が表示された後、"EFI"を選択します。
EFIディレクトリの内容が表示された後、"redhat"を選択します。
redhatディレクトリの内容が表示された後、"grub.efi"(RHEL6の場合)または"shim.efi"(RHEL7の場合) を選択します。
"Input the description"を選択します。
ラベルに使用する文字列を入力します。
ここでは"New_sda"とします。
"Commit Changes and Exit"を選択します。
[Esc] を入力し [Boot Maintenance Manager] を終了します。
6a-5) EFIブートマネージャのブートオプション選択画面で、[Boot Manager] を選択します。
6a-6) オプション選択画面で、手順6a-4)の6.で入力したラベル名を選択し、ブートします。
6b) RHEL4(IPF)またはRHEL5(IPF)の場合
6b-1) EFIブートマネージャのブートオプション選択画面で、[Boot option maintenance menu] を選択します。
6b-2) Main Menu画面で、[Add a Boot Option] を選択します。
6b-3) Add a Boot Option画面が表示されたら、交換したブートディスクをブートオプションに追加します。
デバイスの一覧から、/dev/sda に対応するデバイスを選択します。
デバイスの認識方法については、EFIのマニュアルを参照してください。
選択したディスクのルートディレクトリの内容が表示された後、"EFI"を選択します。
EFIディレクトリの内容が表示された後、"redhat"を選択します。
redhatディレクトリの内容が表示された後、"elilo.efi"を選択します。
Edit this Boot Option or Create a new one? [E-Edit N-New]: の問合せに対し、"N" を入力します。
Enter New Description: の問合せに対し、ブートオプション選択画面で選択対象(ブートオプション名)として表示したい文字列を入力します。
Enter BootOption Data Type [A-Ascii U-Unicode N-No BootOption]:の問合せに対し、"N" を入力します。
Save [Y-Yes N-No]: の問合せに対し、"Y" を入力します。
[Exit] を選択して [Add a Boot Option] を終了します。
6b-4) [Exit] を選択して Main Menu画面を終了します。
6b-5) オプション選択画面で、6b-3)の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.16 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】」を参照してください。
(8) システムディスクミラーリングの解除後、システムが起動しない。【RHEL6以降】
説明
システムディスクミラーリングの解除後、ディスク故障などによりデバイス名ずれが発生してシステムディスクの物理ディスク名(sdX)が変わった場合、システム起動時にパニックが発生し、システムが起動できません。
この現象は、GDS 4.3A40 以前を使用していて、PH04098 の修正が適用されていない場合に発生します。
対処
1) CD-ROM装置からシステムを起動します。
2) システムディスクのEFIシステムパーティションとルートパーティションをマウントします。
(例) EFIシステムパーティションが/dev/sda1、ルートパーティションが/dev/sda3で、/workディレクトリにマウントポイントを作成してマウントする場合
# mkdir /work # mkdir /work/efi |
3) システムディスクのスライスのUUIDを確認します。
(例) システムディスクが/dev/sdaの場合
# blkid | grep /dev/sda |
4) fstabファイル内の物理スライス名をUUIDに書き換えます。
(例) ルートパーティションのマウントポイントが /work/root の場合
# vim /work/root/etc/fstab |
編集前の例
/dev/sda3 / ext4 defaults 1 1 /dev/sda2 /boot ext4 defaults 1 2 /dev/sda1 /boot/efi vfat umask=0077,shortname=winnt 0 0 /dev/sda4 swap swap defaults 0 0 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 |
編集後の例
UUID=5e259be1-7f86-4be8-99c2-5d35226fe1af / ext4 defaults 1 1 UUID=734f4577-7fc9-4125-9fe5-e15a68ff7421 /boot ext4 defaults 1 2 UUID=1E52-6CDC /boot/efi vfat umask=0077,shortname=winnt 0 0 UUID=47c05f17-157f-4266-8670-15bea1543d8b swap swap defaults 0 0 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 |
5) RHEL6の場合、grub.confファイルを編集します。
5-1) defaultの値を確認します。
(例) EFIシステムパーティションのマウントポイントが /work/efi の場合
# cat /work/efi/EFI/redhat/grub.conf
default=2
... |
5-2) rootデバイス名をUUIDに書き換えます。
(defaultの値) + 1 番目のエントリの rootデバイス名をUUIDに書き換えます。
(例) EFIシステムパーティションのマウントポイントが /work/efi の場合
# vim /work/efi/EFI/redhat/grub.conf |
編集前の例
title Red Hat Enterprise Linux (2.6.32-431.el6.x86_64)_gds_no_sysvol
root (hd0,1)
kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/sda3
rd_NO_LUKS rd_NO_MD KEYBOARDTYPE=pc KEYTABLE=jp106
LANG=ja_JP.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet crashkernel=256M
nmi_watchdog=0 pcie_hp=nomsi trace_event=block:*,irq:*,mce:*,
sched:*,signal:*,workqueue:*,scsi:* trace_buf_size=25165824
initrd /initramfs-2.6.32-431.el6.x86_64.img |
編集後の例
title Red Hat Enterprise Linux (2.6.32-431.el6.x86_64)_gds_no_sysvol
root (hd0,1)
kernel /vmlinuz-2.6.32-431.el6.x86_64 ro
root=UUID=5e259be1-7f86-4be8-99c2-5d35226fe1af
rd_NO_LUKS rd_NO_MD KEYBOARDTYPE=pc KEYTABLE=jp106
LANG=ja_JP.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet crashkernel=256M
nmi_watchdog=0 pcie_hp=nomsi trace_event=block:*,irq:*,mce:*,
sched:*,signal:*,workqueue:*,scsi:* trace_buf_size=25165824
initrd /initramfs-2.6.32-431.el6.x86_64.img |
6) RHEL6の場合、システムディスクのミラー先だったディスクのパーティションをすべて削除します。
(例) システムディスクのミラー先だったディスクが /dev/sdb の場合
# parted /dev/sdb |
7) システムディスクからシステムを起動します。