четверг, 28 января 2010 г.

LVM спасет винчестеры. Простое управление разделами

Logical Volume Manager - это очень полезная штука, позволяющая легко и гибко манипулировать дисками и разделами. Только название у нее страшное, а мануалы еще страшнее. Я постараюсь на пальцах, не прибегая к источникам, объяснить как это работает, затрагивая лишь аспекты домашнего использования. Примитивно, но достаточно для начала.


Разберемя, что такое LVM и что он нам дает. У Вас есть второй (третий, пятый) винт? Они маленькие, но их несколько. Так часто решается проблема нехватки свободного места. Но вот что неудобно - куча разделов. Хотелось бы иметь один большой раздел, а не много маленьких, и не заморачиваться вопросами "на каком разделе у меня осталось место" или "на какой диск я кинул тот файл". Словом, избавиться от беспорядка. И тут приходит на помощь LVM. Он позволяет Вам магическим образом соединить все накопители в один, и больше не задумываться о том, как эффективно распределить разделы между дисками. А может у Вас всего один винт, но Вы собираетесь приобрести второй? Тогда LVM поможет Вам увеличить уже имеющиеся разделы за счет нового накопителя. Или же все-таки у Вас один винчестер и второй заводить Вы не собираетесь? Ну, я надеюсь, раздел-то у Вас не один? Как минимум один для системы и второй для личных файлов? И, скажем, места для системы стало нехватать? Тогда LVM снова придет к Вам на помощь. Вам не придется часами двигать разделы по всему винту. Достаточно освободить место в любой его части за счет уменьшения одного из разделов, и это свободное место тут же может быть приклеено к любому другому разделу, где бы он не находился.

Словом, Вам больше не нужно задумываться о физической конфигурации жестких дисков. Все, о чем Вы задумываетесь - это назначение разделов и объем доступного места. В дополнение к этому мы имеем такие удобства, как человеческие названия разделов вместо нумерации, расширение разделов на лету без остановки системы, создание снимка раздела без остановки системы, и, возможно, что-то еще, в чем я еще сам не разобрался :)

Чего LVM вашей системе точно не добавит - так это надежности. Выход из строя одного из физических носителей может повлечь за собой утрату данных со всех разделов. Однако, о резервных копиях Вы должны побеспокоиться в любом случае, так как ничто не вечно, и поломка жесткого диска - это лишь вопрос времени. Так что, советую не играть в русскую рулетку со своими файлами, а делать резервные копии настолько часто, насколько это важно для Вас.

Теперь поговорим о внутренностях. Название системы переводится как "менеджер логических томов". Логические разделы (Logical Volume, они же тома) - это то, что мы получаем в итоге при использовании LVM. На них мы живем, их мы форматируем в нужные нам файловые системы, на них мы и храним свои файлы. В папке /dev они также, как и обычные физические разделы, доступны в виде файлов. Вот мои логические разделы:

$ sudo ls /dev/vg0/
lv_home lv_root 

У меня их всего два, больше мне не надо. Вот только проблема состояла в том, что в приобретенном мною eee pc всего два маленьких флешовых накопителя: примерно 4 и 14 гектаров. Для системы мне 4 мало, а 14 много. В общем - ни туда, ни сюда. Так я и стал разбираться с LVM.

Все пространство, выделенное под логические тома, называется группой томов (Volume Group). Я бы назвал это логическим диском. Как физический диск состоит из томов, так и группа томов состоит из логических томов. Отличие в том, что тут работают другие "законы физики". Логические тома вовсе не обязаны физически быть расположенными друг за другом и непрерывно. Они состоят из кусочков, которые распределяются по всей группе в соответствии с указанной политикой распределения. А группа томов может увеличиваться или уменьшатсья в размере за счет присоединения или отсоединения устройств. Любой раздел можно увеличить за счет имеющегося свободного пространства. И если понадобилось дополнительное место для какого-то раздела, его можно освободить за счет уменьшения любого другого логического тома. При этом вовсе не нужно двигать разделы, чтобы переместить свободное место под нужным том. Расширяемый том заполнит свободное пространство, где бы оно не находилось. В итоге, кусочки логического раздела могут быть физически разбросаны по носителям. Но нам до этого никакого дела. В том и прелесть. Все, о чем мы задумываемся - размер разделов. Где и как они физически расположены - это не важно.

У меня всего одна группа разделов. Я назвал ее vg0. Но их может быть и несколько. Однако, я не могу себе представить, зачем мне лично это может быть нужно в домашних условиях. Если Вам вдруг покажется, что в вашем случае их нужно несколько, то имейте в виду: группа томов не так гибка как логические разделы. Если планируете изменять размер одного раздела за счет другого, держите их в одной группе. Иначе теряется вся простота использования, и далее Вы увидите почему.

Киты (или слоны, если хотите), на которых стоит группа разделов - это физические разделы. Их не нужно форматировать в какую-то файловую систему. LVM использует данные ему разделы целиком и полностью, паспределяя по ним кусочки логических томов. Отсюда название "группа разделов" приобретает некий двойственный смысл. С одной стороны это группа логических разделов, с другой - физических. Важно понимать, что как только Вы присоединяете физический раздел к группе, теряется возможность изменять его размер. Это как пилить ветку, на которой сидишь. И если Вы захотите в будущем отсоединить физический раздел от группы, чтобы изменить его размер или вообще целиком отдать другой системе, нужно будет перенести все данные с него на другие разделы. Конечно, Вам не придется вручную переставлять байты и блоки, LVM может сделать это для Вас. Но отмонтировать все файловые системы таки придется. Еще более важно осознавать, что если у Вас всего один винт с одним разделом, и Вы устанавливаете на него LVM, то освободить место под другую систему (под Windows например) будет затруднительно. Так что, если подозреваете такую возможность, то побейте винт сразу на несколько физических разделов, прежде чем скармливать его менеджеру логических томов.

И если с китами и слонами есть некоторые нюансы, то с черепахой, на которых они стоят, все просто. Физический накопитель просто является носителем физических разделов, используемых LVM. Он также может иметь и другие разделы, отформатированные под определенные файловые системы. Это не будет иметь никакого отношения к LVM. Нет разницы на каком диске находится физический раздел. Может быть только разница в скорости чтения/записи. Если это важно, то в момент создания логических томов можно заставить их использовать определенные физические тома по вашему усмотрению.

Получаем вот такую иерархию понятий снизу вверх: накопитель, физический том, группа томов, логический том. Все просто, но легко запутаться. Особенно, если групп несколько. Если она одна, то на нее, как на понятие, можно вообще по большому счету не обращать внимание. Тогда получаем упрощенную модель: логические тома располагаются на физических. Каждый логический том может лежать одновременно на нескольких физических томах. Причем он не обязан заполнять их полностью. Более того, по умолчанию LVM будет распределять каждый логический раздел по разным физическими носителями (наверное, для распределения нагрузок).

Я думаю, это все, что нужно понимать для начала. Довольно теории. Перейдем к практике. Так сказать, how to use.

Возьмите ваш винчестер и разбейте его. Не о пол конечно, а на разделы. И используйте его с LVM. Это все. Пакет называется lvm2, список команд найдете в официальном мануале или в гугле. При установке убуты, если воспользоваться консольным установщиком, можно сразу разметить диск под LVM. Только boot поместите в обычный раздел (метров 100-200 хватит), чтобы grub не растерялся, пытаясь загрузить вашу систему. Для управления всем этим делом можно воспользоваться хорошей графической утилитой: kvpm. Там все просто. И не забудьте о резервных копиях. Теперь точно все.

Читать дальше...

воскресенье, 24 января 2010 г.

Удаленное воспроизведение звука

Зачем оно надо?


(Для тех, кто еще не осознал смысл жизни)

  • Домашняя акустика - на стационарном компе, любимая музыка - на ноуте, а провода давно завязались в узел.
  • Вы с ноутом сидите на кухне, и хотите включить музыку, да погромче.
  • Компьютеров много - колонки одни. Например, в офисе вам любезно разрешили включить свою музыку. Но колонки не ваши, и таскать их от компа к компу никому не хочется, особенно хозяину.
  • Вы запускаете удаленное приложение на не менее удаленном сервере и хотите его слышать.
  • Ваши варианты...


Простой способ


Подходит для локальной сети, в которой вам некого опасаться.

Устанавливаем PulseAudio как на клиенте так и на сервере, если оно еще не стоит. На компьютере с подключенной акустикой устанавливаем paprefs, запускаем и разрешаем подключение через сеть. На клиентской машине запускаем приложение вот такой командой:

$ PULSE_SERVER=<server address> <application>

И наслаждаемся воспроизведением.

Стоит отметить, что это работает только для приложений, использующих PulseAudio для вывода звука. Для приложений ESound нужно также установить пакет pulseaudio-esound-compat (название пакета может отличаться в вашем дистрибутиве). Приложения OSS нужно запускать через padsp, например вот так:

$ PULSE_SERVER=192.168.2.3 padsp vlc

Хотелось бы еще как-то добавить удаленный звуковой сервер в настройки KDE 4, чтобы совсем без консоли... Но пока не знаю как это сделать.

Безопасный способ


Для тех, кто не хочет открывать PulseAudio для общего доступа по сети.

Делаем перенаправление порта с локального компа на удаленный через SSH:

$ ssh -L4000:localhost:4000 192.168.2.3

Делаем перенаправление сетевого сокета на юниксовый на сервере:

remote$ socat TCP-LISTEN:4000,fork UNIX-CONNECT:/tmp/pulse-$USER/native

Слушаем музон

$ PULSE_SERVER=localhost:4000 paplay my_music.wav

Читать дальше...

пятница, 15 января 2010 г.

qBittorrent - лучший BitTorrent клиент

Конечно же, это мое личное мнение, основанное на моих предпочтениях. Но если кто-то как раз задумался о том, какой клиент выбрать из всего существующего ассортимента, то специально для него я обосную свою точку зрения.

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



Несмотря на кажущуюся простоту, программа обладает немалым набором весьма полезных возможностей. Я, как новичок в использовании BitTorrent, весьма оценил возможность автоматически подхватывать торренты, сохраненные в специальную папку, а также открывать торренты с помощью команды qbittorrent. Это существенно упрощает закачку.

Есть также и веб-интерфейс для удаленного доступа, который внешне мало чем отличается от самой программы, выглядит очень пристойно и не будет пугать даже неопытных чайников.



Программа отлично работает, в том числе и с torrents.ru. Никогда не наблюдал проблем с раздачами.

Есть возможность написать поисковые плагины, так что поиск по трекеру можно осуществлять прямо из программы, не заходя на сайт. Система плагинов довольно проста, используется Python, есть примеры, так что я без труда написал плагин для поиска по torrents.ru, когда еще только начинал знакомиться с языком программирования Python. Один хороший товарищ был столь любезен, что сделал то, до чего у меня так и не дошли руки: выложил его в интернет. Плагину не помешает доработка, так что все желающие могут приложить свою руку :)
http://code.google.com/p/qbittorrent-plugins/

Одна из самых замечательных на мой взгляд возможностей - это опция последовательной закачки. В этом режиме файл качается начиная с начала и заканчивая концом, а не хаотично как обычно. Это дает возможность начать смотреть фильм еще до того, как он полностью скачался. Для меня это крайне важно, потому что нередко настроение что-то посмотреть появляется спонтанно, тогда как ничего к просмотру заранее не заготавливалось. Такую возможность я больше нигде не видел.

У программы отзывчивый разработчик. Для кого-то это тоже может показаться существенным. Приятно, когда разработчик реагирует на нужды пользователей.

Ну и последняя особенность данной программы - отсутствие конкурентов. Может я плохо искал, но я больше не нашел ни одного похожего торрент-клиента. Остальные либо ужасны (имхо конечно), либо глючны, либо просты до безобразия, либо сложны до безумия, либо вообще консольные, так что не идут ни в какое сравнение.

Читать дальше...

вторник, 5 января 2010 г.

Простое переключение мониторов

Поставил KDE4 на ноут. И если в Ubuntu кнопка переключения дисплеев хоть как-то работала, то в Kubuntu она оказалась совсем не функционирующей. Нашел простое элегантное решение, требующего всего пары движений надфилем.

Вот здесь я нашел рецепт автоматического включения внешнего монитора при загрузке системы.

http://linux-tipps.blogspot.com/2009/03/automatically-switch-to-connected.html

Решение показалось мне достаточно простым и элегантным, чтобы прибегнуть к нему. Немного адаптировал команду под свои нужды и вот что получил:

xrandr -q | grep 'VGA1 connected' \ 
&& xrandr --output LVDS1 --off --output VGA1 --auto \
|| xrandr --output LVDS1 --auto --output VGA1 --off

Эта команда включает один дисплей и выключает другой в зависимости от того, подключен ли внешний монитор или нет. В итоге после подключения или отключения внешнего монитора достаточно нажать кнопку, к которой привязана эта команда, и вывод адаптируется под текущую конфигурацию мониторов. Прикрутить команду к кнопке можно легко в разделе Действия в Параметрах системы.

Если б еще сделать как-то, чтобы команда запускалась сама при подключении/отключении монитора - было бы вообще супер.

Читать дальше...

MacOS vs Linux - заключение

Несколько месяцев (не менее трех) постоянной бескомпромиссной всесторонней работы с маком провели меня по следующей цепочке отношений к этой системе:

- Нах мне эта фигня?
- Ну и как с этим работать?
- Блин, как не удобно!
- Как сделать чтоб как в Линуксе?
- Ладно, привыкну как-нибудь.
- Блин, а таки удобно.
- О, и это оказывается можно решить!
- Я тащусь.
- Я просто тащусь! Как все просто и удобно и по-человечески!
- Блин, опять повисло... Ну, с кем не бывает.
- Черт, что за глюк?
- Ну да, удобно, но как сделать то что я хочу?
- Прст... Почему у всех работает а у меня нет?
- Хочу apt!!!!!! Говнофинк и тормопортс не предлагать.
- Итить твою за ногу... Ну почему он постоянно глючит!
- Что, и здесь глюки? Да венда и то стабильнее будет.
- Тут хоть что-нибудь будет работать нормально???
- Все! Нах мне эта фигня, да еще и за такие деньги!

Вот так. Может мне просто повезло... А может я просто пытался сделать с ним больше, чем посмотреть фотки (кстати, тоже глючит)... Так или иначе, я снова сел за линукс. Он куда более готов к десктопу, чем мак. А мой макбук ищет нового хозяина.

Читать дальше...

пятница, 27 ноября 2009 г.

Linux из коробки

В какой-то момент изменившиеся жизненные приоритеты не оставили времени и возможности ковырять Линукс. Встала задача найти дистрибутив, который будет отлично работать из коробки: поддерживать железо, конфигурироваться автоматически или легко вручную, иметь полный набор софта как для офиса так и для дома. В общем - встать на новый ноут так, чтобы не морочить мне голову ненужными мне проблемами.

Были рассмотрены все популярные дистрибутивы, и испробованы все имевшие хоть какой-то шанс подойти на роль искоробочного ванианта, в чем мне активно помогал некто Mak_s. В результате пришлось признать, что изкоробочных вариантов линукса с хорошей поддержкой на данный момент просто не сущестует. Ближе всего к этому подошла Ubuntu. Kubuntu - это просто KDE на убунте, со всеми его глюками и требующий напильника. Debian stable слишком стар для десктопа, а testing оставляет желать лучшего по своей стабильности. Fedora оказалась тоже далеко не искоробочным вариантом. Mandrake сначала порадовал простотой и заточенностью (прямо как в виндовс!) но потом сразу же огорчил невероятной глюкавостью и неадекватным поведением (тоже, видимо, позаимствовали из виндовс). OpenSUSE просто не встала ни на одном из двух моих компьютеров, и даже в эмуляторе. Однако по рассказам Mak_s был сделан вывод, что это просто недопиленное убожество. Остальные вообще не вдохновили по заданным критериям, так что не буду сильно заострять внимание на них.

В итоге, поскольку не было найдено приемлимого варианта, было принято решение опробовать Mac. Его мне разрекламировали, как надежный как линукс и удобный как виндовс. И вот я уже в течение нескольких месяцев работаю на нем. Что действительно радует - удобство в базовых вещах (настройка девайсов, графический интерфейс), обилие софта и юникс в основе. Что совсем не радует - не менее глюкав чем линукс и виндовс, удобство заканчивается на базовых вещах, интеграция между софтом оставляет желать лучшего, из внешних девайсов хорошо поддерживаются только продукты Apple и кредитная карточка. Это подтолкнуло на создание нового блога, заходите - будем рады. http://macbugs.blogspot.com

Ну а пока, я все-таки остаюсь на Маке. Этот вариант меня устраивает больше всего. И все-таки я очень надеюсь, что Линукс допилят, и по своей искоробочной надежности и юзабильности он превзойдет Мак. Тем более, что это не так уж и сложно.

Читать дальше...

пятница, 26 июня 2009 г.

Samsung YP-T10: конвертация видео

Если по жуткому стечению обстоятельств Вы тоже стали обладателем этого замечательного чудо-девайса (или ему подобного), то, вероятно, Вы столкнулись с проблемой пережатия видео в совместимый формат. Оказалось, ест этот плеер далеко не все что называется wmv и xvid, как обещано списком поддерживаемых форматов. Разумный компромисс цены и качества, но уважаемые производители, блин... Напишите же, чем его кормить! Ведь не все пользователи хотят запускать ваши говно-программки, прилагаемые к диску.

Довольно длительные и упорные поиски в англоязычном сегменте интернета таки были вознаграждены правильными советами. Обсуждаемый плеер с удовольствием кушает правильно и старательно приготовленный AVI: только с нравящимися ему ингридиентами, и только под авторским соусом.

В качестве кухонного комбайна я взял ffmpeg. Он есть в репозиториях.

$ sudo aptitude install ffmpeg


Чтобы сконвертировать видео в нужный формат, можно выполнить вот такую команду:

$ ffmpeg -y -i ljudi_x.mkv -cropleft 120 -cropright 120 -croptop 28 -cropbottom 28 -f avi -vcodec libxvid -s 320x240 -b 400kb/s -r 30 -aspect 4:3 -acodec libmp3lame -ab 192kb/s -ac 2 x_mans.svi


Немного пояснений.

-y - Перезаписываем файл назначения, если по какой-то причине мы начали процесс заново.
-i - Имя исходного файлы в любом поддерживаемом ffmpeg формате.
-cropleft, cropright, croptop, cropbottom, padleft, padright, padtop, padbottom - Обрезаем края и добавляем черные полоски. Это нужно, когда соотношение сторон кадра в исходном видео отличается от 4:3. Если не обрезать, то морды будут вытянутые или сплюснутые. Чтобы подобрать правильные числа, необходимы знания элементарной математики. Обрезание происходит до преобразования, так что манипулировать нужно именно с исходным размером. Узнать их можно, например, запустив конвертацию (после чего ее можно тут же оборвать комбинацеий Ctrl+C). ffmpeg выведет в первых строках своего письма основные данные об исходном формате. Если же вы не умеете считать или просто влом, можете упустить эти параметры.
-f - Формат файла назначения.
-vcodec - Кодек для кодирования видео. Нужен именно libxvid.
-s - Размер кадра на выходе. В примере - разрешение нашего плеера.
-b - Количество данных в секунду - по сути качество. Мне с таким размером хватило 400kb/s. Хотя кто-то предлагал 2000.
-r - количество кадров в секунду. Можно попробовать убрать, чтобы частота кадров не менялась. Не помню, работает ли с другими значениями.
-aspect - соотношение сторон на выходе.
-acodec - Кодек для звука. Нужен именно libmp3lame.
-ab - Количество данных в секунду для звука. По сути качество звука. Рекомендуют три варианта значения, из которых я взял максимальное: 192kb/s. Делать меньше никакого смысла не вижу. Итак нихрена не видно на мелком экране, пусть хоть звук будет нормальный :)
-ac - Количество каналов звука (2 для стерео).

Вот такие настройки работают. Шаг вправо, шаг влево - и может уже не читать.

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

Читать дальше...

Ограничение использования процессора процессом

Иногда в процессе работы некоторый процесс отбирает все процессорное время процессора. Например, пережатие фильма в другой формат с помощью ffmpeg может сделать невозможным использование компьютера в течение нескольких часов. И nice не особо помогает. Особенно, если диск активно используется. В таком случае возникает желание просто отрезать кусок процессора этому жадному процессу, и больше не давать.

Как всегда, в Linux нашлось простое решение. Утилита cpulimit достаточно просто и надежно справилась с этой задачей. Можно привязываться к процессу по идентификатору, по имени исполняемого файла и по полному пути. Ограничение задается в процентах. Срабатывает не очень четко, но вполне можно подобрать.

Мануал достаточно простой, и мне показалось, что описывать особенности использования будет лишним. Но если вдруг кому-то все-таки будет непонятно - пишите, с радостью помогу, чем смогу :)

Читать дальше...

четверг, 16 апреля 2009 г.

Нет звука в расширениях Firefox (Iceweasel). Молчание ледовых горностаев.

Вы уж простите за флуд, но не могу удержаться. Что значит iceweasel? Ледовый, или может быть снежный? Горностай, или может ласка?

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

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

В конце концов осознав, что сам огнеснежный зверь не воспроизводит звук, порылся основательно в инете и нашел баг о том, что разработчики Debian намеренно отключили звук в firefox.

У них там, видите ли, что-то работало нестабильно, и они решили таким образом избавить пользователя от проблем :) Впрочем, было это давно, и имеется ли такая проблема сейчас - я понятия не имею. Может файл просто остался с тех времен. А может даже я сам отключил, потому что достали назойливые звуки веб-страниц! :)

Исправить очень легко: в файле /etc/iceweasel/iceweaselrc заменить ICEWEASEL_DSP="none" на ICEWEASEL_DSP="auto"

Быстро проверить звук можно открыв Инструменты / Консоль ошибок, и введя там вот такое:

var sound = Components.classes["@mozilla.org/sound;1"].createInstance(Components.interfaces.nsISound); sound.playSystemSound('/usr/share/sounds/KDE_Notify.wav');

, указав в качестве звукового файла такой, который имеется в вашей системе.

Читать дальше...