Bagaimana cara menginstal GRUB dengan benar pada soft RAID 1?

21

Dalam pengaturan saya, saya memiliki dua disk yang masing-masing diformat dengan cara berikut:

(GPT)
1)  1MB   BIOS_BOOT
2)  300MB LINUX_RAID   
3)  *     LINUX_RAID   

Partisi boot dipetakan di / dev / md0, rootfs di / dev / md1. md0 diformat dengan ext2, md1 dengan XFS. (Saya mengerti bahwa pemformatan harus dilakukan pada perangkat md dan bukan pada sd - tolong beri tahu saya jika ini salah).

Bagaimana saya men-setup GRUB dengan benar sehingga jika satu drive gagal, yang lain masih bisa boot? Dan selanjutnya, drive pengganti itu akan secara otomatis menyertakan GRUB juga? Jika ini bahkan mungkin, tentu saja.

vic
sumber

Jawaban:

16

Jika kedua disk tersebut adalah /dev/sdadan /dev/sdb, jalankan keduanya grub-install /dev/sdadan grub-install /dev/sdb. Maka kedua drive akan dapat melakukan booting sendiri.

Pastikan bahwa konfigurasi Grub Anda tidak seperti disk hard-code (hd0), tetapi mencari UUID boot dan root filesystem.

Saya tidak mengetahui adanya dukungan di Grub untuk mendeklarasikan dua disk sebagai dalam array RAID-1 sehingga grub-installsecara otomatis akan menulis ke keduanya. Ini berarti Anda harus menjalankan grub-installlagi jika Anda mengganti satu disk; itu satu hal lagi yang harus dilakukan selain menambahkan anggota baru ke array RAID.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
1
"Pastikan bahwa konfigurasi Grub Anda tidak seperti hard-code disk (hd0), tetapi mencari UUID boot dan root filesystem sistem." Bagaimana?
lifeofguenter
1
@lifeofguenter Withsearch
Gilles 'SO- stop being evil'
1
gnu.org/software/grub/manual/grub/grub.html#GNU_002fLinux atau lihat file distribusi Anda
Gilles 'SO- stop being evil'
1
Pada beberapa sistem, itu grub2-installbukan grub-install.
ndemou
1
Perhatikan bahwa RAID berada pada level partisi, bukan level disk; jika ya, tidak akan ada masalah, karena mirroring juga akan mencerminkan MBR.
Marcos Dione
3

Saya telah melakukan ini pada beberapa server selama beberapa waktu lalu dan menemukan masalah kadang-kadang, biasanya yang saya lakukan adalah menjalankan yang berikut

sudo grub-install /dev/sdb
sudo update-grub /dev/sdb

Masalah yang saya alami biasanya ditampilkan dengan pesan kesalahan seperti

update-grub … update-grub failed with no such disk …

Untuk mengatasi ini saya sudah menjalankan

sudo mv /boot/grub/device.map /boot/grub/device.map.old 
sudo update-grub 

dan ini tampaknya telah menyelesaikan masalah - sebagai ujian dalam beberapa kasus saya telah menghapus /sdv/sdadan hanya digunakan /dev/sdbuntuk boot dari tetapi ini tidak ideal dan kemungkinan besar tidak mungkin di sebagian besar lingkungan produksi!

Tony Doyle
sumber
0

Pengalaman saya menginstal CentOS 5 dan CentOS 6 adalah bahwa selama fase instalasi saya mengkonfigurasi RAID-1 pada saat itu - instalasi memang memberi Anda pilihan untuk melakukan ini. Apa yang terjadi adalah sebagai berikut: 1. Ditetapkan / dev / sda1 sebagai 1 GB sebagai partisi RAID 2. Ditetapkan / dev / sdb1 sebagai 1 GB sebagai partisi RAID 3. Dibuat perangkat RAID / dev / md0 terdiri dari / dev / sda1 dan / dev / sdb1 4. Membuat partisi / boot menggunakan / dev / md0 5. Membuat partisi tambahan menggunakan langkah 1 - 3. 6. Menerapkan LVM pada partisi yang dibuat pada langkah 5 dengan mengikuti instruksi.

Setelah boot sistem awal, di grub.conf saya mengubah entri / dev / sda1 ke / dev / md0. Saya kemudian menyalin entri baris splashimage has (hd0,0) dan menambahkan # di awal dan mengubah (hd0,0) menjadi (hd1,0). Melihat jawaban di atas yang menunjukkan cara menginstal grub ke / dev / sdb ikuti mereka. Ubah fstab sehingga titik mount boot menggunakan / dev / md0 (dengan melakukan ini, ketika Anda melakukan pembaruan yum a ada sesuatu yang diperbarui pada partisi / boot, ia akan ditulis ke / dev / sda1 dan / dev / sdb1 ). Jika Anda mengalami kegagalan hard drive / dev / sda, Anda harus mem-boot menggunakan penyelamatan dan mengomentari baris (hd0,0) dan menghapus tanda komentar pada baris (hd1,0). Sistem Anda harus dapat di-boot

Gene Poole
sumber