Điều gì gây ra / dev / đĩa / by-nhãn được điền?


14

Tôi đã nhận thấy rằng các bản phân phối Linux thường có thư mục / dev / đĩa / by-nhãn, nhưng điều này không phải lúc nào cũng như vậy (Ví dụ: hình ảnh thử nghiệm CirrOS Linux không có).

Yêu cầu gì trên hệ thống Linux để thư mục / dev / đĩa / by-nhãn được điền đúng?


Tôi không biết điều này, nhưng tôi đoán udevcó liên quan đến những thứ đó.

Câu trả lời:


10

Trên hầu hết các hệ thống Linux hiện đại, hầu hết mọi thứ bên dưới /devđều được udev đưa vào đó.

Trên máy Debian của tôi, /dev/disk/by-labelxuất phát từ một số tệp trong /lib/udev/rules.dVí dụ: đây là quy tắc từ 60-persistent-storage.rules:

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

Một vài dòng trước đó là từ đâu ID_FS_LABEL_ENCđến:

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

Bạn có thể blkidtự chạy để xem dữ liệu truyền đến 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

Và thực sự:

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

Bạn có thể đặt các tệp quy tắc bổ sung vào /etc/udev/rules.d/nếu bạn muốn đặt tên bổ sung cho thiết bị, thay đổi quyền, v.v. Ví dụ: ở đây chúng tôi có một quy tắc cư trú và đặt quyền trên a /dev/disk/for-asm.


0

udisks-daemoncó lẽ đang làm điều đó (mặc dù HAL hoặc DBUS cũng có thể). Bạn có thể xem nó xảy ra nếu bạn rất nghiêng. Mở một termanal và chạy:

udisks --monitor-detail

và sau đó cắm vào một ổ đĩa. Bạn sẽ nhận được một cái gì đó như:

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:                      

Ngoài ra, để đọc một cách thú vị về lịch sử / sự phát triển của udisk scribd.com/doc/63425975/Intesistion-to-Udisks
charlesbridge

1
Trên thực tế, tất cả đều là udev, nó không liên quan gì đến udisks.
derobert
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.