จะกำหนดค่าให้บันทึกข้อมูลเพื่อขับขนทันทีได้อย่างไร


12

หากฉันแก้ไขไฟล์ใน pendrive ของฉันและจากนั้นเพียงลบไฟล์ออกทางกายภาพข้อมูลจะไม่ถูกบันทึก ฉันต้องคลิก "ขับ" และอื่น ๆ นำไปสู่เริ่มกระพริบและข้อมูลเริ่มที่จะถูกบันทึกไว้

ฉันจะเปลี่ยนแปลงสิ่งนี้ได้อย่างไรเพื่อให้ข้อมูลถูกบันทึกทันทีเมื่อมีการเปลี่ยนแปลง

อัปเดต: Ubuntu 11.10

ใน Ubuntu 11.10 ฉันเขียนไฟล์ rules (จาก@enzotib answer) และใช้งานได้ แต่ให้ข้อความต่อไปนี้เมื่อฉันพยายามดีด / unmount:

ป้อนคำอธิบายรูปภาพที่นี่

(ฉันควรเริ่มคำถามอื่นสำหรับ Ubuntu 11.10 หรือไม่)


2
ประสิทธิภาพจะลดลงเนื่องจากไม่ได้ใช้แคชการเขียนอีกต่อไป ถอดพาร์ติชั่นอย่างเหมาะสมโดยใช้ตัวเลือกนำออก / ยกเลิกการต่อเชื่อมมิฉะนั้นคุณจะสูญเสียข้อมูล
Lekensteyn

4
คุณสามารถใช้syncตัวเลือกเมื่อติดตั้งพาร์ติชัน ไม่แนะนำให้ทำเช่นนี้เนื่องจากจะเพิ่มจำนวนการเขียนลงใน thumbdrive เป็นอย่างมาก
จัด

2
@ จัดเรียงเป็น Ubuntu ทำ automount มีวิธีที่จะทำให้syncเป็นค่าเริ่มต้นดังนั้นฉันไม่จำเป็นต้องทำเช่นนี้ใน terminal ทุกครั้งหรือไม่ และฉันรู้ว่ามันจะเพิ่มจำนวนการเขียนเป็นอย่างมาก แต่ก็เป็นสิ่งที่ฉันต้องการ ขอบคุณ!
Tom Brito


@arrange เห็นมัน แต่ก็ยังคงไม่ได้เป็นคำตอบที่สมบูรณ์ ...
ทอม Brito

คำตอบ:


8

ติดตามคำถาม (และคำตอบ)ที่ @arrange แสดงในความคิดเห็นของเขามาสร้างไฟล์ใหม่กัน

/etc/udev/rules.d/11-media-by-label-auto-mount.rules

และเขียนเนื้อหาต่อไปนี้ลงไป (ดูudev :: Mount under / media; ใช้ label พาร์ติชั่นถ้ามี )

KERNEL!="sd[a-z][0-9]", GOTO="media_by_label_auto_mount_end"

# Import FS infos
IMPORT{program}="/sbin/blkid -o udev -p %N"

# Get a label if present, otherwise specify one
ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}"
ENV{ID_FS_LABEL}=="", ENV{dir_name}="usbhd-%k"

# Global mount options
ACTION=="add", ENV{mount_options}="relatime,sync"
# Filesystem-specific mount options
ACTION=="add", ENV{ID_FS_TYPE}=="vfat|ntfs", ENV{mount_options}="$env{mount_options},utf8,uid=1000,gid=1000,umask=002"

# Mount the device
ACTION=="add", RUN+="/bin/mkdir -p /media/%E{dir_name}", RUN+="/bin/mount -o $env{mount_options} /dev/%k /media/%E{dir_name}"

# Clean up after removal
ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l /media/%E{dir_name}", RUN+="/bin/rmdir /media/%E{dir_name}"

# Exit
LABEL="media_by_label_auto_mount_end"

ฉันได้ทำการแก้ไขเล็กน้อยแล้วเกี่ยวกับที่รายงานไว้ในเว็บไซต์

  • เพิ่มsyncตัวเลือกไปที่ENV{mount_options}
  • แก้ไขgid=100ตัวเลือกเป็นuid=1000,gid=1000โดยที่หมายเลขนั้นสัมพันธ์กับ used-id และ group-id ของคุณตามที่ส่งคืนโดยid -uและid -g

ไฟล์ที่สองทำให้คุณเป็นเจ้าของไฟล์ทั้งหมดบนพาร์ติชันที่เมาท์ดังนั้นจึงไม่มีปัญหาสิทธิ์อนุญาต เห็นได้ชัดว่านี่ไม่ใช่กรณีที่ผู้ใช้มากกว่าหนึ่งรายควรเข้าถึงไฟล์ แต่สามารถจัดการได้ด้วยวิธีอื่น

สำหรับระบบไฟล์ที่ไม่ใช่ windows เจ้าของและกลุ่มเป็นข้อมูลเมตาบนระบบไฟล์และไม่สามารถเปลี่ยนแปลงได้โดยตัวเลือกการเมาท์

กฎใหม่ใช้งานได้ทันที ( udevใช้inotifyเพื่อตรวจหาไฟล์กฎใหม่และที่แก้ไข)

ไดรฟ์ที่เมาท์จะไม่เปิดขึ้นโดยอัตโนมัติในหน้าต่างตัวจัดการไฟล์อย่างที่คุณเห็นและนี่เป็นเรื่องยากที่จะบรรลุเนื่องจากการติดตั้งนั้นเป็นของ root และไม่สามารถเข้าสู่เซสชันการเข้าสู่ระบบแบบกราฟิกของคุณได้ แต่ไดรฟ์อยู่บนเดสก์ท็อปของคุณดังนั้นการคลิกสองครั้งง่าย ๆ จะเปิดขึ้นมา

น่าเสียดายที่ฉันไม่สามารถเอาเดสก์ท็อปคลิกขวาที่ unmount เพื่อทำงานได้ แต่นี่ไม่ใช่ปัญหาใหญ่: มีsyncตัวเลือกอยู่ในตัวคุณสามารถถอดอุปกรณ์ออกได้และกฎของ udev จะดูแลการลบรายการออก/proc/mountsและนำเมานท์ออก จุด.


ฉันไม่สามารถปัดเศษเพื่อเขียนวิธีการนี้ขอบคุณสำหรับการทำมัน;) และฉันยังไม่สามารถเลิกใช้ผู้ใช้เพื่อทำงานดูเหมือนว่าusersตัวเลือกจะใช้ได้เฉพาะในfstabไฟล์ ... นี่ไม่ใช่ ปัญหาที่นี่ ("ซิงค์") แต่สำหรับวิธีการทั่วไปจะเป็น
จัด

ขอบคุณสำหรับคำตอบ. น่าเสียดายหลังจากทำตามที่อธิบายไว้แล้วฉันไม่สามารถสร้างแก้ไขหรือลบไฟล์ใด ๆ ใน pendrive ได้ นอกจากนี้ยังไม่มีการเปิดหน้าต่างโดยอัตโนมัติเมื่อฉันเสียบอีก ความคิดใด ๆ
Tom Brito

อย่างไรก็ตามฉันคิดว่าส่วนขยายที่คุณพิมพ์ ".rule" นั้นผิดและฉันใช้ไฟล์อื่น ๆ ในโฟลเดอร์เดียวกัน: ".rules"
Tom Brito

เอกสารไม่ได้พูดเกี่ยวกับส่วนขยายเฉพาะที่จะใช้ โดยวิธีการที่ฉันคัดลอกผิดจากเว็บไซต์ดังนั้นมันจะดีกว่าที่จะใช้.rulesเพื่อความปลอดภัย สำหรับส่วนที่เหลือให้ดูคำตอบที่แก้ไข
enzotib

เฮ้ฉันใช้ Ubuntu 11.10 แล้วและมันมีพฤติกรรมที่แตกต่างออกไป โปรดดูการปรับปรุงของฉัน
Tom Brito
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.