Эксперимент с монтированием )))

Разговоры ни о чём

Модератор: vadim64

v8r1sx
проходил мимо

Эксперимент с монтированием )))

Непрочитанное сообщение v8r1sx » 2010-07-09 19:55:36

Привет всем. На днях ковырял пару приводов в странном полурабочем состоянии, и чет поднадоело монтировать носители разные руками в консоли, и поэтому придумал немного нелепый способ как это сделать :smile:

В /boot/loader.conf такие записи добавил

Код: Выделить всё

cd9660_iconv_load="YES"
udf_iconv_load="YES"
msdosfs_iconv_load="YES"
потом нужно разрешить моунт от юзера

Код: Выделить всё

sysctl vfs.usermount=1
ну или добавить запись в /etc/sysctl.conf

дальше я выставил права на папку /mnt, лениво было делать каталог куда монтировать флеху ))

Код: Выделить всё

chown wolf /mnt

у меня например каталог /mnt выглядит так 

[root@atom ~]# ls -al /mnt/
total 6
drwxr-xr-x   7 wolf  wheel  512 25 май 20:55 .
drwxr-xr-x  21 root  wheel  512  9 июл 14:57 ..
drwxrwxrwx   2 wolf  wheel  512  9 июл 14:29 flash
drwxrwxrwx   2 root  wheel    0  1 янв  1970 smb
drwxr-xr-x   1 root  wheel    0 22 апр  2009 win1
drwxr-xr-x   1 root  wheel    0 22 апр  2009 win2
drwxr-xr-x   1 root  wheel    0 22 апр  2009 win3

Код: Выделить всё

[root@atom ~]# cat /etc/devfs.conf | grep cd0
#link	acd0	cdrom
perm    cd0     0660 // права доступа на устройство cd0

[root@atom ~]# ls -al /dev/cd*
crw-rw----  1 root  operator    0, 102  9 июл 18:07 /dev/cd0

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

 pw groupmod operator -m you_user_name

[root@atom ~]# cat /etc/group | grep operator
operator:*:5:root,wolf
 
далее написал простую сишную программку, конечно не идеал но думаю сойдет )))

Код: Выделить всё

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
	if (argc < 2 || argc > 2)
		return 1;
	else
	{
		switch(atoi(argv[1]))
		{
			case 1: // Параметр
				system("cdcontrol -f /dev/cd0 eject"); // команда 
				break;
			case 2:
				system("cdcontrol -f /dev/cd0 close");
				break;
			case 3:
				system("mount /cdrom");
				break;
			case 4:
				system("umount /cdrom");
				break;
			case 5:
				system("umount /cdrom");
				system("sleep 1");
				system("cdcontrol -f /dev/cd0 eject");
				break;
			case 6:
				system("cdcontrol -f /dev/cd0 close");
				system("sleep 1");
				system("mount /cdrom");
				break;
			case 7:
				system("mount /mnt/flash"); 
				break;
			case 8:
				system("umount /mnt/flash");
				break;
			default:
				break;
 		}
	}
	return 0;
}
// Компилируем например так ))) gcc -o mount mount.c 
// После этой операции у нас появится бинарный файл с именем mount для тех кто не вкурсе  =) 
// единственно что я не добавлял так это монтирование дисков с fs UDF эсть у меня такие
Мой fstab

Код: Выделить всё

[root@atom ~]# cat /etc/fstab 
# Device		Mountpoint 	         FStype	Options		Dump	Pass#
/dev/ad3s3b		none		        swap	sw		0	0
/dev/ad3s3a		/		        ufs	rw		1	1
/dev/acd0		        /cdrom		cd9660	ro,noauto,-CKOI8-R,    0	0
/dev/acd0		        /dvdrom		udf    ro,noauto,-CKOI8-R  	0	0
/dev/ad3s1               /mnt/win1      	ntfs    ro,-CKOI8-R     0 	0
/dev/ad3s5               /mnt/win2      	ntfs    ro,-CKOI8-R     0 	0
/dev/ad3s6               /mnt/win3      	ntfs    ro,-CKOI8-R     0 	0
/dev/da0s1        	/mnt/flash     	msdosfs rw,noauto,-Wkoi2dos,-Lru_RU.KOI8-R       0      0
proc                         /proc                 procfs     rw     0     0
Дальше я просто создал ярлычки на рабочем столе, и вписал в строке Команда:

Код: Выделить всё

/home/wolf/cc/mount 6
-> mount это у меня имя программы а 6 это параметр который мы ей передаем, типа что она должна делать, думаю там все понятно

Вообщем то казалось бы все, но возникло одно но, с приводом проблем нет ве работает но вот с флешкой возникла проблема так как это диманическое устройство то прав по умолчанию для моунта пользователю не хватает
поэтому добавим такую фещь в файде /etc/devd.conf
вроде как это можно сделать проще но до у меня чета не получилось.

Код: Выделить всё

attach 10 {
	match "device-name" "umass0";
	action "/home/wolf/mount.sh";
};
пишем скрипт который когда мы вставим флешку просто меняет права на устройство (da0 и da0s1 и тд...)

Код: Выделить всё

[root@atom ~]# cat ~wolf/mount.sh 
#!/bin/sh
sleep 1
chmod 664 /dev/da0*
#mount_msdosfs -Wkoi2dos -Lru_RU.KOI8-R /dev/da0s1 /mnt/flash/ если эту запись разкомментировать то у нас будет срабатывать автомонтирование, но чтобы отмонтировать нужны права рута хотя я могу и ошибаться
Эх немного позже наткнулся на статю Лиса и подумал зачем я это все делал :-D, так что не судите строго :smile:

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/


v8r1sx
проходил мимо

Re: Эксперимент с монтированием )))

Непрочитанное сообщение v8r1sx » 2010-07-09 20:47:11

Да я ж и говорю нелепый способ, а про hald я знаю только толку то у меня с ним мышка глючит, вернее перестает нормально функционировать, хотя в линухе все норм и как бы я не старался не все разделы монтируются и второй винт тоже хз почему, мне hald изначально какимто глюковатым показался, да и чтобы его завтавить нормально работать нада тоже применить кое какое усилие )), хотя в 8-ке не проверял может и будет все ок :smile:, я короч особого смысла в нем не вижу, просто не так часто диски ставлю, в основном флешка, и для моунта винтов хал мне вроди как и ненужен )).

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35466
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Эксперимент с монтированием )))

Непрочитанное сообщение Alex Keda » 2010-07-10 11:59:27

hald - это хорошо.
он, правда, через комп подглюкивает на экзотическом железе - но штука хорошая.
Убей их всех! Бог потом рассортирует...

v8r1sx
проходил мимо

Re: Эксперимент с монтированием )))

Непрочитанное сообщение v8r1sx » 2010-07-10 15:16:37

Та да конечно hald штука хорошая, всетаки нада будет ее помучать, но это как приеду, у меня вообщемно какая проблема с ним если я включаю любую usb мышь, (с ps/2 мышей проблем нету) то у нее перестает работать левая кнопка (двойной щелчек), и если я открываю или текстовый файл или терминал, неважно вообщем, что, при этом начинает тормозить клава, (подлючал и usb и ps/2 эфект одинаковый), вроди похоже на задержку, я набрал текст например ниче но произошло, двину мышу и текст после этого появляется )), а еще я когда то ставил gnom и заблочилась звуковуха но там понятно из-за чего.
Вобщем приеду разберусь с hald, нада будет всетаки всю доку перечитать :smile:
А и еще момент один непонятный с монтированим флешки от пользователя.
Если монтировать без параметров то монтируется без проблем

Код: Выделить всё

mount_msdosfs /dev/da0s1 /mnt/flash/
а если так то ругается

Код: Выделить всё

[wolf@atom /usr/home/wolf]$ mount_msdosfs -Wkoi2dos -Lru_RU.KOI8-R /dev/da0s1 /mnt/flash/
mount_msdosfs: msdosfs_iconv: Operation not permitted
но иногда и так в зависимости от прав
mount_msdosfs: /dev/da0s1: Operation not permitted
Но странносйть в том, что работало но почемуто перестало ))
Заменит что работань начинает после того как я хотя бы раз смонтировал рутом.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35466
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Эксперимент с монтированием )))

Непрочитанное сообщение Alex Keda » 2010-07-10 17:08:57

Код: Выделить всё

kldload msdosfs_iconv
Убей их всех! Бог потом рассортирует...

v8r1sx
проходил мимо

Re: Эксперимент с монтированием )))

Непрочитанное сообщение v8r1sx » 2010-07-10 17:19:56

С этим все ок

Код: Выделить всё

[wolf@atom /usr/home/wolf]$ kldstat | grep msdos
10    1 0xc1972000 1f98     msdosfs_iconv.ko

[wolf@atom /usr/home/wolf]$ cat /boot/loader.conf | grep msdo
msdosfs_iconv_load="YES"
Вобщем разобрался но не доконца, поставил гном все работает замечательно все винты примонтировались, внешние носители тоже монтируются без проблем и даже звуковуха заработала в гноме, можно терь и кеды 3-и ставить и радоваться ))
просмотрел конфиги и кое чего добавил, хотя там некоторое и лишнее

Код: Выделить всё

[wolf@atom /usr/home/wolf]$ cat /usr/local/etc/PolicyKit/PolicyKit.conf
<?xml version="1.0" encoding="UTF-8"?> <!-- -*- XML -*- -->

<!DOCTYPE pkconfig PUBLIC "-//freedesktop//DTD PolicyKit Configuration 1.0//EN"
"http://hal.freedesktop.org/releases/PolicyKit/1.0/config.dtd">

<!-- See the manual page PolicyKit.conf(5) for file format -->

<config version="0.1">
    <match user="root">
	<return result="yes"/>
    </match>
    <define_admin_auth group="wheel"/>
    
    <match action="org.freedesktop.hal.storage.mount-removable">
        <return result="yes"/>
    </match>
    
    <match action="org.freedesktop.hal.storage.mount-fixed">
        <return result="yes"/>
    </match>

    <match action="org.freedesktop.hal.storage.eject">
        <return result="yes"/>
    </match>
 
    <match action="org.freedesktop.hal.storage.eject">
        <return result="yes"/>
    </match>

    <match action="org.freedesktop.hal.storage.unmount-others">
        <return result="yes"/>
    </match>

    <match action="org.freedesktop.hal.lock">
        <return result="yes"/>
    </match>

</config>
Но проблема одна это мышка и клава, бывает мышкой пока не двину набраный текст не появится и у левой кнопачки двойной щелчек неработает чета ни в одной оболочке, буду пока дальше думать =)

v8r1sx
проходил мимо

Re: Эксперимент с монтированием )))

Непрочитанное сообщение v8r1sx » 2010-07-19 10:22:01

Здрасте всем еще раз приехал, и вспомнил что я просто не добавил в rc.conf

Код: Выделить всё

moused_enable="NO"
moused_nondefault_enable="NO"
И все стало на свой места, с кодировкой правда не разбрался еще интересно то что в kde4 проблем вроди как нету с этим при том что я локаль менял с KOI8-R на UTF-8, а вот в гноме и xfce4 вместо русских букв либо ничего нету либо знаки вопросов :)