อะไรที่ทำให้ / dev / disk / by-label บรรจุอยู่?


14

ฉันสังเกตว่าลีนุกซ์รุ่นลีนุกซ์มีไดเร็กตอรี่ / dev / disk / by-label, แต่มันไม่ได้เป็นเช่นนั้นเสมอไป (ตัวอย่างเช่น, อิมเมจการทดสอบCirrOS Linux ไม่มีหนึ่งอัน)

สิ่งที่ต้องการในระบบ Linux สำหรับการเติมไดเรกทอรี / dev / disk / by-label ให้ถูกต้อง?


ฉันไม่รู้เรื่องนี้ แต่ฉันคิดว่าudevมีบางอย่างเกี่ยวข้องกับเรื่องแบบนั้น

คำตอบ:


10

ในระบบลีนุกซ์ที่ทันสมัยส่วนใหญ่แล้วทุกสิ่งที่อยู่ภายใต้การดูแล/devของ udev

บนเครื่อง Debian ของฉัน/dev/disk/by-labelมาจากหลาย ๆ ไฟล์ภายใต้/lib/udev/rules.dตัวอย่างเช่นนี่คือกฎจาก60-persistent-storage.rules:

ENV{ID_FS_LABEL_ENC}=="?*",     ENV{ID_FS_USAGE}=="filesystem|other", \
        SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}"

ไม่กี่บรรทัดก่อนหน้านี้ID_FS_LABEL_ENCมาจาก:

# probe filesystem metadata of disks
KERNEL!="sr*", IMPORT{program}="/sbin/blkid -o udev -p $tempnode"

คุณสามารถรันblkidด้วยตัวเองเพื่อดูข้อมูลที่ส่งถึง udev:

root@Zia:~# /sbin/blkid -o udev -p /dev/sda2
ID_FS_SEC_TYPE=msdos
ID_FS_LABEL=xfer1
ID_FS_LABEL_ENC=xfer1
ID_FS_UUID=B140-C934
ID_FS_UUID_ENC=B140-C934
ID_FS_VERSION=FAT16
ID_FS_TYPE=vfat
ID_FS_USAGE=filesystem
ID_PART_ENTRY_SCHEME=dos
ID_PART_ENTRY_TYPE=0xc
ID_PART_ENTRY_NUMBER=2
ID_PART_ENTRY_OFFSET=257040
ID_PART_ENTRY_SIZE=257040
ID_PART_ENTRY_DISK=8:0

และแน่นอน:

root@Zia:~# ls -l /dev/disk/by-label/xfer1 
lrwxrwxrwx 1 root root 10 Nov 19 10:02 /dev/disk/by-label/xfer1 -> ../../sda2

คุณสามารถใส่ไฟล์กฎระเบียบเพิ่มเติมใน/etc/udev/rules.d/กรณีที่คุณต้องการที่จะทำให้ชื่อเพิ่มเติมสำหรับอุปกรณ์สิทธิ์การเปลี่ยนแปลงอื่น ๆ เช่นที่นี่เรามีหนึ่งที่ populates /dev/disk/for-asmและชุดสิทธิ์ใน


0

udisks-daemonอาจทำเช่นนั้น (แม้ว่า HAL หรือ DBUS ก็ทำได้เช่นกัน) คุณสามารถดูมันเกิดขึ้นหากคุณมีแนวโน้ม เปิด termanal และเรียกใช้:

udisks --monitor-detail

แล้วเสียบไดรฟ์ คุณจะได้รับสิ่งที่ชอบ:

job-changed: /org/freedesktop/UDisks/devices/sdb1
  job underway:                FilesystemMount, initiated by uid 1000
changed:     /org/freedesktop/UDisks/devices/sdb1
Showing information for /org/freedesktop/UDisks/devices/sdb1
  native-path:                 /sys/devices/pci0000:00/0000:00:1a.7/usb1/1-4/1-4:1.0/host3/target3:0:0/3:0:0:0/block/sdb/sdb1
  device:                      8:17
  device-file:                 /dev/sdb1
    presentation:              /dev/sdb1
    by-id:                     /dev/disk/by-id/usb-SanDisk_Cruzer_20054858820EEB607D7D-0:0-part1
    by-id:                     /dev/disk/by-uuid/D033-D063
    by-path:                   /dev/disk/by-path/pci-0000:00:1a.7-usb-0:4:1.0-scsi-0:0:0:0-part1
  detected at:                 Wed 21 Nov 2012 07:45:47 AM EST
  system internal:             0
  removable:                   0
  has media:                   1 (detected at Wed 21 Nov 2012 07:45:47 AM EST)
    detects change:            0
    detection by polling:      0
    detection inhibitable:     0
    detection inhibited:       0
  is read only:                0
  is mounted:                  1
  mount paths:             /media/CRUZER
  mounted by uid:              1000
  presentation hide:           0
  presentation nopolicy:       0
  presentation name:           
  presentation icon:           
  size:                        8000094208
  block size:                  512
  job underway:                no
  usage:                       filesystem
  type:                        vfat
  version:                     FAT32
  uuid:                        D033-D063
  label:                       CRUZER
  partition:
    part of:                   /org/freedesktop/UDisks/devices/sdb
    scheme:                    mbr
    number:                    1
    type:                      0x0b
    flags:                    
    offset:                    16384
    alignment offset:          0
    size:                      8000094208
    label:                     
    uuid:                      

นอกจากนี้สำหรับการอ่านที่น่าสนใจเกี่ยวกับประวัติ / การพัฒนาของudisk scribd.com/doc/63425975/Introduction-to-Udisks
charlesbridge

1
จริงๆแล้วมันคือทุก udev - มันไม่มีส่วนเกี่ยวข้องกับ udisks
Derobert
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.