Cách thay đổi tên của thiết bị MD (mdadm)


25

Đây là đầu ra từ mdadm -Esv :

ARRAY / dev / md127 level = raid0 num-thiết bị = 2 UUID = d89d9d45: 9a420812: c44c77eb: 7ee19756 thiết bị = / dev / sdb8, / dev / sda8

Đây là một mảng v0.90. Câu hỏi như sau: làm thế nào mdadm gán tên cho một thiết bị theo, nó lưu nó ở đâu và làm thế nào để thay đổi nó?

Những gì tôi muốn thực hiện là đổi tên md127 thành một cái gì đó khác với sở thích của tôi.

Câu trả lời:


31

Cảnh báo : Vui lòng tạo bản sao lưu trước khi làm theo bất kỳ lời khuyên nào được đưa ra ở đây :-)

Lựa chọn 1:

Chỉnh sửa /etc/mdadm.conf:

ARRAY / dev / md1 level = raid0 num-thiết bị = 2 UUID = d89d9d45: 9a420812: c44c77eb: 7ee19756 thiết bị = / dev / sdb8, / dev / sda8

Tôi vừa nhập đầu ra của riêng bạn và thay đổi 127 thành 1. Khởi động lại và bây giờ sẽ là md1.

Lựa chọn 2:

Nếu bạn không có mdadm.conf, và muốn nó để lắp ráp để md1 automagically , bạn có thể làm điều này:

mdadm có một khái niệm về "trẻ vị thành niên ưa thích". Ví dụ: một khi một số nhỏ nhất định được gán cho một mảng và được lưu trữ trong siêu khối, nó sẽ được sử dụng mỗi khi mảng này được tự động lắp ráp. Xác nhận điều này:

mdadm - chi tiết / dev / md127

Nếu nó nói "Ưu tiên nhỏ: 127" thì đây là vấn đề của bạn. Bạn cần cập nhật các ưu tiên nhỏ. Làm như thế nào:

Bạn không thể thay đổi thứ yếu ưa thích. Bạn cần khởi động vào recovery hoặc chế độ người dùng nếu đây là thiết bị gốc của bạn, ngắt kết nối hệ thống tập tin, sau đó:

mdadm --stop / dev / md127
mdadm --assemble --update = siêu nhỏ / dev / md1 / dev / sdb8 / dev / sda8

Sau đó, bạn sẽ có md127 của bạn được lắp ráp là md1. Và nó cũng nên giữ cách này trong tương lai.

Với mảng 1.x:

Các mảng mới hơn không lưu trữ số 'Ưu tiên nhỏ' và không hỗ trợ "--update = siêu nhỏ". Thay vào đó, họ lưu trữ một tên có thể được thay đổi bằng:

mdadm --stop / dev / md127
mdadm --assemble --update = name --name = 2 / dev / md1 / dev / sdb8 / dev / sda8

Hoặc bạn có thể chỉ định 'tên máy chủ: 2' để giữ mọi thứ phù hợp với các mảng khác (tra cứu tên hiện tại bằng --detail).


rất tốt! Chỉ cần những gì tôi đang tìm kiếm. Vì vậy, mẹo là cũng cập nhật siêu nhỏ .. cảm ơn bạn!
Xx

Bạn là người cứu rỗi! Tôi đã sử dụng điều này để unbrick một thiết bị WD NAS sử dụng md.
Vlad

Giải pháp này đúng về mặt lý thuyết, nhưng rất khó để tôi thực hiện cho tôi trên hệ thống sống. Ngoài ra lựa chọn số 1 không làm việc cho tôi. Tôi đi với superuser.com/questions/287462/...
Gorn

+1 cho phần cuối cùng của giải pháp rất hữu ích khi di chuyển mảng đột kích từ máy này sang máy khác. 'tên máy chủ: 2' và thay đổi md127 thành md1 chính xác là những gì tôi cần để giữ cho tên nhất quán
yahol

13

Chỉ để thêm vào câu trả lời tuyệt vời của haimg. Có thể xảy ra là ngay cả với mdadm.conf, hệ thống (ít nhất là cho Ubuntu) vẫn có thể tự động lắp ráp các mảng trước khi đọc mdadm.conf. Vì vậy, khi tìm thấy nó, nó chỉ bỏ qua các mảng vừa được lắp ráp.

Để giải thích cho điều đó, hãy chạy sudo update-initramfs -uđể tạo lại initrd thích hợp.

Các liên kết có liên quan: http://ubuntuforums.org/showthread.php?t=1764861%29%3a


2
Điều này đã khắc phục sự cố cho tôi (sau khi khởi động lại khác) trên Ubuntu 16.04. Trong trường hợp của tôi, đó là vì tôi đã tạo lại mảng và nó có UUID mới. Sau khi cập nhật nó mdadm.conf, khởi động lại một mình là không đủ; cập nhật các initramfs đã lừa
nh2

3

Không có câu trả lời nào khác làm việc cho tôi nhưng trong Centos tôi đã sử dụng hướng dẫn sau. Vấn đề là /etc/mdadm.conf không thực sự được sử dụng khi khởi động và chỉ được cập nhật khi kernel mới được cài đặt hoặc initramfs được tạo lại thủ công. Vì vậy, về cơ bản bạn chỉ cần:

dracut --force

nguồn: http://realtechtalk.com/mdadm_change_wrong_device_name_md127_fix_and_solution_in_Linux-1783-articles


2

Các siêu khóa phiên bản 0.9 không có tên, chúng được giới thiệu trong phiên bản 1. /dev/md127không phải là tên của mảng, đó là tên của tệp thiết bị của mảng, là hậu quả trực tiếp của số phụ của thiết bị khối đột kích. Số phụ này được chọn khá tùy tiện khi mảng được lắp ráp.

UUID cung cấp một mã định danh duy nhất cho mảng, nếu bạn cần. Nếu bạn thích một tên có thể đọc được hoặc có cấu trúc của con người, hãy đặt một khối lượng vật lý LVM trong mảng.


Tôi nhận thức được khả năng của --homehost từ phiên bản mới hơn, đó là lý do tại sao tôi cố tình tuyên bố rằng đây là mảng siêu dữ liệu v0.90. Tuy nhiên, đó không phải là ý định của tôi và cũng không tương thích. Nhìn qua các bài đăng của tôi, tôi cũng phần nào không thể nhận ra nơi tôi đã đề cập rằng / dev / md127tên của mảng . Tôi nghĩ rằng tôi đã cung cấp các chi tiết chính xác về những gì tôi muốn làm. Vì vậy, câu hỏi vẫn còn, làm thế nào để tôi thay đổi nó và "số phụ" này được lưu trữ ở đâu? Tôi đoán nó là một phần của siêu khối? Nó sẽ phá hỏng tổng kiểm tra superblocks, khi chỉnh sửa hex?
Xx

@XXL Số đó không được lưu trữ ở bất cứ đâu, nó được chọn khá tùy tiện khi mảng được lắp ráp.
Gilles 'SO- ngừng trở nên xấu xa'

hmm .. tôi không hiểu Vậy thì tại sao tôi luôn nhận được / dev / md127 khi tôi mdadm -Esv ? Tôi không nên nhận một cái gì đó khác, đó là ngẫu nhiên, ngoài tên tĩnh? Đó là nếu nó thực sự "tùy tiện" ..
Xx
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.