Добро пожаловать, Гость. Пожалуйста авторизуйтесь здесь.
FGHIGate на GaNJa NeTWoRK ST@Ti0N - Просмотр сообщения в эхоконференции RU.LINUX
Введите FGHI ссылку:


Присутствуют сообщения из эхоконференции RU.LINUX с датами от 24 Jan 02 06:01:34 до 29 Apr 24 03:15:24, всего сообщений: 8279
Ответить на сообщение К списку сообщений Предыдущее сообщение Следующее сообщение
= Сообщение: 5999 из 8279 ========================================= RU.LINUX =
От   : Sergey Zabolotny                 2:469/122.2        12 Dec 19 12:03:08
Кому : All                                                 12 Dec 19 12:03:08
Тема : aws и монтирование волума инит скриптом
FGHI : area://RU.LINUX?msgid=2:469/122.2+5df218d3
= Кодировка сообщения определена как: CP866 ==================================
==============================================================================
 Hello *All.*

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

так вот понадобилось поднять версию убунты до 18.04.3 и инит скрипт в этом случае перестал видеть партиции на подключаемом волуме. в инит скрипте который работает в 18.04.1 использовался банальный partprobe, который заставлял систему  перечитать список дисков и всю инфу о том, что на нем есть. после этого запуском lsblk -p -n -P -o NAME,TYPE,FSTYPE,LABEL,MOUNTPOINT ${DATA_DISK} можно было получить сразу всю информацию о диске, его партициях, файловых системах, метках томов.

в 18.04.3 после партпроба я вижу только диск, никаких партиций и тем более файловых систем.

заменил партпроб на hdparm -z ${DEVICE} >>/var/log/device.log 2>&1 || true и чудо случилось, но только наполовину. теперь я вижу списки партиций, но все равно не вижу какие там файловые системы и метки.

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

добавил пачку команд:

hdparm -z ${DEVICE} >>/var/log/device.log 2>&1 || true
file -s ${DEVICE} >>/var/log/device.log 2>&1 || true
partprobe ${DEVICE} >>/var/log/device.log 2>&1 || true
blockdev --rereadpt -v ${DEVICE} >>/var/log/device.log 2>&1 || true
fdisk -l ${DEVICE} >>/var/log/device.log 2>&1 || true

которые запускаются каждый раз при попытке получить данные о диске или партиции. в моем случае в качестве ${DEVICE} передается сначала имя диска, читается результат, из результата вытаскивается партишн нэйм и повторно вызывается эта пачка команд, но уже в качестве девайса подставляется имя партиции.

вот кусок дебаг лога из 18.04.3, который показывает что возвращается в качестве результата и после чего:
1 проход - ищем партицию, в качестве параметра передается имя устройства

+ DEVICE=/dev/nvme1n1
+ hdparm -z /dev/nvme1n1
+ file -s /dev/nvme1n1
+ partprobe /dev/nvme1n1
+ blockdev --rereadpt -v /dev/nvme1n1
+ fdisk -l /dev/nvme1n1
++ lsblk -p -n -P -o NAME,TYPE,FSTYPE,LABEL,MOUNTPOINT /dev/nvme1n1
++ sed 's/ /;/g'
++ grep part
+ result='NAME="/dev/nvme1n1p1";TYPE="part";FSTYPE="";LABEL="";MOUNTPOINT=""'

вернуло список партиций, но не вернуло типы файловых систем и метки томов. в 18.04.1 в этом месте я сразу получал все что мне надо.

2 проход - берем данные фстайп, метки томов по найденой партиции в проходе 1

+ DEVICE=/dev/nvme1n1p1
+ hdparm -z /dev/nvme1n1p1
+ true
+ file -s /dev/nvme1n1p1
+ partprobe /dev/nvme1n1p1
+ blockdev --rereadpt -v /dev/nvme1n1p1
+ true
+ fdisk -l /dev/nvme1n1p1
++ lsblk -p -n -P -o NAME,TYPE,FSTYPE,LABEL,MOUNTPOINT /dev/nvme1n1p1
++ sed 's/ /;/g'
++ grep part
+ result='NAME="/dev/nvme1n1p1";TYPE="part";FSTYPE="ext4";LABEL="data-volume";MOUNTPOINT=""'

так вот собственно 2 вопроса:
1. какого оно стало вести себя в 18.04.3 не так как в версии 18.04.1?
2. какой есть надежный способ заставить систему видеть все что есть на дисках не используя целуя пачку команд?

что самое интересное, если не трогать волум при инициализации системы, а зайти в нее после старта и ручками сказать lsblk -p -n -P -o NAME,TYPE,FSTYPE,LABEL,MOUNTPOINT /dev/nvme1n1

то я вижу все данные как и в версии убунты 18.04.1

wtf и что с этим делать?

--- GoldED+ 1.1.5-031023 (WinNT 5.1.2600-Service_Pack_3 i1586)
* Origin: [icq:122018120] [mailto:zabolotny[at]hotbox.ru] (2:469/122.2)

К главной странице гейта
Powered by NoSFeRaTU`s FGHIGate
Открытие страницы: 0.040548 секунды