Gắn kết hệ thống không thành công. Trong đó = cài đặt không khớp với tên đơn vị


20

Nếu tôi sử dụng lệnh này:

mount -t xfs -o noatime,nodiratime,logbufs=8 -L d1 /srv/node/d1

Tất cả đều hoạt động chính xác. Nhưng nếu tôi cố gắng để gắn kết thông qua systemdgắn kết thì thất bại.

Tôi đã tạo một tệp /etc/systemd/system/mnt-d1.mountcó nội dung sau:

[Unit]
Description = Disk 1

[Mount]
What = LABEL=d1
Where = /srv/node/d1
Type = xfs
Options = noatime,nodiratime,logbufs=8

[Install]
WantedBy = multi-user.target

Sau đó tôi chạy các lệnh này:

systemctl daemon-reload
systemctl start mnt-d1.mount

Người cuối cùng chỉ cho tôi:

Failed to start mnt-d1.mount: Unit mnt-d1.mount failed to load: Invalid argument.  
See system logs and 'systemctl status mnt-d1.mount' for details.

systemctl status mnt-d1.mount cho tôi xem:

May 16 18:13:52 object1 systemd[1]: Cannot add dependency job for unit mnt-d1.mount, ignoring: Unit mnt-d1.mount failed to ...ectory.
May 16 18:24:05 object1 systemd[1]: mnt-d1.mount's Where= setting doesn't match unit name. Refusing.

Xin hãy giúp tôi gắn đĩa thông qua một systemdđơn vị gắn kết.


Vẫn không hoạt động .. Lỗi tương tự
Alexandr

Câu hỏi này nên được mở lại - Tôi đã có cùng một vấn đề và giải pháp được trình bày trong bình luận đã giúp tôi. Nhận xét nên được đưa ra một câu trả lời để tôi có thể nâng cao nó.
Guss

Câu trả lời:


26

Thông báo lỗi giải thích nguyên nhân:

Where= setting doesn't match unit name. Refusing.

mặc dù hiểu rằng tin nhắn yêu cầu đọc một số trang người đàn ông.
Mỗi systemd.mounttrang nam (nhấn mạnh của tôi):

Where=

Có một đường dẫn tuyệt đối của một thư mục của điểm gắn kết. Nếu điểm gắn kết không tồn tại tại thời điểm gắn kết, nó được tạo. Chuỗi này phải được phản ánh trong tên tệp đơn vị. (Xem ở trên.) Tùy chọn này là bắt buộc.

Phần "xem ở trên" là:

Các đơn vị gắn kết phải được đặt tên theo các thư mục điểm gắn kết mà chúng kiểm soát. Ví dụ: điểm gắn kết /home/lennartphải được cấu hình trong một tệp đơn vị home-lennart.mount. Để biết chi tiết về logic thoát được sử dụng để chuyển đổi đường dẫn hệ thống tệp thành tên đơn vị, xem systemd.unit(5).

OK, systemd.unittrang người đàn ông nói rằng:

Đường dẫn thoát đúng có thể được tạo bằng systemd-escape(1) lệnh.

chỉ vào systemd-escapetrang man giải thích cách thực hiện:

Để tạo đơn vị gắn kết cho một đường dẫn:

$ systemd-escape -p --suffix=mount "/tmp//waldi/foobar/"
tmp-waldi-foobar.mount

Vì vậy, trong trường hợp của bạn, /srv/node/d1dịch sangsrv-node-d1.mount


3
Điều quan trọng cần lưu ý là hệ thống "thoát đường dẫn" có thể hơi phức tạp ngay cả khi xử lý các tên không phải AZ. Ngay cả một số dấu gạch ngang trong đường dẫn sẽ cần phải được chuyển đổi sang lối \x2dthoát kiểu C , khi được sử dụng để tạo tệp đơn vị có thể (tùy thuộc vào trình bao / trình soạn thảo của bạn) cần phải thoát lại ký tự gạch chéo - vì vậy việc gắn tệp đơn vị /some-pathcó thể phù hợp yêu cầu chạyedit some\\x2dpath.mount
Guss

Tôi đã kết thúc ở đây để cố gắng tìm ra lý do tại sao tôi không thể gắn kết share-name. Đổi tên nó đã share_namegiải quyết vấn đề.
Brian Z

Tôi sẽ tăng gấp đôi nếu tôi có thể!
John Mee
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.