Làm cách nào để cài đặt GRUB chính xác trên RAID mềm 1?


21

Trong thiết lập của tôi, tôi có hai đĩa được định dạng theo cách sau:

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

Các phân vùng khởi động được ánh xạ trong / dev / md0, rootfs trong / dev / md1. md0 được định dạng với ext2, md1 với XFS. (Tôi hiểu rằng định dạng phải được thực hiện trên các thiết bị md chứ không phải trên sd - vui lòng cho tôi biết nếu điều này sai).

Làm cách nào để thiết lập GRUB chính xác để nếu một ổ đĩa bị lỗi, ổ đĩa kia vẫn khởi động? Và bằng cách mở rộng, một ổ đĩa thay thế cũng sẽ tự động bao gồm GRUB? Nếu điều này thậm chí có thể, tất nhiên.

Câu trả lời:


16

Nếu hai đĩa là /dev/sda/dev/sdb, chạy cả hai grub-install /dev/sdagrub-install /dev/sdb. Sau đó cả hai ổ đĩa sẽ có thể khởi động một mình.

Đảm bảo rằng cấu hình Grub của bạn không giống như các đĩa mã cứng (hd0), mà thay vào đó tìm kiếm các UUID của hệ thống tập tin khởi động và hệ thống gốc.

Tôi không biết hỗ trợ trong Grub để khai báo hai đĩa nằm trong mảng RAID-1 để nó grub-installtự động ghi vào cả hai. Điều này có nghĩa là bạn sẽ cần chạy grub-installlại nếu bạn thay thế một đĩa; đó là một điều nữa để làm ngoài việc thêm thành viên mới vào mảng RAID.


1
"Hãy chắc chắn rằng cấu hình Grub của bạn không có các đĩa mã cứng như (hd0), mà thay vào đó tìm kiếm các UUID của hệ thống tập tin khởi động và hệ thống gốc." Làm sao?
Lifeofguenter

1
@lifeofguenter Vớisearch
Gilles 'SO- ngừng trở thành ác quỷ'


1
Trên một số hệ thống, nó grub2-installthay vì grub-install.
ndemou

1
Lưu ý rằng RAID ở cấp phân vùng, không phải cấp đĩa; nếu có, sẽ không có vấn đề gì, vì sự phản chiếu cũng sẽ phản chiếu MBR.
Marcos Dione

3

Tôi đã làm điều này trên một vài máy chủ trong thời gian qua và đôi khi gặp sự cố, thông thường những gì tôi làm là chạy như sau

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

Các sự cố tôi gặp phải thường được hiển thị với các thông báo lỗi như

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

Để giải quyết điều này tôi đã chạy

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

và điều này dường như đã giải quyết được vấn đề - như một thử nghiệm trong một số trường hợp tôi đã gỡ bỏ /sdv/sdavà chỉ sử dụng /dev/sdbđể khởi động nhưng điều này không lý tưởng và rất có thể là không thể trong hầu hết các môi trường sản xuất!


0

Kinh nghiệm của tôi khi cài đặt CentOS 5 và CentOS 6 là trong giai đoạn cài đặt, tôi đã cấu hình RAID-1 tại thời điểm đó - việc cài đặt cho bạn lựa chọn để thực hiện việc này. Những gì đã xảy ra như sau: 1. Được xác định / dev / sda1 là 1 GB dưới dạng phân vùng RAID 2. Được xác định / dev / sdb1 là 1 GB dưới dạng phân vùng RAID 3. Tạo thiết bị RAID / dev / md0 được tạo thành từ / dev / sda1 và / dev / sdb1 4. Tạo phân vùng / boot bằng / dev / md0 5. Tạo các phân vùng bổ sung bằng các bước 1 - 3. 6. Đã triển khai LVM trên các phân vùng được tạo ở bước 5 theo hướng dẫn.

Sau khi khởi động hệ thống ban đầu, trong grub.conf tôi đã thay đổi mục nhập / dev / sda1 thành / dev / md0. Sau đó, tôi đã sao chép mục nhập dòng giật gân có (hd0,0) và thêm # ở đầu và thay đổi (hd0,0) thành (hd1,0). Nhìn vào các câu trả lời ở trên cho thấy cách cài đặt grub vào / dev / sdb theo chúng. Sửa đổi fstab để điểm gắn kết khởi động sử dụng / dev / md0 (bằng cách này, khi bạn cập nhật yum, có một cái gì đó được cập nhật trên phân vùng / boot, nó sẽ được ghi vào cả / dev / sda1 và / dev / sdb1 ). Nếu bạn gặp lỗi ổ cứng / dev / sda, bạn sẽ phải khởi động bằng cách sử dụng cứu hộ và nhận xét dòng (hd0,0) và bỏ ghi chú dòng (hd1,0). Hệ thống của bạn phải có khả năng khởi động

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.