[UEFI]mdadmによるRAID1 – 復旧方法 –

以前 BIOS から起動するシステムにおいて、mdadmにより構築しているRAID1のディスク故障時のディスクの交換方法を書いた。([BIOS]mdadmによるRAID1 – 復旧方法 –

今回は UEFI で起動するシステムでの復旧方法を記載する。

  1. 前準備(UEFIモードで起動できる仮想環境の準備)
    最初VirtualBoxの「EFIの有効化」という拡張機能を用いて試してみたが、次のサイトにも書かれているように「VirtualboxでUEFI有効にしてDebian入れたら二度目には起動しない。お前さっきまで起きてただろ!」、一度シャットダウンすると起動できなくなるという問題があり、検証に利用することができなかった。そのためVMware Workstation Playerを利用した。通常ではBIOSモードで起動するが、.vmxファイルに「firmware = “efi”」を追記するとUEFIモードで起動できるようになる。準備ができたら、HDDを二つ接続してRAID1構成でインストールを行う。ここの手順は割愛する。ちなみにインストールした際のパーティション構成は下記のとおり。

    Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
    Disk label type: gpt
    Disk identifier: 70C4696F-C25D-48D2-AC5A-20C23E2C863E
    
    
    #         Start          End    Size  Type            Name
     1         2048     35237887   16.8G  Linux RAID      Linux RAID
     2     35237888     39434239      2G  Linux RAID      Linux RAID
     3     39434240     39843839    200M  Linux RAID      Linux RAID
     4     39843840     41940991      1G  Linux RAID      Linux RAID

    1がルート、2がスワップ、3がEFI、4が/bootの領域

  2. HDDを故障させ復旧する
    この手順は以前の「[BIOS]mdadmによるRAID1 – 復旧方法 –」での手順と変わらないのでこちらを参照し、「・物理デバイスを故障させる」から「・RAIDデバイスへ新しい物理デバイスの追加」までの手順を実施する。
  3. 新しいHDDから起動できるように設定する
    uefiブートでは下記のように起動順序が設定されている。

    # efibootmgr -v
    BootCurrent: 0006
    BootOrder: 0006,0005,0000,0002,0003,0004,0001,0008
    Boot0000* EFI VMware Virtual SCSI Hard Drive (0.0)      PciRoot(0x0)/Pci(0x10,0x0)/SCSI(0,0)
    Boot0001* 耀෶   PciRoot(0x0)/Pci(0x10,0x0)/SCSI(0,0)/HD(3,GPT,9d1fb208-a4e6-4e43-bda0-182660a0621b,0x259b800,0x64000)/File(\EFI\centos\shimx64.efi)
    Boot0002* EFI VMware Virtual IDE CDROM Drive (IDE 1:0)  PciRoot(0x0)/Pci(0x7,0x1)/Ata(1,0,0)
    Boot0003* EFI Network   PciRoot(0x0)/Pci(0x11,0x0)/Pci(0x1,0x0)/MAC(000c2985f175,0)
    Boot0004* EFI Internal Shell (Unsupported option)       MemoryMapped(11,0xcb3a000,0xcfa0fff)/FvFile(c57ad6b7-0515-40a8-9d21-551652854e37)
    Boot0005* CentOS        HD(3,GPT,765b2167-fa3c-45b1-94d2-e0f3c0adc4d8,0x259b800,0x64000)/File(\EFI\centos\shimx64.efi)
    Boot0006* CentOS        HD(3,GPT,c1304ebe-93b7-4cba-9ee0-a35306fb67b2,0x259b800,0x64000)/File(\EFI\centos\shimx64.efi)
    

    efibootmgr(UEFIブートマネージャー)について、上記のコマンドの結果の読み方などはこのあたりを読んでください。
    efibootmgr その1 – UEFIブートマネージャーを操作するコマンドの紹介・UEFIブートマネージャーに登録されているエントリーの一覧を表示する
    https://wiki.gentoo.org/wiki/Efibootmgr/ja

    上記のサイトを読むと、交換したHDDのブートローダーを読み込むためにはUEFIブートマネージャーへの設定が必要だと分かります。ちなみに登録していないHDDで起動しようとするとこのように起動出来無くなってしまいます。(うまくやればBootManagerから起動させることは可能です)

    こうならずに正常に起動するためには次のコマンドを実行する。
    # efibootmgr --create -disk /dev/sda --part 3 --loader '\EFI\centos\shimx64.efi'
    上記のコマンドの中で「/dev/sda」、「3」、「\EFI\centos\shimx64.efi」の箇所はそれぞれの環境によって異る場合があるので気をつけてください。このように設定すると正常に起動することができるようになります。
    上記のコマンド実行後に「efibootmgr -v」を実行して起動順序を確認すると次のように一つ(例ではBoot0007の列)追加されていることが確認できます。

    # efibootmgr -v
    BootCurrent: 0006
    BootOrder: 0007,0006,0005,0002,0003,0004,0001
    Boot0001* 耀෶   PciRoot(0x0)/Pci(0x10,0x0)/SCSI(0,0)/HD(3,GPT,9d1fb208-a4e6-4e43-bda0-182660a0621b,0x259b800,0x64000)/File(\EFI\centos\shimx64.efi)
    Boot0002* EFI VMware Virtual IDE CDROM Drive (IDE 1:0)  PciRoot(0x0)/Pci(0x7,0x1)/Ata(1,0,0)
    Boot0003* EFI Network   PciRoot(0x0)/Pci(0x11,0x0)/Pci(0x1,0x0)/MAC(000c2985f175,0)
    Boot0004* EFI Internal Shell (Unsupported option)       MemoryMapped(11,0xcb3a000,0xcfa0fff)/FvFile(c57ad6b7-0515-40a8-9d21-551652854e37)
    Boot0005* CentOS        HD(3,GPT,765b2167-fa3c-45b1-94d2-e0f3c0adc4d8,0x259b800,0x64000)/File(\EFI\centos\shimx64.efi)
    Boot0006* CentOS        HD(3,GPT,c1304ebe-93b7-4cba-9ee0-a35306fb67b2,0x259b800,0x64000)/File(\EFI\centos\shimx64.efi)
    Boot0007* CentOS        HD(3,GPT,9d1fb208-a4e6-4e43-bda0-182660a0621b,0x259b800,0x64000)/File(\EFI\centos\shimx64.efi)
    

以上!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください