Устройства lvm в / dev / mapper отсутствуют

21

Я использую Debian Squeeze и запускаю LVM поверх программного RAID 1. Я просто случайно обнаружил, что большинство ссылок внизу /dev/mapperотсутствуют, хотя моя система, похоже, все еще работает правильно.

Я не уверен, что случилось. Единственное, что я могу себе представить - это моя неудачная попытка заставить работать контейнер LXC fedora. В итоге я удалил каталог /cgroup/laughlin, соответствующий контейнеру, но не представляю, почему это должно было вызвать проблему. /dev/mapperпосмотрел (я сделал некоторые изменения, см. ниже) примерно как

orwell:/dev/mapper# ls -la
total 0
drwxr-xr-x  2 root root     540 Apr 12 05:08 .
drwxr-xr-x 22 root root    4500 Apr 12 05:08 ..
crw-------  1 root root  10, 59 Apr  8 10:32 control
lrwxrwxrwx  1 root root       7 Mar 29 08:28 debian-root -> ../dm-0
lrwxrwxrwx  1 root root       8 Apr 12 03:32 debian-video -> ../dm-23

debian-video соответствует только что созданному LV.

Однако в моей системе достаточно VG, что соответствует 4 VG, распределенным по 4 дискам. vgsдает

orwell:/dev/mapper# vgs
  VG         #PV #LV #SN Attr   VSize   VFree  
  backup       1   2   0 wz--n- 186.26g  96.26g
  debian       1   7   0 wz--n- 465.76g 151.41g
  olddebian    1  12   0 wz--n- 186.26g  21.26g
  testdebian   1   3   0 wz--n- 111.75g  34.22g

Я пробовал бегать

 /dev/mapper# vgscan --mknodes

и некоторые устройства были созданы (см. вывод ниже), но они не являются символическими ссылками на устройства dm, как они должны быть, поэтому я не уверен, бесполезно ли это или хуже. Будут ли они мешать воссозданию правильных ссылок? Должен ли я удалить эти устройства снова?

Я полагаю, что udev создает эти ссылки, поэтому перезагрузка решит эту проблему или я получу не загружаемую систему? Что я должен сделать, чтобы это исправить? Есть ли какие-либо диагностические проверки / проверки работоспособности, которые я должен выполнить, чтобы убедиться, что нет других проблем, которые я не заметил? Спасибо заранее за любую помощь.

orwell:/dev/mapper# ls -la
total 0
drwxr-xr-x  2 root root     540 Apr 12 05:08 .
drwxr-xr-x 22 root root    4500 Apr 12 05:08 ..
brw-rw----  1 root disk 253,  1 Apr 12 05:08 backup-local_src
brw-rw----  1 root disk 253,  2 Apr 12 05:08 backup-video
crw-------  1 root root  10, 59 Apr  8 10:32 control
brw-rw----  1 root disk 253, 15 Apr 12 05:08 debian-boot
brw-rw----  1 root disk 253, 16 Apr 12 05:08 debian-home
brw-rw----  1 root disk 253, 22 Apr 12 05:08 debian-lxc_laughlin
brw-rw----  1 root disk 253, 21 Apr 12 05:08 debian-lxc_squeeze
lrwxrwxrwx  1 root root       7 Mar 29 08:28 debian-root -> ../dm-0
brw-rw----  1 root disk 253, 17 Apr 12 05:08 debian-swap
lrwxrwxrwx  1 root root       8 Apr 12 03:32 debian-video -> ../dm-23
brw-rw----  1 root disk 253, 10 Apr 12 05:08 olddebian-etch_template
brw-rw----  1 root disk 253, 13 Apr 12 05:08 olddebian-fedora
brw-rw----  1 root disk 253,  8 Apr 12 05:08 olddebian-feisty
brw-rw----  1 root disk 253,  9 Apr 12 05:08 olddebian-gutsy
brw-rw----  1 root disk 253,  4 Apr 12 05:08 olddebian-home
brw-rw----  1 root disk 253, 11 Apr 12 05:08 olddebian-lenny
brw-rw----  1 root disk 253,  7 Apr 12 05:08 olddebian-msi
brw-rw----  1 root disk 253,  5 Apr 12 05:08 olddebian-oldchresto
brw-rw----  1 root disk 253,  3 Apr 12 05:08 olddebian-root
brw-rw----  1 root disk 253, 14 Apr 12 05:08 olddebian-suse
brw-rw----  1 root disk 253,  6 Apr 12 05:08 olddebian-vgentoo
brw-rw----  1 root disk 253, 12 Apr 12 05:08 olddebian-wsgi
brw-rw----  1 root disk 253, 20 Apr 12 05:08 testdebian-boot
brw-rw----  1 root disk 253, 18 Apr 12 05:08 testdebian-home
brw-rw----  1 root disk 253, 19 Apr 12 05:08 testdebian-root
Фахим Митха
источник
Я буду первым, кто изложит очевидное здесь. Немедленно создайте резервные копии важных данных в этом ящике, а затем определите, является ли ящик шлангом или нет.
rfelsburg
4
Ты должен попробовать /etc/init.d/lvm2 start. Это помогло мне (но я был не совсем в вашей ситуации).
Totor
Спасибо @Totor за ваш комментарий; ты только что спас мой день! :-)
Валентин,

Ответы:

16

Эти дни /devнаходятся на tmpfs и создаются с нуля при каждой загрузке udev. Вы можете безопасно перезагрузиться, и эти ссылки вернутся.

Вы также должны найти символические ссылки LVM на /dev/dm-Xузлы в /dev/<vg>каталогах, по одному каталогу для каждой группы томов. Тем не менее, эти узлы, воссозданные с помощью vgscan --mknodes, также будут работать нормально, при условии, что они имеют правильные старшие / младшие номера - и это безопасное предположение, что они были созданы правильно.

Возможно, вы также сможете udevвосстановить символические ссылки, используя udevadm triggerсоответствующее совпадение, проверяя --dry-runего, пока оно не станет правильным. Это вряд ли стоит затраченных усилий, хотя, когда перезагрузка тоже это исправит.

CAMH
источник
Спасибо за ответ. Один запрос на уточнение: когда вы говорите, что «эти воссозданные узлы также будут работать нормально», вы имеете в виду «узлы / dev / dm-X», верно? Что вы подразумеваете под «воссозданным» здесь, а также «также отлично работает» в каком смысле? Работать нормально для чего? Извините за медлительность. Я предполагаю, что все устройства LVM воссоздаются из информации, хранящейся в /etc/lvm/archive?
Фахим Митха
Я имею в виду узлы, созданные vgscan --mknodes. Они не являются исходными символическими ссылками, но являются узлами блока dev, на которые указали бы символические ссылки. Например, вы должны найти /dev/olddebian/rootсимволическую ссылку на ../dm-3, которая будет иметь те же основные номера: второстепенные, что и воссозданные /dev/mapper/olddebian-root.
Camh
Благодарю за разъяснение. Я проверил, что то, что вы говорите, верно для / dev / mapper / debian-video, которое было одной из двух моих нетронутых символических ссылок. :-) Я только что прочитал о старших / младших номерах устройств. Спасибо за образовательный ответ.
Фахим Митха
38

У меня просто была проблема, похожая на то, что вы описываете, хотя для меня это произошло, когда я пытался установить новый Ubuntu 11.10 Oneiric Ozelot на том LVM. Я сделал следующее, чтобы настроить lvm в оперативной загрузочной системе (необходимые мне логические тома уже присутствовали):

apt-get install lvm2
vgscan --mknodes -v

Теперь lvscan -vпоказали мои объемы, но они не были /dev/mapperни в /dev/<vg>/. Я наконец-то обнаружил, что мне нужно активировать группу томов, вот так:

vgchange -a y <name of volume group>

Приведенная выше команда создала все недостающие файлы устройства для меня. Теперь я могу запустить программу установки, и она найдет тома lvm и позволит мне установить их.

Найти эту информацию в Google было сложно, поэтому я пишу этот ответ в надежде, что другим будет легче: отсюда и глубокий контекст, и именование.

Хотя это и не часть вопроса, для полноты картины добавлю, что в описанной выше ситуации (установка Ubuntu LVM) вам нужно добавить lvm2 в initrd недавно установленной системы после завершения установки, иначе она не загрузится. Ваша новая система должна быть настроена для вас в / target, но если это не так, сделайте это вручную следующим образом:

mount /dev/vg/new_root /target
mount /dev/sdx1 /target/boot       # important
mount -o bind /proc /target/proc
mount -o bind /sys /target/sys
mount -o bind /dev /target/dev
mount -o bind /dev/pts /target/dev/pts

Мне нужно было сделать это, чтобы сеть работала в chroot, о чем я расскажу ниже:

cp /etc/resolv.conf /target/etc/

Теперь выполните chroot для новой системы и установите lvm2:

chroot /target
apt-get install lvm2

Обратите внимание, что он запускает update-initramfs. Теперь просто введите выход и перезагрузите компьютер, и ваша система должна загрузиться правильно.

Лауриц В. Таулов
источник
+1 Очень неясная особенность LVM. Почему на земле это считалось «активированным» (без каких-либо видимых эффектов, конечно) на одном спасательном CD, а не на другом?
Ван Джоне
Благодарю. Я закончил читать это и использовать vgchangeболее 6 лет после написания вопроса и после нахождения вопроса в поиске. :-) Я забыл, что написал. В моем случае проблема заключалась в том, что ЛЖ были не активны.
Фахим Митха
3

Это также сработало для меня.

vgchange -a y -name of volume group-

После исправления ядра моя система RHEL не смогла перезагрузиться. Жаловаться на отсутствующий /dev/mapper/VG-lvфайл.

Загрузился в однопользовательский режим и закомментирован /etc/fstab. Однажды в сети я обнаружил, что мой зашифрованный диск показывался как «неизвестное устройство» при использовании pvs.

Исправлено, но все еще нет файлов устройств для группы томов. Выполнение вышеупомянутой команды воссоздало файлы устройства отображения и позволило мне смонтировать.

Пол Беннетт
источник
2

У меня была похожая проблема после обновления моего Debian. Во время перезагрузки мне показалось это сообщение:

Unable to find LVM Volume. 
/dev/mapper/debian-root does not exist.

Я нашел решение здесь :

cryptsetup luksOpen /dev/sda5 lvmsys
lvm
lvm> vgscan        ## scan for volume groups
lvm> vgchange -a y ## activates the volume groups

И вуаля, после этого он перезагрузился.

Адриано П
источник
0

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=616689 актуален здесь. Это связано с тем, что lvm root не появляется вовремя.

Мартин Кливер
источник
1
Возможно, стоит опубликовать основные моменты или важную информацию, как это принято.
HalosGhost