以前は、ソフトウェアRAID1でLVMを使用してサーバーをインストールし、両方のドライブのMBRにgrubをインストールしていました。現在、UEFIサーバーを使用していますが、互換性(BIOS)モードが機能していないようです。
そこで、UEFIを使用してインストールする方法を試しました。
最初のテストでは、単一ドライブのインストールが正常に機能します。
次に、RAID1 + LVMでインストールしようとしました。同じ方法で2つのドライブを分割しました。
次に、セットアップを行いました。-両方のディスクRAIDパーティションを使用するRAID 1-RAID 1アレイ上のLVMボリュームグループ-3つの論理ボリューム:/、/ homeおよびswap
インストールは続行しましたが、再起動すると、grubシェルが表示され、停止します。
それで、RAID1上のLVMでgrub2-efiを動作させることは可能ですか?これを達成する方法は何ですか?他のブートローダーの代替手段はありますか(EFIからの直接のLinuxロード??)?等...
OK、解決策を見つけて、自分の質問に答えることができます。
1)UEFIマシンでRAID1上のLVMを使用できますか?
はい、間違いなく。また、2つのディスクのいずれかに障害が発生した場合でも起動できます。
2)これを行う方法
インストーラーでは bug のように見えるため、インストーラーを使用しただけではブートに失敗します(grub Shell)。
作業手順は次のとおりです。
1)2つのディスクのそれぞれに次のパーティションを手動で作成します。-タイプUEFIの512MBパーティション、ディスクの先頭-その後のタイプRAIDのパーティション
2)2つのRAIDパーティションでRAID 1アレイを作成し、そのアレイと論理ボリュームでLVMボリュームグループを作成します(ルート用、ホーム用、スワップ用に作成しました)。
3)インストールを続行し、再起動します。失敗! grubシェルを取得する必要があります。
4)grubシェルから起動することは可能かもしれませんが、私はレスキューusbディスクから起動することを選択しました。レスキューモードでは、ターゲットルートfs(ルートlvm論理ボリューム上のシェル)でシェルを開きました。
5) 'blkid'でこのターゲットルートパーティションのUUIDを取得します。書き留めるか、携帯電話で写真を撮ります。次のステップで必要になります。
6)EFIシステムパーティションをマウントし(「mount /boot/efi」)、grub.cfgファイルを編集します。vi /boot/efi/EFI/ubuntu/grub.cfgここで、誤ったUUIDをポイントで取得したものと置き換えます5.保存します。
7)2番目のディスクから起動できるようにするには、EFIパーティションをこの2番目のディスクにコピーします。ddif =/dev/sda1 of =/dev/sdb1(構成に合ったsdaまたはsdbを変更します)。
8)再起動します。 UEFI設定画面で、2つのEFIパーティションを起動可能に設定し、起動順序を設定します。
できました。いずれかのディスクをテストし、プラグを抜くと、動作するはずです!
私は1年以上前に自分でこれを行いましたが、問題はありましたが、ここに挙げた問題はありませんでした。私がその時に行ったアドバイスをどこで見つけたかわからないので、私がここでしたことを投稿します。
1)開始時に128MBのefiパーティションを作成します(そのうちの1つだけが/ boot/efiにマウントされます)
2)1 GB/boot RAID1アレイを作成し、LVMはなし
3)LVMを使用して大規模なRAID1アレイを作成する
/ bootを別のパーティション/ RAID1アレイに配置すると、efiパーティションが適切なものを見つけることができないという問題を解決できます。
そして、私が当時だったように、より詳細を探している人たちにとって、これはより正確に、私がセットアップを行った方法です:
6x 3TB Drives
Have 4 RAID arrays:
/dev/md0 = 1GB RAID1 across 3 drives
--> /boot (no LVM)
/dev/md1 = 500GB RAID1 across 3 drives
LVM:
--> / = 40GB
--> /var = 100GB
--> /home = 335GB
--> /tmp = 10GB
/dev/md2 = 500GB RAID1 across 3 drives (for VM's/linux containers)
LVM:
--> /lxc/container1 = 50GB
--> /lxc/container2 = 50GB
--> /lxc/container3 = 50GB
--> /lxc/container4 = 50GB
--> /lxc/extra = 300GB (for more LXC's later)
/dev/md3 = 10TB RAID6 across 6 drives (for media and such)
--> /mnt/raid6 (no LVM)
Disks are setup thus:
/sda => /boot/efi (128 MB) | /dev/md0 (1 GB) | /dev/md1 (500GB) | /dev/md3 (2.5TB)
/sdb => /boot/efi (128 MB) | /dev/md0 (1 GB) | /dev/md1 (500GB) | /dev/md3 (2.5TB)
/sdc => /boot/efi (128 MB) | /dev/md0 (1 GB) | /dev/md1 (500GB) | /dev/md3 (2.5TB)
/sdd => ----- left empty for simplicity ---- | /dev/md2 (500GB) | /dev/md3 (2.5TB)
/sde => ----- left empty for simplicity ---- | /dev/md2 (500GB) | /dev/md3 (2.5TB)
/sdf => ----- left empty for simplicity ---- | /dev/md2 (500GB) | /dev/md3 (2.5TB)
/ boot/efiの1つだけが実際にマウントされ、2つ目はクローンであることに注意してください。これは、RAID1の3つのディスクのいずれかが失われたときにマシンを起動できるようにしたかったためです。まだ完全な冗長性があれば、劣化モードで実行してもかまいません。これにより、マシンがまだ稼働している間にドライブを交換する時間ができます。
また、LXCコンテナと基本的にすべてのデータベースなどを配置するための2番目のRAID1アレイがなかった場合、/ varはもっと大きくなければなりませんでした。ただし、各LXCを独自の論理ボリュームとして使用することは、たとえば、制御不能なエラーログによって1つのVM/Webサイトが他のVM/Webサイトを混乱させないようにする素晴らしいソリューションでした...
最後に、12.04.01のUbuntu代替インストールUSB(12.04.02がリリースされる前)からインストールしましたが、すべてがうまく機能しました。頭を72時間叩いた後。
それが誰かを助けることを願っています!
2つのディスクとソフトウェアRAIDを備えた同じprom、efiブートがありました
/ dev/sda
/ dev/sdb
/ dev/md0(sda2&sdb2)のスワップ/ dev/md1(sda3&sdb3)のルート
Grub-rescueシェルに入る場合は、次を使用して起動します。
set root=(md/1)
linux /boot/vmlinuz-3.8.0-29-generic root=/dev/md1
initrd /boot/initrd.img-3.8.0-29-generic
boot
その後、このパッチファイルをダウンロードします- https://launchpadlibrarian.net/151342031/grub-install.diff ( https://bugs.launchpad.net/ubuntu/ + source/grub2/+ bug/1229738 )
cp /usr/sbi/grub-install /usr/sbi/grub-install.backup
patch /usr/sbin/grub-install patch
mount /dev/sda1 /boot/efi
grub-install /dev/sda1
umount /dev/sda1
mount /dev/sdb1 /boot/efi
grub-install /dev/sdb1
reboot