Bug 33180 - Ошибка указания типа раздела в rules для udev для альтовых гибридов на флешке
Summary: Ошибка указания типа раздела в rules для udev для альтовых гибридов на флешке
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: udisks2 (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Yuri N. Sedunov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-02-27 20:56 MSK by Speccyfighter
Modified: 2017-04-11 17:38 MSK (History)
4 users (show)

See Also:


Attachments
udev rules fix в udisks2 для альтовых гибридов (449 bytes, text/plain)
2017-02-27 21:07 MSK, Speccyfighter
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Speccyfighter 2017-02-27 20:56:24 MSK
Всем доброго времени суток!

Неверный комментарий и неверный тип раздела в одном из правил udev в контексте альтовых гибридов.
Из-за этого альтовые гибридные образы записанные на флешку, в системах на udisks2, в thunar например, не отображаются и не будут при подключении такой гибридной флешки в usb-порт.

Суть:

# rpm -qf /lib/udev/rules.d/80-udisks2.rules
udisks2-2.1.9-alt0.1.i586


Альтовый гибридный образ (тип раздела 17h):

# fdisk -l alt-p8-sysv-xfce-20161212-i586.iso 
Диск alt-p8-sysv-xfce-20161212-i586.iso: 816 MiB, 855638016 байт, 1671168 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0x3523f5ea

Устр-во                             Загрузочный начало   Конец Секторы Размер Идентификатор Тип
alt-p8-sysv-xfce-20161212-i586.iso1 *               64 1671167 1671104   816M            17 Скрытый HPFS/NTFS


HintIgnore в true - файловая гибридного образа в thunar не отображается:

# udisksctl info -b /dev/sdb1|grep ' Device:\|Hint\|Label\| Type'
    Device:                     /dev/sdb1
    HintAuto:                   true
    HintIconName:               
    HintIgnore:                 true
    HintName:                   
    HintPartitionable:          true
    HintSymbolicIconName:       
    HintSystem:                 false
    IdLabel:                    ALT p8 xfce-sysv/i586
    Type:               0x17


потому что в правиле, для альтовых гибридов, неверно указан тип раздела:
- указан тип 0x00

# tail -n9 /lib/udev/rules.d/80-udisks2.rules
# Content created using isohybrid (typically used on CDs and USB
# sticks for bootable media) is a bit special insofar that the
# interesting content is on a DOS partition with type 0x00 ... which
# is hidden above. So undo this.
#
# See http://mjg59.dreamwidth.org/11285.html for more details
#
ENV{ID_PART_TABLE_TYPE}=="dos", ENV{ID_PART_ENTRY_TYPE}=="0x0", ENV{ID_PART_ENTRY_NUMBER}=="1", ENV{ID_FS_TYPE}=="iso9660|udf", ENV{UDISKS_IGNORE}="0"


- должно быть для альтов 0x17 (скрытый NTFS)
Правило должно делать hidden undo для гибридных альтовых образов, номер раздела 1.

Должно быть (исправлен комментарий и правило для ID_PART_ENTRY_TYPE)

# Content created using isohybrid (typically used on CDs and USB
# sticks for bootable media) is a bit special insofar that the
# interesting content is on a NTFS partition with type 0x17 ... which
# is hidden above. So undo this.
#
# See http://mjg59.dreamwidth.org/11285.html for more details
#
ENV{ID_PART_TABLE_TYPE}=="dos", ENV{ID_PART_ENTRY_TYPE}=="0x17", ENV{ID_PART_ENTRY_NUMBER}=="1", ENV{ID_FS_TYPE}=="iso9660|udf", ENV{UDISKS_IGNORE}="0"


После исправления по-быстрому

# tail -n10 /lib/udev/rules.d/80-udisks2.rules

# Content created using isohybrid (typically used on CDs and USB
# sticks for bootable media) is a bit special insofar that the
# interesting content is on a DOS partition with type 0x00 ... which
# is hidden above. So undo this.
#
# See http://mjg59.dreamwidth.org/11285.html for more details
#
#ENV{ID_PART_TABLE_TYPE}=="dos", ENV{ID_PART_ENTRY_TYPE}=="0x0", ENV{ID_PART_ENTRY_NUMBER}=="1", ENV{ID_FS_TYPE}=="iso9660|udf", ENV{UDISKS_IGNORE}="0"
ENV{ID_PART_TABLE_TYPE}=="dos", ENV{ID_PART_ENTRY_TYPE}=="0x17", ENV{ID_PART_ENTRY_NUMBER}=="1", ENV{ID_FS_TYPE}=="iso9660|udf", ENV{UDISKS_IGNORE}="0"
[/code]

HintIgnore в false и в thunar отображается

# udisksctl info -b /dev/sdb1|grep ' Device:\|Hint\|Label\| Type'
    Device:                     /dev/sdb1
    HintAuto:                   true
    HintIconName:               
    HintIgnore:                 false
    HintName:                   
    HintPartitionable:          true
    HintSymbolicIconName:       
    HintSystem:                 false
    IdLabel:                    ALT p8 xfce-sysv/i586
    Type:               0x17

Для проверки требуется переподключение usb-флеш.
Comment 1 Speccyfighter 2017-02-27 21:07:16 MSK
Created attachment 6991 [details]
udev rules fix в udisks2 для альтовых гибридов

Исправляет комментарий и правило в этих строках:

# cat -n /lib/udev/rules.d/80-udisks2.rules|tail -n9
   144	
   145	# Content created using isohybrid (typically used on CDs and USB
   146	# sticks for bootable media) is a bit special insofar that the
   147	# interesting content is on a DOS partition with type 0x00 ... which
   148	# is hidden above. So undo this.
   149	#
   150	# See http://mjg59.dreamwidth.org/11285.html for more details
   151	#
   152	ENV{ID_PART_TABLE_TYPE}=="dos", ENV{ID_PART_ENTRY_TYPE}=="0x0", ENV{ID_PART_ENTRY_NUMBER}=="1", ENV{ID_FS_TYPE}=="iso9660|udf", ENV{UDISKS_IGNORE}="0"
Comment 2 Michael Shigorin 2017-02-28 17:58:55 MSK
На всякий: пятого марта будет бета стартеркитов, если охота в весенние положить -- было бы здорово успеть в p8 до выходных.
Comment 3 Speccyfighter 2017-04-11 14:11:23 MSK
Этот багрепорт можно закрывать.

Исправлено:

# rpm -qf /lib/udev/rules.d/80-udisks2.rules 
udisks2-2.6.4-alt3.i586

# sed -n '153,155p' /lib/udev/rules.d/80-udisks2.rules 
# ALT Linux bootable iso has NTFS (0x17) partition
# https://bugzilla.altlinux.org/show_bug.cgi?id=33180
ENV{ID_PART_TABLE_TYPE}=="dos", ENV{ID_PART_ENTRY_TYPE}=="0x17", ENV{ID_PART_ENTRY_NUMBER}=="1", ENV{ID_FS_TYPE}=="iso9660|udf", ENV{UDISKS_IGNORE}="0"

Теперь работает как и должно.
Это может быть особенно важно для пользователей инсталляционных образов.
Спасибо Юра за исправление и оперативность.
Comment 4 Andrey Cherepanov 2017-04-11 15:05:23 MSK
Закрываем.
Comment 5 Michael Shigorin 2017-04-11 17:38:25 MSK
(В ответ на комментарий №3)
> Это может быть особенно важно для пользователей инсталляционных образов.
У них обычно p8, а там udisks2-2.1.x -- на нём что, аналогично?

> Спасибо Юра за исправление и оперативность.
+1 :)