ฉันมีการตั้งค่าอุปกรณ์ที่ฉันไม่ทราบวิธีสร้างแบบจำลองอย่างถูกต้องด้วย systemd:
การตั้งค่า
ฉันมีการตั้งค่าต่อไปนี้:
---------
| เมานต์ | /mnt/*
---------
| ก
4. umount /mnt/* | | 3. เมานต์ /dev/data/* /mnt/*
วี |
---------
| LVM | /dev/mapper/data-*, /dev/data/*
---------
| ก
5. vgchange -a n | | 2. อัตโนมัติหรือ `vgchange -a y`
วี |
---------
| ลูก | /dev/mapper/decr_device
---------
| ก
6. cryptsetup luksปิด | | 1. cryptsetup luksOpen /dev/sdb decr_device ...
/dev/mapper/decr_device v |
---------
| ฮาร์ดดิสก์ | /dev/sdb
---------
ดังนั้นจึงมีอุปกรณ์ (เทียม) หลายขั้นตอน ขั้นตอนที่ 1, 2 และ 3 จำเป็นต้องติดตั้งพาร์ติชัน ขั้นตอนที่ 4, 5 และ 6 จำเป็นต้องเข้ารหัส/ปิด HDD อีกครั้ง
ปัญหา
ฉันต้องการดำเนินการทุกขั้นตอนภายใน systemd บนฐานต่อขั้นตอน (ดังนั้นทุกขั้นตอนจึงกลายเป็นหน่วยของตัวเอง)
Systemd ทำขั้นตอนที่ 1 และ 6 น้อยลงโดยอัตโนมัติเมื่อฉันระบุข้อมูลที่ถูกต้อง /etc/crypttab
. นอกจากนี้ยังดำเนินการขั้นตอนที่ 3 และ 4 อย่างถูกต้องเมื่อฉันระบุข้อมูลที่ถูกต้อง /etc/fstab
. อย่างไรก็ตาม ฉันไม่พบความเป็นไปได้ที่จะนำขั้นตอนที่ 2 และ 5 เข้าสู่ systemd
ฉันเหนื่อย:
systemctl เพิ่มต้องการ dev-data-stuff.device systemd-cryptsetup@decr_device.service
ซึ่งเกิดข้อผิดพลาดกับ:
ไม่สามารถเพิ่มการพึ่งพา: ไม่มีไฟล์หน่วย dev-data-stuff.device
ฉันคิดว่าจะ (มากกว่า) เขียน dev-data-stuff.device ด้วยสคริปต์แบบแมนนวลที่เรียกใช้ vgchange -a ...
เมื่อเริ่มต้นหรือออก แต่ไม่พบเอกสารใด ๆ ที่จะทำเช่นนั้นกับไฟล์ "อุปกรณ์" คุณรู้วิธีหรือไม่?
เรื่องน่ารู้: ระบบติดตั้งสิ่งนี้โดยอัตโนมัติแล้ว ฉันเดาว่าเพราะ systemd ถอดรหัส decr_device
จากนั้น LVM จะสร้างโดยอัตโนมัติ /dev/data/*
ซึ่งทริกเกอร์สคริปต์เมานต์ด้วยความช่วยเหลือของ udev อย่างไรก็ตาม ฉันต้องการสร้างแบบจำลองห่วงโซ่การพึ่งพาใน systemd ทั้งหมดเพื่อให้สามารถดำเนินการด้วยมือได้เช่นกัน ปัจจุบัน มีวิธี (ยกเว้นด้วยตนเอง) ในการแยกชิ้นส่วนทั้งหมด เช่น ดำเนินการตามขั้นตอนที่ 4-6