среда, 23 февраля 2011 г.

Linux совместимые девайсы

Вот недавно в районе НГ мне подарили Bluetooth мышь A4Tech BT-630 и USB Bluetooth адаптер D-link DBT-122.
На тот момент на компьютере стояла Ubuntu 10.04, под которой эта связка сразу же заработала, а для WindowsXP пришлось поставить драйвер с сайта D-link.
Где-то в районе первых чисел февраля, как это бывает каждый год, Ubuntu довела меня своими глюками, поэтому после формата винтов были установлены Windows7 и в противовес ей OpenSUSE 11.3.
Выбор на SUSE пал из-за родного KDE4, т.к. хотелось поиграться с Plasm'ой. Конечно на этапе установки мышь не работала (вот тут минус всех bluetooth-устройств), но после окончания установки (и настройки утилиты KBluetooth кажется) снова резво бегала по экрану.
А вот в Windows7 в отличие от XP адаптер нашла сама и мышка также просто подключается, однако драйвера с сайта Dlink лучше не ставить, возможны проблемы с подключением.

Сегодня 23 женушка подарила веб-камеру A4Tech PK-750MJ, дешевая китайская камера.


Но что интересно под обоими системами (Windows7 и OpenSUSE 11.3) заработала без проблем и настроек. Просто воткнул и работай... Красота!

суббота, 15 января 2011 г.

SSH под Windows или как мы настроили защищенный удаленный рабочий стол. (Часть 2)

В прошлой статье мы установили SSH-сервер и сгенерировали пару ключей. Теперь же я просто покажу как можно подключиться к этому всему и как пробросить  RDP-порты.

Итак Putty мы уже установили, поэтому запустим его и приступим к настройке подключения. На вкладке Session:



Внесем IP-адрес нашего SSH-сервера и порт на котором он ждет подключения. Здесь же можно после окончания всех настроек сохранить сессию, чтобы конфигурировать все каждый раз.
Далее перейдем на закладку Windows->Translation:



Здесь мы вручную укажем кодировку СР866, потому что именно в ней нам будет выдавать консоль ОС Windows.
Перейдем на вкладку Connection->Data:


На данной вкладке укажем укажем логин пользователя, для того чтобы не вводить его каждый раз вручную. И перейдем на вкладку Connection->SSH->Auth:



Нажмем на ней кнопку Browse и укажем путь к приватному ключу. Теперь вернемся на вкладку Session и сохраним настройки под любым именем.
А теперь коннект! Смело жмем Open и если все правильно, то выскакивает окно сообщающие цифровую подпись ssh-сервера, нажмем здесь Yes (это нужно для того, чтобы в следующий раз ваш пк знал, что подключился к правильному серверу). Далее мы видим приглашение ввести кодовую фразу:


После ввода корректной фразы у вас откроется штатная консоль управления с правами System (так что осторожней). После того как мы все сделали пишем команду EXIT, для корретного закрытия сессии.
Ну вот коннектиться к шеллу удаленной машины мы можем, теперь самое вкусное - проброс портов!

Для этого все настройки оставляем как в первом случае только добавляется еще одна на вкладке Connection->SSH->Tunnels:



Тут в "Source port" мы пропишем любой свободный локальный порт нашего пк, например: 9999, а в Destination пропишем IP-адрес сервера внутри локальной сети (на который мы хотим пробросить RDP). Выставим флаги Local и IPv4. И сохранив конфигурацию нажмем Open и введем парольную фразу.

И что? - спросите вы- Перед нами опять системная консоль!
Да консоль та! - скажу я - Да сессия не та! :)

Консоль не закрываем! Открываем RDP-клиент (например тот что зовется "Удаленный рабочий стол") и коннектимся по адресу - localhost:9999



Жмем Подключить и...



видим стандартное окно логина, как будто мы с сервером в одной локальной сети :)
Все, устойчивых вам коннектов!

пятница, 14 января 2011 г.

SSH под Windows или как мы настроили защищенный удаленный рабочий стол. (Часть 1)

Как известно в ОС Windows никогда не было штатного SSH-сервера и очень зря, т.к. это очень полезная и интересная штучка. 
Secure SHell  — сетевой протокол сеансового уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений (например, для передачи файлов). Сходен по функциональности с протоколами Telnet и rlogin, но, в отличие от них, шифрует весь трафик, включая и передаваемые пароли. SSH допускает выбор различных алгоритмов шифрования.
Как раз на днях назрела проблема с удаленным доступом к внутренним серверам корпоративной сети и я решился убить время на установку SSH-сервера. Я перепробовал несколько вариантов бесплатных серверов (CopSSH, OpenSSH fo Windows, SSHD из Cygwin, KpyM SSH-ServerFreeSSHd). В силу подбора продукта под Windows, я искал простой в установке и функциональный сервер. По ряду причин таким оказался FreeSSHd.
В установке этого продукта нет ничего сложного, скачиваем дистрибутив с официального сайта и запускаем инсталляцию.
На запрос "Private keys should be created. Should I do it now?" (запрос на создание серверных RSA/DSA ключей) отвечаем да.
На запрос "Do you want run FreeSSHd as a system service?" (запрос на регистрацию FreeSSHd как системной службы) отвечаем по желанию. Если вам надо чтобы сервер запускался при старте компьютера без необходимости локального входа, то ставим да.
Далее идем Пуск->Программы->FreeSSHd->FreeSSHd либо вызываем его из системного трея. Появиться окно конфигурации, где мы перейдем на закладку SSH.


Здесь мы можем выбрать (описаны последовательно):
- на каком интерфейсе будет "висеть" сервер
- какой порт он будет "слушать"
- максимальное число подключений
- таймаут простоя сессии
- путь к файлу сообщения при  логине пользователя в систему
- путь до шелла пользователей (программа запускаемая при логине пользователя и обрабатывающая его команды)
- Флаг запуска SSH сервера при запуске службы freeSSHd
- Флаг "использование новой консоли", должен быть включен. Т.к. есть сообщения о подвисании сессии с опущенным флагом.
- Путь к RSA-ключу сервера
- Путь к DSA-ключу сервера.

Рекомендуется на данной вкладке настроить нестандартный порт,  дабы отсечь часть скриптов "little-хакеров".

Далее переходим на закладку Authentication:



Здесь мы можем изменить расположение папки публичных ключей (Public key folder), по умолчанию она указывает на папку программы, что мне не понравилось и я сменил его на подпапку с именем pub-keys.
Ну а самое главное тут можно глобально настроить методы аутентификации. Их два: парольная и публичным ключом. Каждый метод может находиться в состоянии: отключен (Disabled), разрешен (Allowed), запрашивается/обязательный (Required). На скриншоте выше показана конфигурация для аутентификации по ключу.

Далее перейдем на закладку Tunneling и разрешим использование туннелей (т.е. так называемый "проброс" портов одной машины на порты другой):



Ну и наконец нам осталось завести пользователя на сервере. Делается это на закладке Users:


Нажав на этой вкладке кнопку Add мы добавим пользователя. В появившемся окне пропишем логин, правила аутентификации, и права.
Тип аутентификации может быть:
- NT, применяем в случае использования Windows-пользователя. 
- парольная на хеше SHA-1, может быть использована в случае не желания использовать Windows-пользователей для входа.
- на публичных ключах, аналогична предыдущей. Только для входа используем ключ.

Права пользователя определяют флаги "User can use", это:
- использование шелла
- использование безопасного FTP
- использование туннелей

Ставим нужное (а для удаленного рабочего стола нам нужны права на туннели и возможно шелл, аутентификацию вберем по ключам) и нажимаем ОK->Применить->OK. После чего надо перезагрузить компьютер иначе аутентификация по ключам не будет работать (а будет выпадать ошибка "No supported authentication methods available").

Далее нам нужен SSH-клиент Pytty. Качаем пакет установщика, либо PuTTY + PuTTYgen.
Запускаем PuTTYgen:


В Parameters выставляем SSH-2 RSA и длину в 1024 бита, нажимаем Generate.


Далее активно водим мышкой по разным областям окна, т.к. на основе координат мыши генерируются случайные числа. По окончании генерации получим окно:


В этом окне в поле "Key comment" вводим имя пользователя, для которого создавали ключ (то имя которое регистрировали в FreeSSHd), это надо чтобы потом мучительно не вспоминать чей это ключ.
Далее выделаем весь текст в поле "Public key for pasting into OpenSSH..." и вставляем его в обычный текстовый файл одной строкой. Имя файла задаем обязательно совпадающее с именем пользователя FreeSSHd, а расширение (в данном случае TXT) убираем совсем. Все публичный ключ готов, но окно PuTTYgen рано закрывать.
Мы еще должны сохранить частный/приватный ключ. Для этого сначала введем кодовую фразу (любую, лишь бы запомнить) в поле "Key passphrase" и повторим ее в поле "Confirm passphrase"(это надо чтобы защитить ваш ключ, если он будет украден, то без этой фразы его применить будет нельзя). И нажмем "Save private key" сохранив под именем пользователя с расширением ppk.

Далее необходимо закачать публичный ключ на SSH-сервер, как мы помним что настраивали его на подпапку pub-key  в папке с программой. 

Все готово для коннекта. Подробности о коннекте и туннелировании RDP во второй части.



четверг, 18 ноября 2010 г.

Корень FreeBSD на почве ZFS или триумфальное возвращение чертей! :)

Да, да да! Это снова очередная статья о личном опыте использования ОС FreeBSD на основе  файловой системы ZFS. Но лучше много информации чем ее отсутствие :)
Лирическое...
Если вы периодически просматривали этот блог по диагонали, то очевидно заметили что FreeBSD в нем периодически мелькала (то как прокси для деления инета с другом, то сваливалась в десктоп ОС) и вот теперь я решил создать NAS на ее основе. Вы скажите ведь есть FreeNAS, зачем нам заморачиваться с FreeBSD? В ответ возражу что я просто люблю эту ОС, поэтому и обожаю копаться в ней. Вот и все. :)

Техническое...
О прекрасной файловой системе (не лишенной конечно недостатков как и все в нашем мире) ZFS вы и без меня в wikipedia прочитаете. Перебрав множество руководств в сети я остановился на официальном по адресу: wiki.freebsd.org/RootOnZFS/GPTZFSBoot/Mirror. В данном случае я ставил в конфигурации зеркала из 2 дисков по 640Гб.

Итак первым делом нам понадобиться DVD-диск с FreeBSD. У меня был диск 8.1-REALESE. Далее после автозапуска исталятора и выбора страны и языка выбираем Fixit. После чего запуститься sh.

1.  Создаем GPT-схему (в терминологии windows это ближе к понятию том) разбивки жестких дисков.
Fixit# gpart create -s gpt ad4
Fixit# gpart create -s gpt ad6
ad4 и ad6 это имена моих дисков. Посмотреть ваши вы можете выполнив:
Fixit# dmesg| grep SATA
Fixit# dmesg| grep IDE 
2. Создаем партиции (что-то вроде разделов) на них. Мы как и в рекомендации создадим 3 партиции:
- загрузочную в 64кб,
- подкачки на 4Гб,
- корень системы все оставшееся место (в данном случае 590Гб).

Своп партицию создали отдельно, т.к. в случае аварии на ZFS свопе краш-дамп не создаться. 
Fixit# gpart add -b 34 -s 128 -t freebsd-boot ad4
Fixit# gpart add -b 162 -s 8388608 -t freebsd-swap -l swap0 ad4
Fixit# gpart add -b 8388770 -s 590G -t freebsd-zfs -l disk0 ad4
Fixit# gpart add -b 34 -s 128 -t freebsd-boot ad6
Fixit# gpart add -b 162 -s 8388608 -t freebsd-swap -l swap1 ad6
Fixit# gpart add -b 8388770 -s 590G -t freebsd-zfs -l disk1 ad6
 Вот тут первая засада! Если не указывать параметр "-s" при создании последних партиций, то будет использовано все доступное место. Чего ж тут плохого спросите вы. А то что в зеркале 2 и более винчестера и реальные емкости у них тоже разные. На моих винчестерах WD серии Green на 640Гб "маркетинговой емкости" доступно реально 596Гб. А расхождение между винчестерами составило 528,25Мб! А это означает что если "упадет" больший диск, то зеркало не восстановиться.

Именно поэтому размер последней партиции = общая реальная емкость - 2 * расхождение в размере - своп - загрузочная - 2*17кб(GPT-таблица)

Расхождение в размере берем удвоенное, т.к. страхуемся вдруг третий винчестер, который когда нибудь придет на замену, будет содержать большее расхождение в емкости. Двойной размер GPT-таблиц обеспечен их двойным хранением в начале и конце диска. Я не стал заморачиваться и заложил на эти расходы 2.2Гб (да, наверно больше чем нужно, но я собираю NAS и данные на нем мои проекты мне чрезвычайно важны).

Реальный размер диска легко узнать выполнив:
Fixit# gpart list имя_диска
В разделе  Consumer параметр Mediasize.

Кстати в параметрах -b (смещение) и -s (длинна) применяется следующий вид аргументов:
- 0-9 =  LBA-блоки (1 блок 512Б)
- 0-9k = размер в килобайтах
- 0-9M = размер в мегабайтах
- 0-9G = размер в гигабайтах

Проверить корректность "разбивки диска" можно выполнив:
Fixit# gpart show имя_диска 
Если вы ошиблись при разметке, то вам помогут следующие команды:
- удаление партиции
Fixit# gpart delete -i номер_партиции имя_диска 
-удаление схемы (предварительно удалив все партиции)
Fixit# gpart destroy имя_диска 
Номер партиции можно увидеть либо через команду gpart list (параметр index), либо gpart show (3-й столбик).  Ну чтоже пойдем далее.

3. Установим защитный MBR-сектор и gptzfs-загрузчик:
Fixit# gpart bootcode -b /mnt2/boot/pmbr -p /mnt2/boot/gptzfsboot -i 1 ad4
Fixit# gpart bootcode -b /mnt2/boot/pmbr -p /mnt2/boot/gptzfsboot -i 1 ad6
В случае ошибки "operation not permitted" выполните:
Fixit# sysctl kern.geom.debugflags=0x10 
4. Загрузим модули поддержки ZFS:
Fixit# kldload /mnt2/boot/kernel/opensolaris.ko
Fixit# kldload /mnt2/boot/kernel/zfs.ko
5. Создадим ZFS-пул под названием zroot (название может быть любым):
Fixit# mkdir /boot/zfs
Fixit# zpool create zroot mirror /dev/gpt/disk0 /dev/gpt/disk1
Fixit# zpool set bootfs=zroot zroot
6. Создадим файловые системы в ZFS-пуле:
Сначала установим нужный нам механизм расчета контрольных сумм. В мануале рекомендован fletcher4. Я же установил sha256, т.к. он более устойчив, но и более "тяжелый" для процессора.
Fixit# zfs set checksum=fletcher4 zroot
Файловые системы оставим пока по умолчанию, ZFS тем и славиться что можно в любой момент что-то добавить не останавливая компьютер. 
Fixit# zfs create -o compression=on -o exec=on -o setuid=off zroot/tmp
Fixit# chmod 1777 /zroot/tmp
Fixit# zfs create zroot/usr
Fixit# zfs create zroot/usr/home
Fixit# cd /zroot ; ln -s /usr/home home
Fixit# zfs create -o compression=lzjb -o setuid=off zroot/usr/ports
Fixit# zfs create -o compression=off -o exec=off -o setuid=off zroot/usr/ports/distfiles
Fixit# zfs create -o compression=off -o exec=off -o setuid=off zroot/usr/ports/packages
Fixit# zfs create -o compression=lzjb -o exec=off -o setuid=off zroot/usr/src
Fixit# zfs create zroot/var
Fixit# zfs create -o compression=lzjb -o exec=off -o setuid=off zroot/var/crash
Fixit# zfs create -o exec=off -o setuid=off zroot/var/db
Fixit# zfs create -o compression=lzjb -o exec=on -o setuid=off zroot/var/db/pkg
Fixit# zfs create -o exec=off -o setuid=off zroot/var/empty
Fixit# zfs create -o compression=lzjb -o exec=off -o setuid=off zroot/var/log
Fixit# zfs create -o compression=gzip -o exec=off -o setuid=off zroot/var/mail
Fixit# zfs create -o exec=off -o setuid=off zroot/var/run
Fixit# zfs create -o compression=lzjb -o exec=on -o setuid=off
Fixit# chmod 1777 /zroot/var/tmp
7. Установим систему FreeBSD на диск:
Fixit# cd /dist/8.0-*
Fixit# export DESTDIR=/zroot
Fixit# for dir in base catpages dict doc games info lib32 manpages ports;do (cd $dir ; ./install.sh) ; done
Fixit# cd src ; ./install.sh all
Fixit# cd ../kernels ; ./install.sh generic
Fixit# cd /zroot/boot ; cp -Rlp GENERIC/* /zroot/boot/kernel/
8. Переключаем партицию /var/empty в readonly:
Fixit# zfs set readonly=on zroot/var/empty 
9. Перемонтируем корень системы: 
Fixit# chroot /zroot 
10. Создадим основной конфигурационный файл /etc/rc.conf.
Сначала скажем что наши тома используют ZFS: 
Fixit# echo 'zfs_enable="YES"' > /etc/rc.conf
Потом сообщим система ее имя:
 Fixit# echo 'hostname="nas.mydomain.local"' >> /etc/rc.conf
А за одно пропишем это в файл hosts (особенно если ваш домен, как например .local не может быть разрешен доступными DNS-серверами):
Fixit# echo '127.0.0.1     nas.mydomain.local' >> /etc/hosts
Именно с отсутствием этой записи (а вернее с невозможностью разрезолвить свое DNS-имя) были связаны и долгая загрузка самой системы на строке "configuring syscons: blanktime" и долгий старт mc.
Далее установим конфигурацию сетевой карты:
 Fixit# echo 'ifconfig_nfe0="DHCP"' >> /etc/rc.conf
Можно и по другому (статический адрес):
Fixit# echo 'ifconfig_nfe0="inet 192.168.0.3 netmask 255.255.255.0"' >> /etc/rc.conf
Fixit# echo 'defaultrouter="192.168.0.1"' >> /etc/rc.conf
во всех командах nfe0 - имя моей карты, узнать вашу вы можете так:
Fixit# dmesg | grep Network
или так
Fixit# ifconfig
При этом последняя команда покажет и псевдо-устройство lo0 (интерфейс локальной петли)

11.  Создадим конфигурационный файл загрузчика:
Fixit# echo 'zfs_load="YES"' > /boot/loader.conf
Fixit# echo 'vfs.root.mountfrom="zfs:zroot"' >> /boot/loader.conf
12. Установим загрузчик ZFS:
Fixit# echo 'LOADER_ZFS_SUPPORT=YES' > /etc/src.conf
Fixit# mount -t devfs devfs /dev
Fixit# export DESTDIR=""
Fixit# cd /usr/src/sys/boot/
Fixit# make obj
Fixit# make depend
Fixit# make
Fixit# cd i386/loader
Fixit# make install
13. Ставим пароль на root'a:
Fixit# passwd
14. Выбираем часовой пояс:
Fixit# tzsetup
15. Создаем базу alias'ов /etc/mail/aliases.db:
Fixit# cd /etc/mail
Fixit# make aliases
16. Отключаем текущий корень системы:
Fixit# umount /dev
Fixit# exit
17. Сохраняем файл конфигурации ZFS в каталоге корневой установленной системы (это один из важных файлов ZFS сохраните его потом в надежном месте):
Fixit# cp /boot/zfs/zpool.cache /zroot/boot/zfs/zpool.cache
18. Подключаем своп:
18.1 Вариант 1 - это использование всех партиций свопа как независимых. Для этого создаем файл fstab, описывающий конфигурацию файловых систем:
Fixit# cat << EOF > /zroot/etc/fstab
# Device Mountpoint FStype Options Dump Pass#
/dev/gpt/swap0 none swap sw 0 0
/dev/gpt/swap1 none swap sw 0 0
EOF
18.2 Вариант 2 - использование зеркалированного свопа (RAID-1)
18.2.1 Для второго варианта (а я использую его как самый устойчивый и просто интересный) нужно подгрузить модуль поддержки зеркала:
Fixit# kldload /mnt2/boot/kernel/geom_mirror.ko
18.2.2 Собрать зеркало:
Fixit# gmirror label -b prefer swap gpt/swap0 gpt/swap1
Вот тут тоже иногда ошибка скачет. Бывает пишет что не видит swap0 и в каталоге /dev/gpt/ файлы устройств swap0 и swap1 пропадают, то смотрим собралось ли зеркало:
Fixit# gmirror status
В случае успеха переходим далее.

18.2.3 Создаем файл fstab, описывающий конфигурацию файловых систем:
Fixit# cat << EOF > /zroot/etc/fstab
# Device Mountpoint FStype Options Dump Pass#
/dev/mirror/swap none swap sw 0 0
EOF
18.2.4 Добавляем в загрузчик модуль поддержки зеркала:
Fixit# echo 'geom_mirror_load="YES"' >> /zroot/boot/loader.conf
19. Выставим корректный путь к библиотекам:
Fixit# export LD_LIBRARY_PATH=/mnt2/lib 
20. Демонтируем все файловые системы ZFS:
Fixit# zfs unmount -a
Бывает и тут ошибка "device busy", тогда пишем:
Fixit# cd /
и повторяем предыдущую команду.

21. Установим точки загрузки для ZFS-пула:
Fixit# zfs set mountpoint=legacy zroot
Fixit# zfs set mountpoint=/tmp zroot/tmp
Fixit# zfs set mountpoint=/usr zroot/usr
Fixit# zfs set mountpoint=/var zroot/var

Все, готово! Выполняем exit и выходим из sysinstall с перезагрузкой.


четверг, 11 ноября 2010 г.

NVIDIA 8800GT и умелые ручки :)

(В статье приводиться личный опыт автора. За испорченное оборудование автор ответственности не несет. Все действия делаются на свой страх и риск. Кроме того данные действия лишают вас гарантии на устройство.)

Досталась мне тут плата NVIDIA 8800GT почти даром, со сломаной системой охлаждения. 

 
А поскольку хотелось собрать еще один комп, а покупать видеокарту совсем не хотелось, то решил я ее восстановить. Пробежавшись по магазинам заводской системы не нашлось по разумной цене, поэтому решил "слепить из того что было".

А был кулер Igloo под  CPU Socket. Достав инструменты (напильник, шуруповер/дрель, комплект сверл, относительно прямые руки) я принялся за работу.

Снял систему охлаждения (с обратной стороны карты отстегиваем пружинки с крючков).

Удалил остатки старой термопасты (она тут иногда присыхает, будьте осторожны при отделении радиатора от ядра микросхемы). В данном случае, термопаста хорошо растворясь спиртом.


После чего были отвинчены обе крепежные скобки с крючками от радиатора.


Потом берем линейку и снимаем размеры с радиатора. А точнее кординаты ответстий под резьбу шурупов и расположение углублений в радиаторе под крепежные скобки. Наносим все это хозяйство на радиатор от Socket'a примеряем и снимаем лишний аллюминий напильником для создания углублений под крепежные скобки. Величина глубины их равна толшине металла скобки. 




Сверлим отверстия чуть меньшего диаметра чем винты и вбиваем винты (как гвозди молотком) в металл. Аллюминий металл мягкий поэтому винты хорошо войдут и закрепятся.


Скотчем изолируем скобки от коротких замыканий на деталях. И так как одной стороной радиатор ложиться на PCI-порты я ее тоже заизолировал скотчем (на всякий).

После прикручиваем/приклеиваем к радиатору вентилятор (я использовал крепление проволкой).


Примеряем, наносим термопасту и устанавливаем на карту. Получаем монстра :)


Ремонт занял примерно 2 часа, из которых 1,5 я вытачивал углубления и сверлил отверстия добиваясь точности и мучаясь без тисков. Если вы как и я промахнулись с первого раза с отверстием, то возмите кусочек аллюминевой проволки  и забейте его в отверстие, сняв напильником лишний металл.

Монстр был установлен в компьютер и работает уже 2 меясяца без нареканий. 



Температура по показанию драйвера от Nvidia X Server Setting под Linux составляет 54-60 градусов С.



суббота, 2 октября 2010 г.

QMMP - Music Player

Мне давно не нравилось использовать монстроидальные Rhythmbox и Amarok, особенно когда я вспоминал об XMMS2 который был в FreeBSD5.6. И вот недавно решил поискать аналог в Linux.
Самого XMMS я не нашел, но был найден Qmmp. Ставиться он из штатного репозитария. Поддерживает скины от WinAmp версии 2.x, расширение файлов .wsz (их большая коллекция тут: http://www.customize.org/winamp2/skins?page=1), которые надо просто положить в папку ~/.qmmp/skins   (то есть /home//.qmmp/skins).
Проблему с кодировкой кирилицы (если ваша коллекция пришла еще с windows времен) можно решить так, идем в Настройки (QMMP) - Модули - Модуль mpeg - Кодировка IDv2 и там ставим CP1251.

воскресенье, 26 сентября 2010 г.

LVM2 в ubuntu 10.04

Это очередная заметка из цикла "Пляски с бубном или очередной глюк Ubuntu 10.04.01". Все началось из-за необходимости перенести с HDD занятого Fedora необходимые данные. HDD содержал два раздела boot (etx4) и LVM (внутри которого сидели / и /home, оба в ext4).

Согласно статье было проделанно следующее:
1-установленна поддержка lvm
sudo apt-get install lvm2
2-загружен модуль ядра
sudo modprobe dm-mod
3-производим поиск LVM-разделов (lvm_group)
sudo vgscan
4-активируем LVM-раздел
sudo vgchange name_your_lvm_group
5-производим поиск логических разделов на активированном LVM
sudo lvs
6-монтируем нужные логические разделы из числа найденных
sudo mount /dev/name_your_lvm_group/name_logic_partition /mnt

Это конечно все хорошо, но после перезагрузки система вас обматерит из-за ошибки автомонтирования LVM. Чтобы этого не произошло надо согласно bug-report'у создать udev правило.

Для этого создаем файл /etc/udev/rules.d/85-lvm2.rules со следующим содержимым:
SUBSYSTEM=="block", ACTION=="add|change", ENV{ID_FS_TYPE}=="lvm*|LVM*", \
        RUN+="watershed sh -c '/sbin/lvm vgscan; /sbin/lvm vgchange -a y'"

В теории все. Помогло лично мне на системе Ubuntu 10.04.01 (2.6.32-24-generic)