On 24.10.2016 03:19, Valentin Nechayev wrote:

>>> У меня нет над ними ничего вообще. Это просто два диска.
>> А причем тогда fstab?
> 
> При том, что присутствует или /dev/ada1p1, или
> /dev/diskid/DISK-S1E2D7FYp1, но не одновременно.
> И если в fstab записан один, а GEOM выставила другой - загрузка
> ломается.

Погоди-погоди, или над дисками (над GEOM DISK) "нет ничего вообще",
включая GEOM_PART_*, или есть разделы. Одно из двух.

Не забываем про GEOM DISK, именно он вынимает серийный номер из диска
и засовывает его в атрибут GEOM::ident, откуда GEOM LABEL его берет
для генерации diskid:

# geom disk status | grep ada[12]
ada1     N/A  N/A
ada2     N/A  N/A
# geom disk list ada2 | grep ident
   ident: WD-WCAWFA251128

>> Если "просто два диска" без разметки, понимаемой
>> GEOM_PART_*, то никакой GEOM и не занимает диски и не мешает созданию diskid,
>> тогда это штатное поведение системы. Если после этого нечто вроде ZFS
>> откроет diskid, то ada* пропадут. Так и задумано.
> 
> В данном случае я вообще привёл id _свопа_. Никакой ZFS тут не
> участвует.

Неважно, своп тоже открывается ядром при выполнении swapon, та же хрень.

> Но такое же происходит и с двумя соседними UFS разделами,
> причём со всеми одновременно - у ada1 или появляются p1, p2..., 
> или у serialʼа диска появляются подзаписи p1, p2... в diskid.

Появляется всё, просто diskid пропадает в момент монтирования.
Или пропадает ada* при открытии diskid. Или ada* не появляется,
потому что кто-то собрал ядро вообще без GEOM_PART_*

> А, значит, по сравнению с тем, что ты говоришь - кто-то таки мешает
> созданию diskids, причём для всего диска.

Я же показал, что diskid не видно просто потому, что соответствующие
объекты заняты геомами PART_*

>> Упомянутый loader tunnable запрещает создание diskid полностью.
>> Скорее всего, тебе надо его выставить в ноль и расслабиться.
> 
> Я, наоборот, предпочёл бы видеть, как будто он всегда в 1, а лучше в 2
> (чтобы присутствовали оба варианта). :)

Оба одновременно при открытых провайдерах на фре не бывает afaik.
 
>>> Ага. То есть может быть race?
>>
>> Не думаю, ни разу не видел race в GEOM, там всё детерминировано,
>> хотя и не очевидным образом. У разных GEOM разные свойства - кто-то
>> захватывает диск эксклюзивно, кто-то нет; кто-то получает его на 
>> "обнюхивание"
>> (taste) раньше, кто-то позже.
> 
> Тем не менее, что-то там работает неустойчиво.
> На текущей загрузке есть, например, /dev/ada0s1 и /dev/ada0s2e,
> но нет /dev/ada0s1c; на предыдущей к этим двум были и /dev/ada0s1c,
> и /dev/ada0s1ce (!!) и аналогично для остальных букв под ним.

В десятке не бывает ada0s1c, afaik. Ты уверен, что грузил десяточное ядро в тот 
момент?

> К сожалению, если не просить verbose boot, dmesg этого ничего не
> пишет, так что все сегодняшние чудеса в логах не отразились. Знал бы
> прикуп - сохранил бы kern.geom.confxml для истории.

Пробуй воспроизвести или забей.


Ответить