Статья (и в целом проблема как таковая) уровня для-мамкиных-админов (или админов локалхоста, как зло и хлестко говорят на/в опеннете), поэтому “подкованным” можно проходить мимо! Написать эти 3 абзаца сподвигла злоба на горе-СЕОшников, которые завалили инет перепечатками статей 2005-2010г.г. Кроме того, Оракл задеприкэйтил определенную опцию командной строки, и скоро эти статьи протухнут окончательно (напоследок будет пара фраз про KVM).
1. Проблема (которая, в общем-то, непроблема)
Она произрастает из параллельного (в нынешнем Линуксе) обнаружения устройств, поэтому дисковые устройства часто меняют имена между перезагрузками (что-то типа: было /dev/sda — стало /dev/sdb)
Поэтому, если тест нужет в моменте, и больше повторов не будет, можно опираться на /dev/sdX. Но если тесты/работа на большой период времени, нужно что-то универсальное и идентифицирующее нужное устройство однозначно. Здесь на помощь приходят синонимы, коих система плодит при загрузке в достатке (и слава богу!!!).
Взглянем на вывод команды «ls /dev/disk»:
by-diskseq by-id by-loop-inode by-loop-ref by-partlabel by-partuuid by-path by-uuid
Во всех этих подкаталогах ссылки на устройства/разделы с использованием разных идентификаторов. Вот их и надо использовать!
2. Udev.
Сначала подсмотрите с помощью команды “udevadm info /dev/sdX” идентификатор, по которому будете отлавливать появление вашего устройства.
………..
E: ID_REVISION=01.01A01
E: ID_SERIAL=WDC_WD20NPVX-00EA4T0_WD-WX81A43A9823
E: ID_SERIAL_SHORT=WD-WX81A43A9823
……….
E: ID_WWN=0x50014ee2b3311c74
E: ID_WWN_WITH_EXTENSION=0x50014ee2b3311c74
E: ID_PATH=pci-0000:02:00.1-ata-6.0
………….
Далее назначаем права доступа для вашего диска (Vbox работает под пользователем, а не рутом). Создаем файл /etc/udev/rules.d/99-vbox-disks.rules:
ENV{ID_SERIAL_SHORT}==»WD-WX81A43A9823″, GROUP=»vboxusers»
В этом примере идентификация у нас идет по серийному номеру.
3. Создание файла-привязки.
Теперь о той опции командной строки, которая постепенно протухает. Речь идет о ком-строке вида: vboxmanage internalcommands createrawvmdk …
Для создания файла-привязки следует пользоваться командной строкой вида:
vboxmanage createmedium disk —variant=RawDisk —format=VMDK —filename=»${_file}» —property RawDrive=${_id}
где _id – это что-то типа /dev/disk/by-id/wwn-0x5002538d421c5853 (ну или /dev/sdb – если уж так надо…)))))
Теперь обещаные пара слов про KVM.
Маневр с синонимами имеет силу и для KVM. Там оформляем подключение дискового устройства по схожему принципу (выжимка XML):
……………………
<disk type=’block’ device=’disk’>
<driver name=’qemu’ type=’raw’ cache=’none’/>
<source dev=’/dev/disk/by-id/wwn-0x50014ee2b3315694’/>
<target dev=’vdc’ bus=’virtio’/>
<address type=’pci’ domain=’0x0000′ bus=’0x09′ slot=’0x00′ function=’0x0’/>
</disk>
…………………….
P.S.
Обратите внимание на следующий момент:
E: ID_WWN=0x5002538d421c483f
В правилах udev просто идентификатор “0x5002538d421c483f”, а синоним на файловой системе уже имеет такой вид:
/dev/disk/by-id/wwn-0x5002538d421c483f
Поэтому будьте внимательны! (И да, это полупочетное звание мамкин-админ — его заслужить тоже надо постараться )))))
ссылка на оригинал статьи https://habr.com/ru/articles/894420/
Добавить комментарий