Bạn có thể thay đổi phiên bản siêu dữ liệu trên một mảng hiện có không?


21

Vì vậy, grub yêu cầu siêu dữ liệu phiên bản 0.90 Tôi tự hỏi liệu tôi có thể thay đổi các mảng hiện có của mình để sử dụng thay vì mặc định là 1.2 không. Bằng cách đó tôi không phải cài đặt lại. Nếu có, làm thế nào tôi có thể làm điều đó?

Câu trả lời:


5

Các GRUB wiki khẳng định:

Ngoài ra, (kể từ 1.96 + 20080724) GRUB chỉ có thể khởi động từ RAID sử dụng siêu khối siêu dữ liệu Phiên bản 0.90 (tức là được tạo bằng tùy chọn --metadata = 0.90 cho mdadm).

Thật kỳ lạ, trang người đàn ông cho mdadm nói

-e, --metadata =

Khai báo kiểu siêu khối (siêu dữ liệu đột kích) sẽ được sử dụng. Mặc định là 0,90 cho - tạo và để đoán cho các hoạt động khác.

Tôi sẽ kiểm tra mdadm -Q -D <device>lại để chắc chắn.

Sau đó, bạn đang chạy ở cấp độ RAID nào? Kịch bản tốt nhất tôi có thể nghĩ ra cho một chiếc gương (RAID 1) sẽ là

  1. Sao lưu dự phòng
  2. Ngắt mảng 0
  3. Xóa thiết bị A khỏi mảng 0 của nthiết bị
  4. Không siêu chặn trên thiết bị A
  5. Tạo mảng 1 bằng thiết bị A và n-1phụ tùng, rõ ràng sử dụng định dạng siêu khối cũ
  6. Lặp lại cho B còn lại thông qua n-1các thiết bị
  7. (Tùy chọn) đánh số lại mảng

... nhưng rất chắc chắn kiểm tra rằng bạn hoàn toàn cần phải trải qua điều này!


Vì vậy, tôi đã xác nhận rằng một thời gian dài trước đây. Tôi đang chạy raid10, f2. rõ ràng tái tạo lại mảng là điều tôi đang cố tránh.
xenoterracide

Bạn đã thử linux-raid at vger.kernel.orgdanh sách gửi thư?
Andrew

kỳ lạ là tôi đã không nhận được thông báo về điều này. không tôi đã không thử. Tôi chỉ cần lau nó và tạo lại mảng. Tôi sẽ chấp nhận câu trả lời này với giải pháp ngắn gọn là KHÔNG hoặc có lẽ (rất khó hiểu)
xenoterracide

16

Thông tin này có lẽ đã quá muộn để giúp OP, nhưng có lẽ nó sẽ giúp người khác.

Lệnh đầu tiên xóa sạch các siêu khối và lệnh thứ hai tạo ra một mảng mới nhưng giả sử các thiết bị sạch sẽ. Tôi vừa mới thực hiện điều này và mọi thứ dường như đều ổn. Tôi chắc chắn sẽ đề nghị một bản sao lưu trước khi làm điều này. Tôi không có dữ liệu để mất và do đó không có tính toàn vẹn để kiểm tra. Tôi chỉ muốn tránh 4 giờ đồng hồ lại.

$ mdadm --zero-superblock /dev/sd[a-z]1
$ mdadm --create /dev/md0 --assume-clean \
    --level=10 --raid-devices=10 /dev/sd[a-z]1 --metadata=0.90

1
có lẽ đã quá muộn cho OP nhưng bạn đã cứu tôi, cảm ơn vì câu trả lời của bạn
neofutur

7

Tạo một mảng với siêu dữ liệu giả định và không nhất quán như được đề xuất ở trên chắc chắn có khả năng làm hỏng dữ liệu hiện tại, vì các khối siêu dữ liệu 0,90 và 1,2 không chỉ khác nhau về kích thước mà còn về vị trí.

nó có thể hoạt động với 0,90 <-> 1.0, đây là một ngoại lệ.

https://ston.wiki.kernel.org/index.php/RAID_superblock_formats

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.