กฎไดรฟ์ซีดี / ดีวีดี: เมานต์ไดรฟ์เมื่อใส่ลงใน "/ media / DVD"
ทำสิ่งนี้หากคุณต้องการคืนค่าการติดตั้งอัตโนมัติด้วยการควบคุมการทำงานบางอย่าง
- สร้างจุดเมานท์อัตโนมัติเมื่อแทรกสื่อ
- เมาท์สื่ออัตโนมัติไปยังจุดเมานท์ที่มีสิทธิ์เฉพาะ
- ลบจุดเมานท์โดยอัตโนมัติเมื่อทำการลบขนาดกลาง
การดำเนินการ: ถาด CD / DVD มีสื่อและดึงเข้ามา
คุณต้องบอกให้ระบบของคุณตอบสนองการกระทำนี้ คุณสามารถให้มันรันสคริปต์ mount (สคริปต์ที่กำหนดเอง) ในการทำเช่นนี้คุณต้องสร้างกฎใหม่ในlib/udev/rules.d
โฟลเดอร์ คำสั่งเหล่านี้จำเป็นต้องรันในฐานะรูท (ใช้คำนำหน้าsudo
สำหรับคำสั่งต่อไปนี้เพื่อรันเป็นรูทหรือเป็นผู้ใช้รูทด้วยsudo -s
- สร้างไฟล์ใหม่และเรียกมันว่า autodvd.rules
touch /lib/udev/rules.d
- ค้นหาข้อมูลเกี่ยวกับไดรฟ์ CD / DVD ของคุณโดยการเรียกใช้
udevadm info --query=all --attribute-walk --name=/dev/sr0
(ไม่จำเป็นต้องใช้ที่นี่ แต่ทำงานได้ทั้งสองวิธี) ค้นหาสิ่งที่ระบุไดรฟ์ของคุณโดยเฉพาะ (สำหรับดีขึ้นหรือแย่ลงที่ฉันเลือกATTRS{vendor}=="HL-DT-ST"
ซึ่งเป็นไดรฟ์ของฉัน เกิดขึ้นกับไดรฟ์ตัวเดียวกันกับฉัน) คัดลอกมันไว้ที่ไหนสักแห่งในภายหลังคุณสามารถใช้เวลาในการตรวจสอบไฟล์นี้และเปรียบเทียบกับตัวอย่างกฎด้านล่าง SUBSYSTEM และ ATTRS สามารถพบได้ในนั้น
- แก้ไขกฎใหม่ของคุณ (คุณสามารถใช้โปรแกรมแก้ไขใดก็ได้ที่คุณเลือกใช้
vim /lib/udev/rules.d
แต่ใช้nano /lib/udev/rules.d
งานได้และทำได้ง่ายเพิ่มสิ่งเหล่านี้แก้ไข ATTRS ของคุณให้ตรงกับของคุณ (นี่คือส่วนที่ละเอียดอ่อนคุณอาจต้องเลือกแอตทริบิวต์อื่นถ้ามัน ไม่ทำงาน) และแก้ไขฟิลด์ YOURUSER และ YOURGROUP:
KERNEL=="sr[0-9]*", SUBSYSTEM=="block", ATTRS{vendor}=="HL-DT-ST", SYMLINK+="dvdburner", OWNER="YOURUSER", GROUP="YOURGROUP" ACTION=="change",RUN+="/home/YOURUSER/Scripts/Bash/automountdvd.sh"
KERNEL=="sr[0-9]*"
เพียงหมายความว่ามันจะทดสอบทุกscsi
อุปกรณ์ (sr0-SR9)
SYMLINK
เป็นเพียงการเชื่อมโยงสัญลักษณ์กับไดรฟ์ (ชอบ/dev/cdrom
คือการจริง/dev/sr0
)
คุณอาจต้องโหลดกฎ udev ทั้งหมด:
udevadm control --reload rules
reload udev
udevadm trigger
เมานต์สคริปต์
บันทึกสิ่งต่อไปนี้ที่ชอบ: /home/YOURUSER/Scripts/Bash/automountdvd.sh
และแก้ไขฟิลด์ YOURUSER และ YOURGROUP โอ้มันเป็นอันตรายที่จะวางสคริปต์นี้ในโฟลเดอร์ผู้ใช้เพราะมันจะทำงานโดย root ซึ่งหมายความว่าถ้าใครบางคน hacks โฟลเดอร์ผู้ใช้ของคุณพวกเขาสามารถปรับสคริปต์ให้ทำสิ่งที่พวกเขาต้องการและรากจะเรียกใช้มัน ( และน่าจะประสบความสำเร็จเพราะผู้ใช้รูทสามารถควบคุมระบบได้อย่างสมบูรณ์)น่าจะดีกว่าที่จะซ่อนไว้ในโฟลเดอร์ที่มีเพียงรูทเท่านั้นที่สามารถมองเห็นได้ หากคุณกำลังทดลองมันเป็นเรื่องปกติ
#!/bin/bash
{
mountpoint="/media/DVD"
user=YOURUSER
group=YOURGROUP
uid=$(id -u ${user})
gid=$(id -g ${group})
FS_TYPE="`blkid /dev/sr0 | grep -o 'udf'`"
if [ ${FS_TYPE} == 'udf' ]; then
echo "ID_CDROM_MEDIA set to 1, creating ${mountpoint} and attempting to mount DVD."
mkdir -p ${mountpoint} && chown ${user}:${group} ${mountpoint}
mount -t ${FS_TYPE} -o ro,uid=${uid},gid=${gid} /dev/sr0 ${mountpoint}
echo "DVD mounted at ${mountpoint}."
else
echo "Attempting to unmount -l ${mountpoint}."
umount -l ${mountpoint}
rm -rf ${mountpoint}
echo "Unmounting ${mountpoint} and removing folder ${mountpoint}."
fi
} &>> "/var/log/autodvd.log" &
mkdir anythingAtAll; sudo mount /dev/sr0 anythingAtAll