Boy, đây là như vậy. a. không đáng kể. câu hỏi, nhưng chưa ai có thể trả lời đúng.Làm thế nào để bạn trao đổi/dev/sda với/dev/sdb?
Làm thế nào để bạn trao đổi/dev/sda với/dev/sdb?
Ai đó có thể đề xuất sử dụng nhãn vĩnh viễn (ví dụ:/dev/disk/by- *), nhưng bất chấp ý định tốt nhất, điều này không KHÔNG trả lời câu hỏi. Có, labellings vĩnh viễn hoạt động ở nơi bạn có thể sử dụng chúng, nhưng nếu một chương trình được hardcoded để sử dụng ví dụ./dev/sda, câu hỏi này vẫn tồn tại.
Để minh họa cho vấn đề thêm từ những gì tôi tìm thấy trên internet: http://ubuntuforums.org/showthread.php?t=1569238&page=2 (Nhắc tôi 'Schadenfreude')
chap này dường như đã tìm thấy các giải pháp, chỉ cần không chia sẻ nó (boo!) : http://ubuntuforums.org/showthread.php?t=944515
Và tbh, tôi có nguy cơ tương tự tiềm ẩn. Tôi sử dụng CloneZilla, và nếu một chương trình hỏi: Would you like to backup /dev/sda to /dev/sdb or /dev/sdb to /dev/sda ?
, đoán làm thế nào thần kinh tôi nhận biết rằng linux dường như ngẫu nhiên gán các đơn đặt hàng đĩa. Tôi chưa ghi đè dữ liệu của mình bằng bản sao lưu của riêng mình, nhưng điều này chỉ đang chờ xảy ra.
Điều gì trong Linux gán/dev/sd * vào đĩa và bạn ảnh hưởng như thế nào đến quá trình này? Điều này có liên quan đến udev (/ etc/udev /, udevadm) không? Hệ điều hành của tôi là CentOS, nhưng tôi cần biết điều này cũng cho Ubuntu và CloneZilla (http://clonezilla.org), và vấn đề này xảy ra trên tất cả các hệ thống, vì vậy tôi đoán rằng vấn đề này không liên quan đến phân phối, mà là , hoặc một cái gì đó rất gần với hạt nhân. Hãy giúp tôi!
------------------ EDIT: 25 August 2013 Sau khi thông báo cho liên kết mà ypnos đưa ra, tôi đã đọc tất cả, thử một lệnh và hạt nhân chỉ 'vommitted' udev quy tắc trên tất cả các màn hình của tôi. Sau đó được nhắc nhập mật khẩu gốc để cho phép bảo trì hoặc thoát để khởi động lại. Đây là bằng chứng cho thấy công cụ này thực sự không dành cho người mới làm quen.
Tôi cũng tìm kiếm thêm một chút. Tôi không hiểu làm thế nào hoặc khi hạt nhân Linux tải, nhưng một số tin nhắn trên internet chỉ ra rằng BIOS (!! tin hay không) là đi qua danh sách các đĩa khởi động xuống để grub, mà sau đó sử dụng file device.map chỉ định thiết bị nào có grub (hd *, ). Lưu ý rằng/dev/sd đã được xác định ở giai đoạn này, vì bạn có thể sử dụng liên kết cố định dev vĩnh viễn. Các bản đồ thiết bị này dường như bằng cách nào đó chuyển sang hệ thống tệp gốc thực tế. Vì vậy, đây là một điều bootloader bây giờ?
Quay trở lại udev như một giải pháp tiềm năng, tôi đã tìm thấy một báo cáo lỗi trên google http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=578826, dẫn đến một giải pháp mà nó được DISadviced thay đổi NAME udev (cuối cùng sẽ trở thành/dev/sd * như chúng ta biết).
Đối với các trang MAN udev gợi ý:
| The following keys can get values assigned:
|
| NAME
| The name of the node to be created, or the name the network
| interface should be renamed to.
NOTE: changing the kernel-provided name of device nodes
(except for network devices) is not supported and can result
in unexpected behavior.
Today, the kernel defines the device nodes names, and udev
is expected to only manage the node's permissions and
additional symlinks.
... Nhưng tôi đã đi ra ngoài để làm điều đó anyway theo một cách hơi thay đổi.
# vi /etc/udev/rules.d/00-corrections.rules
KERNEL=="sd?", ATTRS{model}=="SAMSUNG SP0411N", NAME="sda"
KERNEL=="sd??", ATTRS{model}=="SAMSUNG SP0411N", NAME="sda%n"
KERNEL=="sda", ATTRS{model}!="SAMSUNG SP0411N", NAME="sdb"
KERNEL=="sda?", ATTRS{model}!="SAMSUNG SP0411N", NAME="sdb%n"
Về cơ bản, những gì nó làm là "Nếu mô hình là samsung, gán nó TÊN sda *. Nếu mô hình không phải là Samsung, nhưng đã được chỉ định sda *, gán nó TÊN sdb *." Quy tắc này được đặt trước tất cả các quy tắc khác càng nhiều càng tốt.Lưu ý rằng tôi không chắc chắn về điều này, bởi vì dường như có một số tập tin quy tắc 'vô hình', và mặc dù bạn đã đổi tên các thiết bị, hạt nhân ở đâu đó trong 'kernel-loaded-memory', vẫn có thể có tham chiếu sai. Đây có thể là điều hiển nhiên khi bạn nhìn vào các tập tin /var/log/boot.log, nơi mà trong trường hợp của tôi, ban đầu nó nói:
%G Welcome to [0;36mCentOS[0;39m
Starting udev: %G[60G[[0;32m OK [0;39m]Setting hostname UncleFloServer: [60G[[0;32m OK [0;39m]ERROR: asr: seeking device "/dev/sda" to 5999998795264
ERROR: ddf1: seeking device "/dev/sda" to 5999998795264
ERROR: ddf1: seeking device "/dev/sda" to 5999998664192
ERROR: hpt45x: seeking device "/dev/sda" to 5999998790144
ERROR: isw: seeking device "/dev/sda" to 5999998794752
ERROR: jmicron: seeking device "/dev/sda" to 5999998795264
ERROR: lsi: seeking device "/dev/sda" to 5999998795264
ERROR: nvidia: seeking device "/dev/sda" to 5999998794752
ERROR: pdc: seeking device "/dev/sda" to 137438913024
ERROR: pdc: seeking device "/dev/sda" to 137438920192
ERROR: pdc: seeking device "/dev/sda" to 137438927360
ERROR: pdc: seeking device "/dev/sda" to 137438934528
ERROR: sil: seeking device "/dev/sda" to 5999998795264
ERROR: via: seeking device "/dev/sda" to 5999998795264
Setting up Logical Volume Management: No volume groups found
[60G[[0;32m OK [0;39m]Checking filesystems
_CentOS-6.4-x86_: clean, 85517/655360 files, 662649/2621440 blocks
/dev/sda1: clean, 56/65536 files, 33367/262144 blocks
[60G[[0;32m OK [0;39m]Remounting root filesystem in read-write mode: [60G[[0;32m OK [0;39m]Mounting local filesystems: [60G[[0;32m OK [0;39m]Enabling local filesystem quotas: [60G[[0;32m OK [0;39m]Enabling /etc/fstab swaps: [60G[[0;32m OK [0;39m]
Ở đây, thiết bị Samsung của tôi là 40GB (mà tôi muốn như/dev/sda), và Areca Raid lớn của tôi là 6TB (mà tôi muốn là/dev/sdb).
Một số câu hỏi còn lại vẫn
làm các lỗi có ý nghĩa gì?
Các lỗi này là nguyên nhân của hạt nhân hay nguyên nhân của tệp quy tắc vẫn chạy trước số sửa lỗi 00 của tôi từ udev?
Những lỗi này có biểu thị sự cố đe doạ dữ liệu không? Phân vùng Areca không có vấn đề gì với một trong các thư mục của tôi trong fstab.
Có phương pháp gán thiết bị sớm hơn, tốt hơn không?
Thực ra, điều này nghe rất gần với những gì tôi cần. Nhưng làm thế nào để sử dụng nó? http://en.wikipedia.org/wiki/Udev –
Xin lỗi, tôi quên đề cập đến: Bản sửa lỗi cuối cùng được sửa đổi là 00-corrections.rules từ Chỉnh sửa của tôi từ ngày 25 tháng 8 dường như hoạt động, ngoài các lỗi đã đề cập. –
Thay vì cố gắng lấy tên thiết bị ổn định bằng udev, thường dễ sử dụng nhãn hoặc ID để gắn hệ thống tập tin thay vì tên thiết bị. (Hoặc sử dụng khối lượng lvm cũng có đặt tên tĩnh). – eckes