LinuxForum.Fans
Тема

Монтирование и запись фат32

Автор: redgy92 80 сообщений 13591 просмотров
#147002
mvt написал:
Вот у меня и не само... Не нашел, где посмотреть это правило

для начала следует почитать дядю Фёдора: http://www.posix.ru/system/udev_short/
потом пилить

text
# cat /etc/udev/rules.d/70-persistent-cd.rules 
# This file was automatically generated by the /lib/udev/write_cd_rules
# program, run by the cd-aliases-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and set the $GENERATED variable.

# USB_Mass_Storage_Disk (pci-0000:00:1f.4-usb-0:2:1.0-scsi-0:0:0:1) SUBSYSTEM=="block", ENV{ID_CDROM}=="?*", ENV{ID_SERIAL}=="Generic_USB_Mass_Storage_Disk_001005270ACFF3CCBDA0", SYMLINK+="cdrom0", ENV{GENERATED}="1" SUBSYSTEM=="block", ENV{ID_CDROM}=="?*", ENV{ID_SERIAL}=="Generic_USB_Mass_Storage_Disk_001005270ACFF3CCBDA0", SYMLINK+="cdrom", ENV{GENERATED}="1"

но я не пробовал...
к тому-же, у меня похоже как-то всё хитрее. не знаю как... Кстати, из гуя никак?

#147056
drBatty написал:
Кстати, из гуя никак?

Из гуя - ntfs, запросто. Проверил на убунте. В виндовс флешки с ntfs монтируются?
PS Мутно как-то у дяди Федора, про локали нет ничего...

#147076
mvt написал:
Из гуя - ntfs, запросто.

ну а в чём беда тогда?

mvt написал:
Мутно как-то у дяди Федора, про локали нет ничего...

ну как-бы там вообще мутно... даже сейчас. особенно в бубунте.

#147100
drBatty написал:
[quote=mvt]Из гуя - ntfs, запросто.

ну а в чём беда тогда?[/quote]
Ну как бы флешки все форматируют в fat/fat32


ну как-бы там вообще мутно... даже сейчас. особенно в бубунте.

Нашел файл /usr/share/hal/fdi/policy/10osvendor/30-locale-policy.fdi, подписал туда для "vfat" вместо "volume.policy.mount_option.iocharset=utf8" - "volume.policy.mount_option.codepage=866,iocharset=utf8", теперь при присоединении флешки (монтируется автоматически, если открыть - кракозябры), отмонтирую и снова монтирую в гуе - кодировка становится читаемой. Нужно это как-то автоматизировать :)
В убунте такого файла нет, вообще не понял, как она устанавливает кодировку

#147109

/dev/sda2 /media/data ntfs-3g rw,nosuid,nodev,allow_other 0 0

пример нтфс, allow_other разрешает запись пользователю (не только руту).


если в системе locale правильные никакие codepage,iocharset не нужны емнип.

как оно смонтировалось можно посмотреть через
cat /etc/mtab

P.S. не все опции mtab применимы в fstab

#147127

krab
Тема как бы про fat32, а не ntfs

#147179
mvt написал:
Нашел файл /usr/share/hal/fdi/policy/10osvendor/30-locale-policy.fdi, подписал туда для "vfat" вместо "volume.policy.mount_option.iocharset=utf8" - "volume.policy.mount_option.codepage=866,iocharset=utf8", теперь при присоединении флешки (монтируется автоматически, если открыть - кракозябры), отмонтирую и снова монтирую в гуе - кодировка становится читаемой. Нужно это как-то автоматизировать :)
В убунте такого файла нет, вообще не понял, как она устанавливает кодировку

grep -iR vfat /usr/share/hal/fdi/policy/ не поможет найти файл в убунте?

я вообще у себя на gentoo не выставлял кодировку, сколько другим уже скидывал на флехи русификация норм под виндой, ну и уменя нормально все после того как мне скинут из под винды.
в файле /usr/share/hal/fdi/policy/10osvendor/20-storage-methods.fdi прописано так

Показать
<!-- allow these mount options for vfat -->
<match key="volume.fstype" string="vfat">
<match key="/org/freedesktop/Hal/devices/computer:system.kernel.name" string="Linux">
<append key="volume.mount.valid_options" type="strlist">utf8</append>
<append key="volume.mount.valid_options" type="strlist">shortname=</append>
<append key="volume.mount.valid_options" type="strlist">codepage=</append>
<append key="volume.mount.valid_options" type="strlist">iocharset=</append>
<append key="volume.mount.valid_options" type="strlist">umask=</append>
<append key="volume.mount.valid_options" type="strlist">dmask=</append>
<append key="volume.mount.valid_options" type="strlist">fmask=</append>
<append key="volume.mount.valid_options" type="strlist">uid=</append>
<append key="volume.mount.valid_options" type="strlist">flush</append>
</match>

монтирует флэху с такими параметрами cat /proc/mounts :

text
/dev/sde1 /media/FREE-DOS vfat rw,nosuid,nodev,relatime,uid=xxx,gid=xxx fmask=0022,dmask=0077,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0

А что в убунте какие то проблемы с кодировкой по умолчанию?

#147254
ormorph написал:

А что в убунте какие то проблемы с кодировкой по умолчанию?

В том-то и дело, что убунта корректно отображает текст в вин кодировке и, наоборот, вин корректно отображает текст из убунты (винды нет, использовал убунту в качестве образца). У меня (в PCLinuxOS) все параметры те же, но отображается некорректно при автоматическом монтировании

Показать
<!-- allow these mount options for vfat -->
<match key="volume.fstype" string="vfat">
<match key="/org/freedesktop/Hal/devices/computer:system.kernel.name" string="Linux">
<append key="volume.mount.valid_options" type="strlist">utf8</append>
<append key="volume.mount.valid_options" type="strlist">shortname=</append>
<append key="volume.mount.valid_options" type="strlist">codepage=</append>
<append key="volume.mount.valid_options" type="strlist">iocharset=</append>
<append key="volume.mount.valid_options" type="strlist">umask=</append>
<append key="volume.mount.valid_options" type="strlist">dmask=</append>
<append key="volume.mount.valid_options" type="strlist">fmask=</append>
<append key="volume.mount.valid_options" type="strlist">uid=</append>
<append key="volume.mount.valid_options" type="strlist">flush</append>
</match>
text
/dev/sdc1 /media/disk-13 vfat rw,nosuid,nodev,noatime,uid=500,fmask=0022,dmask=0022,codepage=cp437,iocharset=iso8859-1,shortname=lower,utf8,flush,errors=remount-ro 0 0

Возможно, нужно сделать, чтобы флешка автоматически не монтировалась, а просто появлялась в списке подключенных устройств?
PS Вообще, это какие-то неправильные параметры codepage все-таки должна быть 866, нет?

#147262
mvt написал:
Вообще, это какие-то неправильные параметры codepage все-таки должна быть 866, нет?

параметры правильные, HAL устаревший и кривой. Либо пропатчите и пересоберите, как делают юзвери арча-крысы, либо используйте более современный HAL.

Это скорее всего проигнорит codepage.

#147263

drBatty
Да я не столько для себя... Я могу файлы называть и латиницей :) Да и сделал уже (см. выше) Теперь вопрос такой - где подписать,

чтобы флешка автоматически не монтировалась, а просто появлялась в списке подключенных устройств?
#147270
mvt написал:
чтобы флешка автоматически не монтировалась, а просто появлялась в списке подключенных устройств?

в опциях написать noauto
только не спутайте с третьим столбцом в /etc/fstab - там auto значит "автоматическое определение ФС", а в четвёртом - автомантирование при загрузке (по дефолту)

#147274
drBatty написал:
[quote=mvt]чтобы флешка автоматически не монтировалась, а просто появлялась в списке подключенных устройств?

в опциях написать noauto
только не спутайте с третьим столбцом в /etc/fstab - там auto значит "автоматическое определение ФС", а в четвёртом - автомантирование при загрузке (по дефолту)[/quote]
Да нет ее в fstab :) Там вообще ничего нет
[console][mvt@localhost ~]$ cat /etc/fstab
# Entry for /dev/sdb3 :
UUID=45179c71-5058-4874-9705-ffc2d069581a / ext4 defaults 1 1
none /proc proc defaults 0 0
# Entry for /dev/sda2 :
UUID=f7b92c0f-0d47-7e8b-1f1c-896bd8a5baba swap swap defaults 0 0
none /dev/pts devpts defaults 0 0[/console]
Это где то в HAL (udev?) искать...

#147277

mvt
скудновато написано чтобы понять что вы конкретно сделали.
например какой оконный менеджер вы используете, где правили, ну и сам конфиг после изменений которого у вас стало монтироваться автоматом. ?
DBUS запущен?

#147281
mvt написал:
Это где то в HAL (udev?) искать...

угу. причём искать файл бесполезно - его нет. И что-бы сменить настройку, надо его создать гуем, или ручками.

ormorph написал:
например какой оконный менеджер вы используете, где правили, ну и сам конфиг

угу...

#147292
ormorph написал:
mvt
скудновато написано чтобы понять что вы конкретно сделали.
например какой оконный менеджер вы используете, где правили, ну и сам конфиг после изменений которого у вас стало монтироваться автоматом. ?
DBUS запущен?

Монтировались сразу, после установки автоматом "по умолчанию". Использую PCManFM

text
[mvt@localhost ~]$ cat /home/mvt/.config/pcmanfm/default/pcmanfm.conf
[config]
bm_open_method=0
su_cmd=gksu %s

[volume] mount_on_startup=0 mount_removable=0 autorun=0 ну и т.д.

Монтирует автоматом все равно.
DBUS запущен:
[console][mvt@localhost ~]$ ps -U mvt | grep dbus
1666 ? 00:00:00 dbus-launch
1668 ? 00:00:00 dbus-daemon[/console]

#147303

mvt
строчка присутствует в /etc/dbus-1/system.d/hal.conf
send_interface="org.freedesktop.Hal.Device.Volume.Mount
?

#147307

ormorph

Показать
<!DOCTYPE busconfig PUBLIC
"-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>

<!-- This configuration file specifies the required security policies
for the HAL to work. -->

<!-- Only root or user haldaemon can own the HAL service -->
<policy user="haldaemon">
<allow own="org.freedesktop.Hal"/>
</policy>
<policy user="root">
<allow own="org.freedesktop.Hal"/>
</policy>

<!-- Allow anyone to invoke methods on the Manager and Device interfaces -->
<policy context="default">
<allow send_destination="org.freedesktop.Hal"
send_interface="org.freedesktop.DBus.Introspectable"/>
<allow send_destination="org.freedesktop.Hal"
send_interface="org.freedesktop.DBus.Properties" />

<allow send_destination="org.freedesktop.Hal"
send_interface="org.freedesktop.Hal.Device"/>
<allow send_destination="org.freedesktop.Hal"
send_interface="org.freedesktop.Hal.Manager"/>

<allow send_destination="org.freedesktop.Hal"
send_interface="org.freedesktop.Hal.Device.CPUFreq"/>
<allow send_destination="org.freedesktop.Hal"
send_interface="org.freedesktop.Hal.Device.DockStation"/>
<allow send_destination="org.freedesktop.Hal"
send_interface="org.freedesktop.Hal.Device.KillSwitch"/>
<allow send_destination="org.freedesktop.Hal"
send_interface="org.freedesktop.Hal.Device.KeyboardBacklight"/>
<allow send_destination="org.freedesktop.Hal"
send_interface="org.freedesktop.Hal.Device.LaptopPanel"/>
<allow send_destination="org.freedesktop.Hal"
send_interface="org.freedesktop.Hal.Device.Leds"/>
<allow send_destination="org.freedesktop.Hal"
send_interface="org.freedesktop.Hal.Device.LightSensor"/>
<allow send_destination="org.freedesktop.Hal"
send_interface="org.freedesktop.Hal.Device.Storage"/>
<allow send_destination="org.freedesktop.Hal"
send_interface="org.freedesktop.Hal.Device.Storage.Removable"/>
<allow send_destination="org.freedesktop.Hal"
send_interface="org.freedesktop.Hal.Device.SystemPowerManagement"/>
<allow send_destination="org.freedesktop.Hal"
send_interface="org.freedesktop.Hal.Device.Volume"/>
<allow send_destination="org.freedesktop.Hal"
send_interface="org.freedesktop.Hal.Device.Volume.Crypto"/>
<allow send_destination="org.freedesktop.Hal"
send_interface="org.freedesktop.Hal.Device.WakeOnLan"/>

</policy>

</busconfig>

#147325

Хм это не DBUS точно монтирует.
Попробуйте создать файл в /usr/share/hal/fdi/policy/10osvendor/
например policy-fixed-device.fdi
со следующим содержанием:

text
<?xml version="1.0" encoding="UTF-8"?> <!-- -*- SGML -*- -->
<deviceinfo version="0.2">
<device>
  <match key="@block.storage_device:storage.hotpluggable" bool="false">
    <match key="@block.storage_device:storage.removable" bool="false">
      <merge key="volume.ignore" type="bool">true</merge>
    </match>
  </match>
</device>
</deviceinfo>

может поможет?

#147328

ormorph
Перестал не только монтировать, но и отображать в фм все разделы, кроме флешки и CD - диска (а их монтирует автоматически) :)

#147338

mvt
Учитывая что у вас через PCManFM монтируется все норм, с кодировкой, то скорее всего у вас флешка монтируется через udev.
Так как PCManFM монтирует через hal

попробуйте создать в каталоге /etc/udev/rules.d/ (если он присутствует) файл 99-block-storage.rules
со след содержимым:

text
ATTRS{removable}=="1", SUBSYSTEMS=="block", NAME=""

после этого перезагрузитесь.

Войдите или зарегистрируйтесь, чтобы ответить.