What causes /dev/disk/by-label to be populated?
I’ve noticed that Linux distributions typically have a /dev/disk/by-label directory, but this isn’t always the case (For example, the CirrOS Linux test image doesn’t have one). What’s required on a Linux system for the /dev/disk/by-label directory to be properly populated?
2 Answers 2
On most modern Linux systems, pretty much everything under /dev is put there by udev.
On my Debian machine, /dev/disk/by-label comes from several files under /lib/udev/rules.d For example, here is a rule from 60-persistent-storage.rules :
ENV=="?*", ENV=="filesystem|other", \ SYMLINK+="disk/by-label/$env"
A few lines earlier is where ID_FS_LABEL_ENC comes from:
# probe filesystem metadata of disks KERNEL!="sr*", IMPORT="/sbin/blkid -o udev -p $tempnode"
You can run blkid yourself to see the data its passing to 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
You can put additional rules files in /etc/udev/rules.d/ if you’d like to make additional names for devices, change permissions, etc. E.g., here we have one that populates and sets the permissions on a /dev/disk/for-asm .
udisks-daemon is probably doing that (although HAL or DBUS could, also). You can watch it happen if you’re so inclined. Open a termanal and run:
and then plug in a drive. You’ll get something like:
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:
Linux — Монтирование раздела по лейблу
Посмотреть список существующих лейблов можно по следующему пути:
Если данной директории не существует, значит в системе нет ни одного лейбла
Добавление лейбла
Для разных файловых систем лейбл добавляется по разному
ext2/ext3/ext4:
reiserfs:
reiserfstune -l LABEL /dev/sda1
jfs:
xfs:
xfs_admin -L LABEL /dev/sda1
Где, «LABEL» — уникальный лейбл, «/dev/sda1» — нужный раздел
fstab
Пример записи в fstab, для монтирования xfs раздела по лейблу «SITE«
LABEL=SITE /var/www/html/site xfs defaults 0 0
Похожие записи
Когда вы первый раз заходите с помощью соцсетей, мы получаем публичную информацию из вашей учетной записи, предоставляемой провайдером услуги соцсети в рамках ваших настроек конфиденциальности. Мы также автоматически получаем ваш e-mail адрес для создания вашей учетной записи на нашем веб сайте. Когда она будет создана, вы будете авторизованы под этой учетной записью.
Когда вы первый раз заходите с помощью соцсетей, мы получаем публичную информацию из вашей учетной записи, предоставляемой провайдером услуги соцсети в рамках ваших настроек конфиденциальности. Мы также автоматически получаем ваш e-mail адрес для создания вашей учетной записи на нашем веб сайте. Когда она будет создана, вы будете авторизованы под этой учетной записью.
Свежие записи
Свежие комментарии
- Сурен к записи AWS — EBS уменьшение размера
- Андрей к записи FIX ERROR — Python2.7: PIP не работает после апгрейда
- VoOne к записи Ansible Playbook — Установка Docker в CentOS 7
- Artem к записи Jenkins — Python VirtualEnv с выбором версий
- Artem к записи Kubernetes — NFS provisioner
Рубрики
- Backup (2)
- BASH (13)
- Command Examples (6)
- Config Examples (17)
- Database (2)
- DevOps (162)
- Ansible (11)
- AWS (47)
- CI/CD (45)
- Docker (19)
- GCP (5)
- Helm (1)
- Kubernetes (30)
- Terraform (8)