Tôi có một thiết lập thiết bị mà tôi không biết cách lập mô hình chính xác với systemd:
thiết lập
Tôi có thiết lập sau:
---------
| gắn kết | /mnt/*
---------
| Một
4. số lượng /mnt/* | | 3. gắn kết /dev/data/* /mnt/*
v|
---------
| LVM | /dev/mapper/data-*, /dev/data/*
---------
| Một
5. vgchange -a n | | 2. tự động hoặc `vgchange -a y`
v|
---------
| LUKS | /dev/mapper/decr_device
---------
| Một
6. cryptsetup luksClose | | 1. cryptsetup luksOpen /dev/sdb decr_device ...
/dev/mapper/decr_device v |
---------
| ổ cứng | /dev/sdb
---------
Vì vậy, có một số giai đoạn của thiết bị (nhân tạo). Bước 1, 2 và 3 là cần thiết để gắn kết các phân vùng. Bước 4, 5 và 6 là cần thiết để mã hóa/luksĐóng ổ cứng lại.
Vấn đề
Tôi muốn thực hiện tất cả các bước trong systemd trên cơ sở từng bước (để mỗi bước trở thành một đơn vị riêng).
Systemd tự động thực hiện bước 1 và 6 ít hơn khi tôi cung cấp chính xác /etc/crypttab
. Nó cũng thực hiện đúng bước 3 và 4 khi tôi cung cấp đúng /etc/fstab
. Tuy nhiên, tôi không tìm thấy khả năng đưa bước 2 và 5 vào systemd.
Tôi đã thử:
systemctl add-requires dev-data-stuff.device systemd-cryptsetup@decr_device.service
lỗi nào với:
Không thể thêm phần phụ thuộc: Tệp đơn vị dev-data-stuff.device không tồn tại.
Tôi đã cân nhắc (hơn) viết dev-data-stuff.device bằng một số tập lệnh thủ công gọi vgchange -a ...
khi bắt đầu hoặc thoát nhưng không tìm thấy bất kỳ tài liệu nào để làm điều đó với tệp "thiết bị". Bạn có biết một cách?
Sự thật thú vị: Hệ thống đã tự động gắn kết cái này. Tôi đoán, bởi vì systemd giải mã decr_device
, LVM sau đó sẽ tự động tạo /dev/dữ liệu/*
, kích hoạt tập lệnh gắn kết với sự trợ giúp của udev. Tuy nhiên, tôi muốn có toàn bộ chuỗi phụ thuộc được mô hình hóa trong systemd để có thể thực hiện chúng bằng tay. Hiện tại, có cách (ngoại trừ thủ công) để tháo rời toàn bộ nội dung, tức là thực hiện các bước 4-6.