LINUX.ORG.RU
ФорумAdmin

Debian LVM on USB unable to read superblock

 , ,


0

1

Добрейшего времени суток!

Столкнулся с такой проблемой: при загрузке системы deb11 и попытке смонтировать том с lvm получаю сообщение об ошибке

root@deb11:~# mount /dev/mapper/vg_1g_sd-home /mnt/home
mount: /mnt/home: can't read superblock on /dev/mapper/vg_1g_sd-home.

[Пн янв  9 08:17:27 2023] Buffer I/O error on dev dm-4, logical block 51184, async page read
[Пн янв  9 08:17:27 2023] EXT4-fs (dm-4): unable to read superblock

Причем что интересно, это только после перезагрузки. Если я только создам pv, vg, lv и mkfs.ext4 и далее mount - все отлично. Стоит перезагрузиться - получаю «can’t read superblock»

Что странно, помогает сначала «lvchange -a n /dev/vg_2g_sd/home» и затем «lvchange -a y /dev/vg_2g_sd/home». Но тоже странно, что в lsblk не показывает на устройстве тома lvm

в dmesg ничего критичного не выявил

Перемещено hobbit из general


Buffer I/O error

Это все сообщения об ошибках в dmesg? Или их заметно больше?

Стоит перезагрузиться - получаю «can’t read superblock»

Именно перезагрузиться или достаточно отмонтировать и переподключить?

Вы пробовали просто читать всю флешку после переподключения, может просто аппаратные проблемы и флешка не всё помнит?

mky ★★★★★
()
Ответ на: комментарий от mky

Огромное спасибо за ответ! Еще одна особенность всплыла… … есть две флешки, на одной sdb1 sdb2 sdb3 sdb4 и sdb3 отдан lvm а на второй флешке отдавал pvcreate и сразу на sdc и на sdc1… но вот если две флешки воткнуты - определится lvm только на sdb3 при этом sdc просто так висит в lsblk виден, но что там из lv не раскрыто, но при этом /dev/dm-0 dm-1 и так далее все есть 😦 и даже lvscan видит что есть тома… но в /dev/mapper/ нет ссылок на dm-*

Закралось впечатление, что в dm (device mapper) что-то не так определяется, но вот что и главное как заставить его переопределить… пока ума не приложу.

Пробовал на другом хосте и ситуация такая же, если две флешки вставлены - LVM увидит на той, где 4 раздела. Но вот кстати если без флешек загрузиться и потом вставить - определит обе, но стоит ребутнуться с флешками - сразу этот глюк

Я пока не нашел, могу ли я как-то dm сам попросить перечитать и может как-то их можно руками настраивать?

Огромное спасибо!

MakPol
() автор топика
Ответ на: комментарий от MakPol

Странно. Может имена VG пересекаются?

Покажите больше конкретной фактуры, может чего и сообразим. Лучше в момент, когда две воткнуты, и наблюдается проблема.

pvs
vgs
lvs

lsblk -f
ls -lah  /dev/mapper/

parted /dev/sdb print free
parted /dev/sdc print free
( или ldisk -l <device> для обоих)
NDfan
()

Зачем ты делаешь lvm на флешках?

На инициализацию usb устройств тратится некоторое время.

По сути при старте системы в initramfs выполняется команда vgchange -ay для активации группы томов и получения списка логических томов.

У тебя, скорее всего, возникает ситуация, что на момент выполнения этой команды ядро ещё не успело проинициализировать usb устройства до конца. Поэтому часть группы томов и логических томов у тебя недоступны.

Либо не используй флешки, либо тебе надо добавить задержку перед выполнением команды активации в несколько секунд. Чтобы ядро точно успело опросить usb шину, понять что туда подключено и понять что подключены usb устройства хранения.

kostik87 ★★★★★
()
Ответ на: комментарий от kostik87

... тебе надо добавить задержку перед выполнением команды активации в несколько секунд. Чтобы ядро точно успело опросить usb шину, понять что туда подключено и понять что подключены usb устройства хранения.

Скорее всего так и есть. 2ТС добавить rootdelay со значением побольше. Емнип я 30 секунд ставил, что бы везде работало :)

anc ★★★★★
()
Ответ на: комментарий от kostik87

А где rootdelay выставляется? Что-то не припомню, чтобы выставлял ранее.

Загрепал

$ sudo grep -rn rootdelay /
/usr/share/initramfs-tools/init:99:     rootdelay=*)
/usr/share/initramfs-tools/init:100:            ROOTDELAY="${x#rootdelay=}"
/usr/share/initramfs-tools/scripts/local:80:            # Timeout is max(30, rootdelay) seconds (approximately)
/usr/share/initramfs-tools/scripts/local:133:           echo "   - Check rootdelay= (did the system wait long enough?)"
/usr/share/nmap/scripts/ntp-info.nse:48:-- <elem key="rootdelay">0.000</elem>
MakPol
() автор топика
Последнее исправление: MakPol (всего исправлений: 1)
Ответ на: комментарий от kostik87

У меня

$ cat /etc/default/grub
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX=""
...

В GRUB_CMDLINE_LINUX_DEFAULT надо править и вписывать rootdelay ?

MakPol
() автор топика
Ответ на: комментарий от MakPol

а на второй флешке отдавал pvcreate и сразу на sdc и на sdc1

Не понял, на sdc1 или sdc? Один ведь внутри другого находится.

Опишите полную конфигурацию системы.

rootdelay это параметр ядра, передаваемый через загрузчик. Если у вас grub, то там при выборе пункта в меню можно его отредактировать и добавить (только на эту загрузку) этот параметр. Чтобы проверить, влияет или нет.

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

но что там из lv не раскрыто, но при этом /dev/dm-0 dm-1 и так далее все есть и даже lvscan видит что есть тома… но в /dev/mapper/ нет ссылок на dm-*

dm-0 относится к /dev/sdc? /dev/dm-1 существует, монтируется?

Если у вас ситуация воспрозводится, то сравните вывод команд dmsetup info, pvdisplay, lvdisplay, cat /proc/partitions, lsblk и т.д.

Запуск lvm вручную возможен, но изучите побольше http://xgu.ru/wiki/LVM

Ещё есть команда vgmknodes...

mky ★★★★★
()
Ответ на: комментарий от mky

Огромное спасибо за ответы. Хост доступен только по SSH и чуть ли не замурован в стену, так что я при загрузке не правил по этой причине, что доступ по ssh только. Возможно слишком мудреную конфигурацию я замутил. Но цель была заставить работать deb11 на 512 оперативы и (барабанная дробь) всего на 1G подобия диска (платка в материнку втыкается). Цели достиг, перебрав до этого всякие там якобы маленькие операционки, но как только надо, чтобы и на елку влезть и в диск не упереться, то даже без X - 1G уже ни о чем ))) Вот стал выносить на флехи под LVM для гибкости. Диск туда ставить не хочу, во всяком случае пока.

Естественно прошел много вопросов «зачем», советов «не извращайся на этом железе», но позволил себе не отходить от цели. Маленькая коробочка с возможностью опрашивать домашние самоделки на ESP8266 и в тот же телеграмм отправлять информацию, да еще и при необходимости иметь возможность по работе подключиться к vpn и через ssh ткнуться на нужные сервера (как резервный хост, подключив клавиатуру и монитор) - ИМХО не помешает. Ну и это все при потреблении питания как у энергосберегающей лампочки )))

Читаю, изучаю, вспоминаю и собираю информацию…

Как всегда - этот форум - спасение.

MakPol
() автор топика
Последнее исправление: MakPol (всего исправлений: 1)
Ответ на: комментарий от MakPol

и чуть ли не замурован в стену

Рисковано, нонешные микросхемы дохнул легко сами по себе, что логика, что флеш-память. Хотя дело ваше.

По ssh строку папамеиров ядра в меню загрузчика не отредактировать, но, если у вас ситуация воспроизводится и на другом компе, то можно и там попробовать rootdelay, хотя, ИМХО, не поможет и дело будет в ″udevadm trigger для /dev/dm-*″ или чём-то подобном, связаным с тем, что udevd стартует с initramfs, а потом перечитывает правила с основной ФС.

Вот стал выносить на флехи под LVM для гибкости.

Не вижу смысла в LVM, флешка базово расходный материал, если её использовать как часть системы, то содержимое лучше куда-нибудь бэкапить. И проще, если нужно изменить размеры ФС, скриптом заново перезаписывавать всю флешку, ИМХО. Но, опять таки, дело ваше.

да еще и при необходимости иметь возможность по работе подключиться к vpn и через ssh ткнуться на нужные сервера (как резервный хост, подключив клавиатуру и монитор)

Да у вас на ней же X-ов нету, уж лучше держать в резерве что-то посолиднее.

mky ★★★★★
()
Ответ на: комментарий от mky

Не вижу смысла в LVM, флешка базово расходный материал, если её использовать как часть системы, то содержимое лучше куда-нибудь бэкапить.

+1 Даже не +1, а +много.

да еще и при необходимости иметь возможность по работе подключиться к vpn и через ssh ткнуться на нужные сервера (как резервный хост, подключив клавиатуру и монитор)

Да у вас на ней же X-ов нету, уж лучше держать в резерве что-то посолиднее.

А зачем для ssh X-ы?

anc ★★★★★
()
Ответ на: комментарий от mky

Да это не прод, это именно резерв. 3й по счету ))))))) Два других с дисками. А на этом тупо нет места под диск, а точнее он не предусмотрен, зато 8 USB )))) Ну и WiFi на борту.

Содержимое я для бекапа и приготовил, именно для этого и хотел чтобы мог 2 флешки втыкать, а оказалось - трабл с этим

И дело кажись действительно в скорости USB и что не успевало определиться )))

MakPol
() автор топика
Ответ на: комментарий от NDfan

При «rootdelay=30» взлетело и вот что видно:

root@deb11:~# lsblk
NAME                   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                      8:0    0 977,5M  0 disk
└─sda1                   8:1    0 976,5M  0 part /
sdb                      8:16   1   1,8G  0 disk
└─sdb1                   8:17   1   1,8G  0 part
  ├─vg_2g_sd-lib       254:0    0   300M  0 lvm  /var/lib
  ├─vg_2g_sd-log       254:1    0   152M  0 lvm  /var/log
  ├─vg_2g_sd-cache     254:2    0   300M  0 lvm  /var/cache
  ├─vg_2g_sd-home      254:3    0   152M  0 lvm  /home
  ├─vg_2g_sd-usr_lib   254:4    0   528M  0 lvm  /usr/lib
  └─vg_2g_sd-usr_share 254:5    0   452M  0 lvm  /usr/share
sdc                      8:32   1 970,5M  0 disk
├─vg_1g_sd-lib         254:6    0   300M  0 lvm  /mnt/lib
├─vg_1g_sd-log         254:7    0   152M  0 lvm  /mnt/log
├─vg_1g_sd-cache       254:8    0   152M  0 lvm  /mnt/cache
└─vg_1g_sd-home        254:9    0   200M  0 lvm  /mnt/home

root@deb11:~# pvs
  PV         VG       Fmt  Attr PSize   PFree
  /dev/sdb1  vg_2g_sd lvm2 a--   <1,84g      0
  /dev/sdc   vg_1g_sd lvm2 a--  968,00m 164,00m
root@deb11:~# vgs
  VG       #PV #LV #SN Attr   VSize   VFree
  vg_1g_sd   1   4   0 wz--n- 968,00m 164,00m
  vg_2g_sd   1   6   0 wz--n-  <1,84g      0
root@deb11:~# pvs
  PV         VG       Fmt  Attr PSize   PFree
  /dev/sdb1  vg_2g_sd lvm2 a--   <1,84g      0
  /dev/sdc   vg_1g_sd lvm2 a--  968,00m 164,00m
root@deb11:~# lvs
  LV        VG       Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  cache     vg_1g_sd -wi-a----- 152,00m
  home      vg_1g_sd -wi-a----- 200,00m
  lib       vg_1g_sd -wi-a----- 300,00m
  log       vg_1g_sd -wi-a----- 152,00m
  cache     vg_2g_sd -wi-ao---- 300,00m
  home      vg_2g_sd -wi-ao---- 152,00m
  lib       vg_2g_sd -wi-ao---- 300,00m
  log       vg_2g_sd -wi-ao---- 152,00m
  usr_lib   vg_2g_sd -wi-ao---- 528,00m
  usr_share vg_2g_sd -wi-ao---- 452,00m
MakPol
() автор топика
Ответ на: комментарий от NDfan

Что забавно, что вот что показало по загрузке

root@deb11:~# systemd-analyze blame | head -n 10
1min 302ms ifupdown-pre.service
   56.128s lvm2-pvscan@8:32.service
   21.205s lvm2-pvscan@8:17.service
   11.208s networking.service
    9.554s apparmor.service
    9.022s systemd-journal-flush.service
    6.113s systemd-fsck@dev-mapper-vg_2g_sd\x2dusr_share.service
    6.103s systemd-random-seed.service
    5.677s systemd-fsck@dev-mapper-vg_2g_sd\x2dusr_lib.service
    5.104s systemd-fsck@dev-mapper-vg_2g_sd\x2dlog.service

До этого 30s в пике было, но ничего, с пивом потянет )))

MakPol
() автор топика
Последнее исправление: MakPol (всего исправлений: 1)
Ответ на: комментарий от kostik87

Огромнейшее спасибо! Тупанул (и не один раз по ходу), но ранее не приходилось выставлять этот delay. Но решил поставить rootdelay=10 и тоже норм оказалось и повторная загрузка уже получше, но вернув на quiet (default) - естественно проблема повторилась. Думаю на 10 и остановлюсь, а так - я с GRUB_TIMEOUT по ходу сначала перепутал, что для таймаута меню и отсюда переспрашивать стал, т.к. не понял как оно поможет )))

root@deb11:~# systemd-analyze blame | head -n 10
9.941s networking.service
9.720s apparmor.service
7.491s systemd-journal-flush.service
6.740s console-setup.service
4.786s systemd-fsck@dev-mapper-vg_2g_sd\x2dusr_share.service
4.522s ifupdown-pre.service
4.352s dev-sda1.device
3.869s systemd-fsck@dev-mapper-vg_2g_sd\x2dcache.service
3.751s var-log.mount
2.993s var-lib.mount

Низкий поклон за подсказки!!!

MakPol
() автор топика
Ответ на: комментарий от MakPol

Только «под ноль» в смысле под минимально пригодное по вашему мнению не загоняйте, если вам сегодня хватает 5 секунд, а 4 нет, не значит, что в условном завтра хватит, а менять в случае чего, лениво, тоскливо и ведь окажется в самый неудачный момент :) У меня 30 секунд для «рук» было сделано, но им на это плевать было, работало везде и хорошо, а с учетом времени трансфера до объектов, эти лишние секунды никого не волновали, зато робило на самом ушербном железе. Вот в те редкие моменты жизни когда доставалось мне, я быстрее успевал набрать на клаве вариант «побыстрее», но это было в lilo, там быстрее донабрать :)

anc ★★★★★
()
Ответ на: комментарий от mky

man тоже место занимает ))) Но на самом деле даже дома есть где почитать их, хоть в консоли, хоть с телефона, правда во втором случае это в сети читать (

MakPol
() автор топика
Ответ на: комментарий от anc

В итоге на 25 остановился, а с 10, 5 - это просто экспериментировал. Ну и сервак в ребут отправлял несколько раз и проверял, сколько он недоступен. Загрузится, продышится, снова в ребут и так на автоматическое тестирование на пару часов )))) Был повод разобраться и попробовать настройки, которые не надо было раньше даже узнавать )))

P.S. пациент, на котором все это проводилось - HP HSTNC-003-TC

MakPol
() автор топика