Systemd montajı başarısız. Where = ayar birim adıyla eşleşmiyor


20

Bu komutu kullanırsam:

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

hepsi doğru çalışıyor. Ancak montajdan geçmeye çalışırsam systemdbaşarısız olur.

/etc/systemd/system/mnt-d1.mountAşağıdaki içeriğe sahip bir dosya oluşturdum :

[Unit]
Description = Disk 1

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

[Install]
WantedBy = multi-user.target

Bundan sonra şu komutları çalıştırıyorum:

systemctl daemon-reload
systemctl start mnt-d1.mount

Sonuncusu bana gösterdi:

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 Bana gösterdi:

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.

Lütfen bir systemdmontaj birimi aracılığıyla bir diski monte etmeme yardım edin .


Hala çalışmıyor .. Aynı hata
Alexandr

Bu soru yeniden açılmalıdır - aynı problemi yaşadım ve yorumda sunulan çözüm bana yardımcı oldu. Yorum cevaplayabilmek için bir cevap verilmelidir.
Guss

Yanıtlar:


26

Hata mesajı bunun nedenini açıklar:

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

ancak bu mesajın anlaşılması için birden fazla kılavuzun okunması gerekir. Adam
başına systemd.mountsayfa (benimkini vurgula):

Where=

Bağlama noktasının bir dizininin mutlak yolunu alır. Montaj sırasında montaj noktası yoksa, oluşturulur. Bu dize birim dosya adına yansıtılmalıdır. (Yukarıya bakın.) Bu seçenek zorunludur.

"Yukarıya bakınız" kısmı:

Bağlama birimleri, denetledikleri bağlanma noktası dizinlerinden sonra adlandırılmalıdır. Örnek: bağlama noktası /home/lennartbir birim dosyasında yapılandırılmalıdır home-lennart.mount. Bir birim adına bir dosya sistemi yolunu dönüştürmek için kullanılan kaçan mantığı hakkında ayrıntılı bilgi için bkz systemd.unit(5).

Tamam, systemd.unitman sayfası şunu belirtir:

Düzgün kaçan yollar systemd-escape(1) komut kullanılarak oluşturulabilir .

nasıl yapılacağını açıklayan systemd-escapeman sayfasını işaret ederek :

Bir yol için montaj birimini oluşturmak için:

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

Yani, senin durumunda, /srv/node/d1karşı çevirirsrv-node-d1.mount


3
"Yoldan kaçan" sistemin AZ olmayan isimlerle bile biraz karmaşık olabileceğini unutmamak önemlidir. Yolunda Hatta bazı çizgiler C tarzı dönüştürülmesi gerekir \x2dyeniden eğik çizgi karakteri kurtulma ihtiyacı (Kabuk / editör bağlı olarak) may birim dosyası oluşturmak için kullanılan kaçış, - birim dosyası fit montaj böylece /some-pathmay koşu gerektiriredit some\\x2dpath.mount
Guss

Buraya neden bağlanamadığımı anlamaya çalıştım share-name. Yeniden adlandırmak share_namesorunu çözdü.
Brian Z

Yapabilirsem çifte oy verirdim!
John Mee
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.