Поиск по блогу :

    2 декабря 2008 г.

    Меняем дефолтные названия устройств

    Тут мне недавно задали вопрос, а можно ли, например, изменить дефолтное название сидюка с'Устройство CD-RW/DVD±RW' на 'Мега Резак', к примеру. Честно говоря, до этого момента, даже и не обращал внимание на такие вещи, но после этого не мог не разобраться, как же мне все таки сменить дефолтные названия устройств в системе (точнее в моем случае в среде рабочего стола - Gnome).
    В гуевых утилитах я так и не смог найти, как это сделать, поэтому пришлось пойти по другому пути.



    Меняем дефолтные названия

    1. Устанавливаем редактор .po файлов (файлов с переводами) - poedit:
    $
    sudo apt-get install poedit

    или скачиваем и устанавливаем более новую версию с getdeb.net
    2. Теперь в какую-нить папку скачиваем исходники пакетов локализации, в нашем случае нам понадобятся исходники пакета language-pack-gnome-ru-base:
    $
    apt-get source language-pack-gnome-ru-base

    Скачанный архив сразу распакуется в папочку с таким же названием как и у скачанного пакета, в моем случае это
    language-pack-gnome-ru-base-8.10+20081107
    3. Ищем внутри этой папки вложенную папку LC_MESSAGES и редактируем в ней файл gvfs.po
    $

    poedit language-pack-gnome-ru-base-8.10+20081107/data/ru/LC_MESSAGES/gvfs.po

    3.1. Как я ранее написал, мы хотим сменить дефолтное название сидюка на 'Мега Резак', поэтому в открывшемся файле ищем (Ctrl+F) строку 'Устройство %s/%s' и изменяем ее.
    3.2. Сохраняем изменения. После этого у вас в папочке с изменяемым файлом gvfs.po появится файлик gvfs.mo - вот он то, нам и нужен.
    3.3. Может возникнуть такая ситуация, что при сохранении будет выскакивать ошибка чего-то там, забиваем, это глюк программы poedit.
    4. Заменяем системный файлик gvfs.mo на свой:
    $


    sudo cp language-pack-gnome-ru-base-8.10+20081107/data/ru/LC_MESSAGES/gvfs.mo /usr/share/locale-langpack/ru/LC_MESSAGES/gvfs.mo

    Внимание!!! - на всякий случай делайте бэкапы изменяемых файлов... мало ли что вы там намудрите :)
    5. Все, после перезагрузки, вы увидите у себя в 'Компьютер' - устройство 'Мега Резак' :)

    P.S. Как вы уже догодались, приведенным выше способом можно менять почти все надписи и сообщения в вашей системе (главное найти нужные вам файлики), так что в итоге вы можете получить убунту, полностью удовлетворяющую именно вашим требованиям перевода :)

    25 ноября 2008 г.

    Метки дисков для разных файловых систем

    Многие, наверное, сталкивались с тем, что когда куда-нибудь монтируешь диски, то в программах (например GnomeCommander) они потом отображаются как /mnt/disk и т.п. Или, например, когда вы подключаете какой-нить USB-носитель, то он отображается в системе как 'Диск 31,5 ГБ' (к примеру). Вот и я решил избавиться от таких названий, и присвоить дискам нормальные метки, как, например, в той же самой - винде.


    В отличии от винды, в линухах файловых систем поболее, поэтому рассмотрим самые распространенные.

    Установка меток через консоль

    Важно!!! Прежде чем менять или применять метки к дискам, диски должны быть ОТМОНТИРОВАНЫ. А также все манипуляции с разделами вы делаете на свой страх и риск. Бывали случаи, когда люди теряли важную информацию, не правильно следуя командам и не внимательно читая предупредительные сообщения.

    Ниже, для примера, будет использован диск /dev/sda1 и новая метка new_label.

    1. Для Ext2/3
    1.1. Устанавливаем e2fsprogs, если они не установлены:
    #
    apt-get install e2fsprogs

    1.2. Устанавливаем метку диска:
    #
    e2label /dev/sda1 new_label


    2. Для ReiserFS
    2.1. Устанавливаем reiserfsprogs, если они не установлены:
    #
    apt-get install reiserfsprogs

    2.2. Устанавливаем метку диска:
    #
    reiserfstune -l new_label /dev/sda1


    3. Для XFS
    3.1. Устанавливаем xfsprogs, если они не установлены:
    #
    apt-get install xfsprogs

    3.2. Устанавливаем метку диска:
    #
    xfs_admin -l new_label /dev/sda1


    4. Для JFS
    4.1. Устанавливаем jfsutils, если они не установлены:
    #
    apt-get install jfsutils

    4.2. Устанавливаем метку диска:
    #
    jfs_tune -L new_label /dev/sda1


    5. Для Fat32
    5.1. Устанавливаем mtools, если они не установлены:
    # $
    apt-get install mtools
    echo mtools_skip_check=1 >> ~/.mtoolsrc

    5.2. Устанавливаем метку диска:
    #
    mlabel -i /dev/sda1 ::new_label


    6. Для NTFS
    6.1. Устанавливаем ntfsprogs, если они не установлены:
    #
    apt-get install ntfsprogs

    6.2. Устанавливаем метку диска:
    #
    ntfslabel /dev/sda1 new_label



    Установка меток через gparted

    1. Прежде чем устанавливать метку для раздела или диска, отмонтируйте его и установите необходимые программы для нужной вам файловой системы. Какие это программы описано выше в разделе установка через консоль.
    2. Правой кнопкой на разделе и выбираете 'Метка' и вводите новую метку.
    2.1. Если вдруг высветится сообщение, что вы можете потерять все данные на разделе или диске, ни в коем случае, не продолжайте и еще раз перепроверьте правильность ваших действий.

    P.S. У себя менял метки для Fat32, Ext3 и NTFS разделов - все прошло без сучка и задоринки.

    19 ноября 2008 г.

    Использование UUID при монтировании дисков

    Как-то столкнулся с одной проблемкой. У меня есть IDE-карман, который я редко, но использую. Так вот, когда в этот карман вставляешь диск, а комп при этом потушен, то при загрузке мои жесткие диски меняли свои названия в каталоге /dev. Из-за этого, некоторые монтировались ни туда, куда надо, а некоторые вообще не монтировались.


    Как выяснилось, дело было в том, что я по старинке монтировал свои диски указывая название жесткого диска (например: /dev/sda1 ) и папку куда он должен монтироваться (например: /mnt/D ). Все бы ничего, но когда я вставлял жесткий в карман, то добавлялось еще одно устройство и названия жестких дисков в каталоге /dev - менялись.
    Решение такой проблеме очень простое. Вы наверное замечали, как монтируются по умолчанию ваша домашняя директория и корневая система в Убунту. Монтируются они с помощью стандарта идентификации - UUID (Universally Unique Identifier). Смысл системы в том, что каждый ваш диск идентифицируется специальным номером, который не меняется даже тогда, когда диски меняются местами в каталоге /dev. И с помощью этого идентификатора, вы можете монтировать все свои диски не задумываясь о том, что будет если вы добавите еще один диск в вашу систему и т.д.

    Использование UUID

    1. Применять идентификаторы дисков, будем в файле /etc/fstab, который отвечает за монтирование устройств при загрузке системы.
    1.1. Вот так вот, выглядела раньше запись монтирования двух моих дисков:
    /dev/sda1 /mnt/D ext3 defaults,relatime 0 0
    /dev/sda5 /mnt/E vfat iocharset=utf8,umask=000 0 0
    Теперь она выглядит вот так:
    UUID=5d94e4f6-c678-442a-a640-d20e0fd3b383 /mnt/D ext3 defaults,relatime 0 0
    UUID=4574-A323 /mnt/E vfat iocharset=utf8,umask=000 0 0
    1.2. В зависимости от файловой системы, используемой на диске, меняется и UUID (в нашем случае ext3 = 16 байтный номер, а fat32 = пара четырехзначных чисел).
    2. Как вы сами понимаете, нельзя примонтировать устройство с помощью UUID, не зная его.
    2.1. Узнать UUID устройства можно, как минимум, двумя способами. Первый:
    $
    sudo blkid

    вам будет выведен список всех устройств с их UUID и типом файловой системы.
    Второй способ:
    $
    ls -l /dev/disk/by-uuid/

    Как по мне, первый более информативен.
    3. Теперь вставляете полученные UUID нужным дискам в /etc/fstab и все, теперь вы больше никогда не столкнетесь с той проблемой, о которой я писал в начале статьи.

    10 ноября 2008 г.

    Монтирование удаленной папки с помощью sshfs

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


    Так как у меня, есть только подключение через ssh, поэтому для монтирования удаленной папки я использовал файловую систему SSHFS (Secure SHell FileSystem).

    Установка и использование

    1. Устанавливаем sshfs:
    $
    sudo apt-get install sshfs

    2. Теперь монтируем удаленную папку (примерно так):
    $

    sshfs user@remote.host:/somedir /somemydir -o uid=1000,gid=1000

    где
    user - имя пользователя на удаленном сервере;
    remote.host - адрес удаленного сервера;
    /somedir - папка на удаленном сервере, которая будет монтироваться;
    /somemydir - папка на вашем компьютере, куда будет монтироваться удаленная папка;
    -o uid=1000,gid=1000 - различные параметры монтирования (подробнее смотрите в man).
    Понятное дело, все приведенные выше значения вы меняете под себя.
    3. Отмонтируется все это дело, следующей командой
    $
    fusermount -u /somemydir

    4. Добавляем автомонтирование при загрузке системы через /etc/fstab. Для этого редактируем его:
    $
    sudo nano /etc/fstab

    и добавляем туда строку (пример):
    sshfs#user@remote.host:/somedir /somemydir fuse uid=1000,gid=1000 0 0

    Монтирование, если просит пароль

    1. В большинстве случаев, автомонтирование не прокатит, так как запрашивается пароль при монтировании, а такие опции, как password и credentials для sshfs - не катят. поэтому есть, как минимум, два варианта это поправить.
    1.1. Первый - это использование RSA или DSA ключей для ssh соединения (про это я уже раньше упоминал в другой статье).
    1.2. Второй - просто не парится всякими fstab, а просто добавить в автозагрузку 'Система'->'Параметры'->'Сеансы' запуск следующей команды
    echo 'password' | sshfs user@remote.host:/somedir /somemydir -o password_stdin
    где
    password - тот самый пароль для удаленного сервера;
    password_stdin - опция которая принимает пароль передаваемый, в данном случае, через echo.
    Конечно, в этом случае пароль передается в открытом виде, но никто не мешает запихнуть эту команду в скрипт, которому присвоить нужные права, а потом этот скрипт добавить в автозагрузку.

    Проблема при монтировании. И ее решение.

    1. Бывает, что при монтировании выскакивает ошибка
    read: Connection reset by peer
    в этом случае надо послать на адрес, к которому коннектимся, какой-нить текст
    $
    ssh user@remote.host echo text

    в ответ вы получите сообщение, из которого вас интересуют строки похожие на эти:
    Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.
    Offending key in /home/user/.ssh/known_hosts:2
    нас интересует именно последняя цифра, это номер строки, которую нам надо удалить, в данном случае - 2.
    2. Удаляем в файле known_hosts найденную строку:
    $
    sed -i -e '2d' /home/user/.ssh/known_hosts

    3. Снова отправляем на адрес, к которому коннектимся, строку
    $
    ssh user@remote.host echo text

    только в этот раз - появится предложение на ввод пароля для добавления ключа этого адреса в ваш список.
    Все теперь ошибка не должна появляться снова.

    Проблема: sshfs и svn. И ее решение.

    1. При работе с sshfs столкнулся с такой проблемой, что когда пытаешься работать с svn на примонтированной папке, например делать checkout, то получаешь следующую ошибку:
    svn: Can't move '.svn/tmp/entries' to '.svn/entries': Operation not permitted
    2. Лечится это, добавлением опции workaround=rename при монтировании. Пример:
    $

    sshfs user@remote.host:/somedir /somemydir -o workaround=rename,uid=1000,gid=1000

    2 ноября 2008 г.

    Проблема с выдвижением лотка CD/DVD в Ubuntu 8.10

    Перейдя на Ubuntu 8.10, понял, что версия довольно сырая и что я поспешил с переходом. Одна из мелких проблем, которая меня просто добила, заключается в том, что, когда пытаешься открыть лоток CD/DVD, он сразу же задвигается обратно.


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

    Исправляем проблему

    1. Редактируем файлик:
    #
    nano /etc/udev/rules.d/60-persistent-storage.rules

    1.1. Ищем строку
    ENV{DEVTYPE}=="disk", KERNEL!="sd*|sr*", ATTR{removable}=="1", GOTO="persistent_storage_end"
    и заменяем ее на следующую
    ENV{DEVTYPE}=="disk", KERNEL=="sd*|sr*", ATTR{removable}=="1", GOTO="persistent_storage_end"
    сохраняем и нормально пользуемся CD/DVD.

    29 октября 2008 г.

    Pidgin и x-status'ы

    Решил себе прикрутить x-status'ы для pidgin. Не знаю правда зачем, без них и так хорошо живется, наверное просто для того, чтобы показать своим знакомым, которые часто жалуются, что очень привыкли к x-status'ам, что и в pidgin можно их использовать.


    Приступим.

    Установка (используя консоль)

    1. Скачиваем последние исходники с офсайта пиджина.
    $

    wget http://heanet.dl.sourceforge.net/sourceforge/pidgin/pidgin-2.5.2.tar.bz2

    2. Распаковываем скачанные исходники:
    $
    tar xvfj pidgin-2.5.2.tar.bz2

    и переходим в распакованную папку:
    $
    cd pidgin-2.5.2

    3. Скачиваем патч и иконки(в tango стиле) для x-status'ов:
    $

    $

    wget http://developer.pidgin.im/raw-attachment/ticket/4508/xstatus-patch-pidgin-2.5.1.patch
    wget http://developer.pidgin.im/raw-attachment/ticket/4508/custom_user_icons_tango.zip

    если вам нравятся иконки именно, как в виндовом qip (как по мне они убоги), то можете скачать их:
    $

    wget http://developer.pidgin.im/raw-attachment/ticket/4508/custom_user_icons.tar.gz

    4. Применяем скачанный патч:
    $
    patch -p1 < xstatus-patch-pidgin-2.5.1.patch

    5. Распаковываем иконки
    $

    unzip custom_user_icons_tango.zip -d pidgin/pixmaps/emblems/16/

    6. Устанавливаем необходимые пакеты (с зависимостями) перед установкой:
    #







    apt-get install cdbs libmeanwhile-dev libgadu-dev libnss3-dev tcl8.4-dev tk8.4-dev libgtkspell-dev libltdl3-dev libperl-dev libzephyr-dev libebook1.2-dev libedata-book1.2-dev libcamel1.2-dev libavahi-client-dev libavahi-glib-dev libncursesw5-dev libsasl2-dev doxygen network-manager-dev libsilc-dev liblaunchpad-integration-dev intltool libsqlite3-dev libstartup-notification0-dev libxss-dev libgstreamer0.10-dev

    чтобы не было вопросов откуда такие зависимости, скажу, что получил их при dpkg-buildpackage для исходников с убунтовских репозиториев.
    6. Компилируем и устанавливаем пиджин:
    $ $ #
    ./configure --prefix=/usr
    make
    make install

    7. Вот и все, теперь запустив pidgin, вы увидите примерно следующее
    Изменить свой x-status можно в 'Учетные записи'->'Ваша запись ICQ'->'Установить собственный значок'

    P.S. на момент написания статьи, актуальная версия пиджина была - 2.5.2, а патча - 2.5.1.

    21 октября 2008 г.

    Комбинируем несколько смонтированных разделов в один виртуальный, с помощью mhddfs

    Давно хотел найти такую тулзу как mhddfs, но все как-то не попадалась, а тут вдруг нашел, чему очень рад.
    Так что же такое mhddfs (Multi-hdd FUSE filesystem), что же она умеет? А умеет эта программа комбинировать несколько уже смонтированных разделов (или только отдельные папки из них) в один общий виртуальный (комбинированный) раздел.



    Рассмотрим подробнее:
    У меня есть три жестких диска, они у меня смонтированы, как /mnt/D, /mnt/E и /mnt/G. На каждом из них у меня есть папка Films, где у меня лежат различные фильмы и мульты. Почему разбросанно по разным дискам? Да потому что фильмов много и на одном винте они не умещаются. Собственно, такой разброс фильмов доставляет иногда неудобства, когда приходится лазить по разным дискам пытаясь найти, тот или иной фильм. Тут на помощь нам и приходит mhddfs. С помощью него я могу объединить папки Films со всех трех дисков в один общий, например /mnt/Films.

    Установка и настройка

    1. Устанавливаем mhddfs:
    #
    apt-get install mhddfs

    1.1. Если у вас убунта ниже версии 8.10, то в репозиториях - этой программы нет, и вам надо ее скачать с репозитория убунты 8.10 "Intrepid".
    2. Пойдем по моему примеру. Создаем папку /mnt/Films
    #
    mkdir /mnt/Films

    3. Создаем комбинированный диск из трех папок Films с трех различных дисков
    #

    mhddfs /mnt/D/Films,/mnt/E/Films,/mnt/G/Films /mnt/Films -o allow_other

    allow_other - эта опция означает, что этот раздел будет виден и другим пользователям, а не только тому, кто его создал. (про эту опцию вычитал в инете, так как в мануалах программы про нее ничего не сказано). Остальные опции смотрите в мануале к программе.
    4. Можете проверять смонтированный диск, как вы увидите, в виртуальном диске будут отображены все фильмы со всех папок Films с других дисков. Теперь найти нужный фильм намного удобнее :)
    4.1. Отмонтируется раздел, следующей командой:
    #
    fusermount -u /mnt/Films

    5. Добавляем строку в /etc/fstab, чтобы наш виртуальный раздел монтировался при загрузке:
    #
    nano /etc/fstab
    и в конец файла добавляем строку:
    mhddfs#/mnt/D/Films,/mnt/E/Films,/mnt/G/Films /mnt/Films fuse defaults,allow_other 0 0

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

    18 октября 2008 г.

    Управление Linux с помощью anyremote

    Попробовал тут на днях программу удаленного управления линукс - Anyremote. Программа позволяет управлять вашей убунтой через Bluetooth, InfraRed, Wi-Fi или через TCP/IP соединение. В данной статье я описал, как управлять убунтой через bluetooth с помощью мобилки и удаленно через web-браузер.

    Использовался телефон - Motorola V3x.

    В репозитории убунты нет ни одного пакета, связанного с anyremote, поэтому все пакеты скачиваем с офф. сайта anyremote.

    Anyremote представлена несколькими утилитами:
    anyremote - основная консольная часть
    ganyremote - фронтенд под Gnome
    kanyremote - фронтенд под KDE (в статье не рассматриваю)
    anyremote-j2me-client - java-клиент
    anyremote2html - web-интерфейс для anyremote
    + java-мидлет для телефона (если установлен java-клиент, то мидлет вам не потребуется).

    Установка

    В принципе все эти утилиты есть в .deb-пакетах, кроме самой основной части, которая собрана только под архитектуру i386, если вам нужна версия amd64, то ее можно собрать из исходников.
    1. Устанавливаем скачанные пакеты.
    1.1. Если вы будете собирать пакет anyremote из исходников, то прежде чем собирать, установите пакет:
    $
    sudo apt-get install libbluetooth-dev

    иначе у вас может не заработать соединение через bluetooth.

    Bluetooth подключение

    1. Запускаем ganyremote, в трее должен появиться значок программы, щелкаем по значку, чтобы появилось окно программы.
    2. В окне программы должен отображаться список программ установленных у вас в системе и для которых у программы есть конфиги, но советую открыть 'Настройки' -> 'Параметры' и поставить галочку напротив пункта 'Дополнительно' в блоке 'Показывать в списке:', тогда у вас отобразятся дополнительные конфиги для других разнообразных целей (советую обратить внимание на конфигAll-in-1).
    3. Включайте на телефоне bluetooth-обнаружение и запустите поиск своего телефона в программе: 'Настройка' -> 'Устройства' -> 'Файл' -> 'Искать устройства'. В итоге должно появиться окно с найденным устройством. В этом окне выберите размер иконок и нажмите'Загрузить java' - на телефон будет отправлен мидлет, который будет установлен на вашем телефоне.
    4. Выбираем конфиг в главном окне ganyremote (к примеру All-in-1) и жмем 'Запустить'.
    5. Теперь запустите мидлет на телефоне и в меню выберите 'Search'. После поиска, в списке должен отобразиться ваш компьютер, к нему и подключаетесь.
    5.1. Если при поиске вы не нашли свой компьютер, то скорее всего у вашего bluetooth-адаптера (на компьютере) стоит настройка невидимости для других bluetooth устройств. Включить видимость, можно через апплет Bluettoth в области уведомления или с помощью команды:
    $
    sudo hciconfig hci0 piscan

    6. После подключения телефона к компьютеру, если вы выбрали конфиг All-in-1, то на телефоне отобразиться перечень программ, для которых есть конфиги. Выберите любую из них, для проверки, к примеру audacious - теперь вы можете спокойно управлять этим плеером через bluetooth.

    Удаленное подключение через web-браузер

    1. Запускаем ganyremote (если он у вас еще не запущен), переходим в 'Настройки' -> 'Параметры' и ставим галочку напротив 'Запустить Web-интерфейс с параметрами'.
    1.1. Параметры по-умолчанию имеют вид:
    Device=: socket:5000
    Параметр 1: -a 5000
    Параметр 2: -w 5550
    5550 - это порт по которому вы будете подключаться через web-браузер.
    2. Выбираем приложение (к примеру): All-in-1
    2.1. Жмем 'Запустить'. В строке состояния должна обновиться статус на: Соединение с телефоном активно. (не обращайте внимание на слово 'телефоном' - это погрешности перевода программы на русский, когда все девайсы записали под один - телефон :))
    3. Запускаем web-браузер и для проверки вводим:
    http://127.0.0.1:5550
    должна отобразитьсястраница с выбором программ, запускаем, опять же к примеру, audacious и управляем приложением, только уже через web-интерфейс.
    4. Если у вас имеется реальный ip на машине и вы имеете к ней доступ через интернет, то можете пользоваться возможностями anyremote из любой точки мира :)

    P.S. Вообще anyremote отличная программа в своем роде, хотелось бы посмотреть как она работает через wi-fi, но к сожалению, пока нет возможности, как только такая возможность появится - то результаты допишу в эту статью.

    15 октября 2008 г.

    Ноутбук Asus X50N и Ubuntu 8.04

    Приобрел себе недавно ноут Asus X50N и первым же делом поставил на него Ubuntu :)
    Ниже описано, с какими проблемами я столкнулся при настройке Ubuntu 8.04 на этом ноутеAsus X50N.



    Настройка и решение проблем

    В первую очередь возмутило то, что нет звука после установки ОС.
    Боролся таким образом:
    1. Отредактировал файл alsa-base:
    #
    nano /etc/modprobe.d/alsa-base

    добавив в конец строку:
    options snd-hda-intel model=lenovo
    после перезагрузки звук появился.

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

    2. Редактируем menu.lst
    #
    nano /boot/grub/menu.lst

    в строке загрузки kernel /boot/vmlinuz-2.6.[bla-bla-bla] quiet splash,
    нужно дописать в конец - all_generic_ide
    Пример:
    kernel /boot/vmlinuz-2.6.24-21-generic root=UUID=... ro quiet splash all_generic_ide
    после этого ноут нормально перезагружается.

    3. Драйвер на видюху (nvidia-glx-new), нормально установился, только после обновления системы.

    4. Настройка Wi-Fi.
    4.1. Если не установлены инструменты для сборки, устанавливаем их:
    #
    apt-get install build-essential

    4.2. Cкачиваем madwifi отсюда.
    К примеру:
    $

    wget http://snapshots.madwifi.org/special/madwifi-ng-r2756+ar5007.tar.gz

    Устанавливаем:
    $ $ $ $
    tar xfz madwifi-ng-r2756+ar5007.tar.gz
    cd madwifi-ng-r2756+ar5007
    sudo make install
    sudo modprobe ath_pci

    4.3. Во время этих действий возможна ошибка, типа FATAL: Error inserting wlan_scan_sta (lib/modules/2.6.22-14generic/net/wlan_scan_sta.ko) : Unknow symbol in module, or unknow parameter (see dmesg)
    игнорируем и ребутимся.
    Теперь Wi-Fi карточка должна появиться.
    4.4. Теперь ставим небольшую утилиту для управления беспроводными подключениями:
    #
    apt-get install wifi-radar

    Теперь в 'Приложения'->'Интернет'->'Wifi Radar' - можно конфигурировать wi-fi подключения.

    P.S. Ноутбук без подзарядки, работает, примерно, два часа, но если смотреть фильм или слушать музыку то около 1ч. В связи с этим мне стало интересно как уменьшать частоту процессора в ручную, чтобы увеличить время работы ноута от батареи. Решение было найдено - нам нужен апплет cpuspeed.
    Проделываем следующее, чтобы разрешить апплету менять частоту проца:
    #
    dpkg-reconfigure gnome-applets

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

    P.S.S. В остальном проблем не было :)

    P.S.S.S. В статье были использованы материалы с forum.ubuntu.ru

    4 октября 2008 г.

    Исправляем ошибку 'Settings of System Clock: Unable'

    Недавно на работе столкнулся с ошибкой, касающейся системных часов. При загрузке grub начала появляться строка 'Settings of System Clock: Unable' и появлялась строка со временем, которое на несколько часов не совпадало с тем, которое у меня установленно в биосе и в рабочем окружении Убунты.



    Решение проблемы (правильный вариант)

    1. Открываем для редактирования файл /etc/default/rcS:
    #
    nano /etc/default/rcS

    2. Добавляем в конец файла строку:
    HWCLOCKPARS=--directisa
    и сохраняем файл.

    Решение проблемы (другой вариант, не совсем правильный)

    1. Открываем для редактирования файл hwclockfirst.sh:
    #
    nano /etc/init.d/hwclockfirst.sh

    2. Ищем строку (Ctrl+w):
    HWCLOCKPARS=
    и заменяем ее на:
    HWCLOCKPARS=--directisa
    3. Проделываем снова пункты 1 и 2, только для файла
    /etc/init.d/hwclock.sh

    Теперь, после перезагрузки, ошибка вас, больше не побеспокоит.

    27 сентября 2008 г.

    Ошибка при распаковке ZIP-архива - "End-of-central-directory signature not found..."

    Периодически мне присылают или я скачиваю zip-архивы, которые при распаковке выдают следующую ошибку:


    End-of-central-directory signature not found. Either this file is not a zipfile, or it constitutes one disk of a multi-part archive. In the latter case the central directory and zipfile comment will be found on the last disk(s) of this archive.
    unzip: cannot find zipfile directory in one of file.zip or file.zip.zip, and cannot find file.zip.ZIP, period

    Исправление архива

    Решается это - просто:
    $
    zip -F <название архива>.zip

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

    26 сентября 2008 г.

    Заставляем checkinstall собирать пакеты без ошибок

    Переодически мне приходится собирать некоторые программы из исходников, в связи с этим, я уже давно, начал прибегать к помощи программы checkinstall. Эта утилитка позволяет заменить последнее действие из трех стандартных (кто не помнит это - 1) ./configure; 2) make; 3) sudo make install) на sudo checkinstall -D.

    В итоге, вместо обычной установки пакета в систему, я получаю собранный .deb пакет, который ставится в систему, родным для убунты способом.

    Проблема и способ ее решения

    Но частенько случается так, что нормально подготовленный пакет, во время исполнения команды checkinstall, в конце, не собирается в .deb пакет, а программа выдает следующую ошибку:
    **** Установка неудачна. Отменяется создание пакета.
    Причем, если установить пакет с помощью команды 'sudo make install' - все установится без всяких проблем.
    Ну чтож, эту проблему можно решить хитрым способом.

    1. Если у вас checkinstall выдает ошибку, то проделайте следующее:
    $
    sudo make install

    тоесть установите пакет стандартным способом.
    2. А вот теперь снова попробуйте установить пакет с помощью checkinstall:
    $
    sudo checkinstall -D

    теперь все должно установиться без проблем.
    3. Удаляем программу, установленную у нас двумя способами:
    $ $
    sudo apt-get remove <название программы>
    sudo make uninstall

    4. Все, теперь нормально устанавливаем собранный deb-пакет:
    $
    sudo dpkg -i <название программы>.deb


    P.S. Вроде есть и другие программки по сборке программы в .deb пакет, но я как-то уже привык к checkinstall.

    24 сентября 2008 г.

    Настройка CDMA модема

    В настоящее время у нас получили распространение беспроводные технологии, в том числе и беспроводной интернет, у нас в Крыму такую услугу предоставляют операторы InterTelekom, Utel, PeopleNet. Я воспользовался услугой cdma-связи от компании InterTelekom.


    В статье речь пойдет о настройки CDMA - модема в Ubuntu, в моем случае, это -Huawei EC 226 (название читается не так, как вы подумали :D ).
    Для пользователей ЗлоОС, настройка состояла в подключении его через USB, после чего, он монтировался как виртуальный диск, с которого устанавливались дрова и ПО, для пользователей Ubuntu установка - не сложнее.

    Настройка модема через GUI

    1. Проверяем определился ли наш модем с помощью команды lsusb. В моем случае, модем определился как:
    Bus 001 Device 004: ID 12d1:1001 Huawei Technologies Co., Ltd. E620 USB Modem

    2. Устанавливаем пакет gnome-ppp
    $
    sudo apt-get install gnome-ppp

    3. Запускаем gnome-ppp ('Приложения' -> 'Интернет' -> 'GNOME PPP'), заходим в 'Настройка', и на вкладке 'Модем' нажимаем 'Определить'.
    Модем определился как /dev/ttyUSB0.
    3.1. Выставляем другие настройки:
    Тип модема - 'USB-модем'
    Способ набора - 'Тональный'
    и др.
    3. Закрываем окно настроек и вбиваем логин, пароль, номер дозвона и подключаемся.

    Настройка модема через консоль

    1. Определяем наш модем:
    #
    wvdialconf

    2. Редактируем файл /etc/wvdial.conf
    #
    nano /etc/wvdial.conf

    2.1. Вносим туда логин, пароль, номер дозвона и сохраняем изменения.
    3. Все теперь подключаемся с помощью команды:
    $
    wvdial


    P.S. Не забывайте про настройку маршрутизации, так как в 90% случаев, проблемы с нерабочим интернетом связанны с неправильной настройкой маршрутизации.

    11 сентября 2008 г.

    Принтер HP LaserJet P1005

    Купил тут на днях мой дядька себе принтер HP LaserJet P1005. Так как у дядьки уже какое-то время стоит убунту, то он попросил меня, установить и настроить этот принтер. В принципе на моей практике особых проблем с настройкой принтеров от Hewlett-Packard - не возникало. Но с данной моделью принтера, все таки, возникла небольшая неувязочка.


    После подключения, принтер без проблем определился, так что мне оставалось только быстренько настроить его через 'Система' -> 'Администрирование' -> 'Печать', что я и сделал.
    После настройки, я нажал печатать Пробную страницу. В апплете печати появилось задание на печать, которое с успехом завершилось, но только в системе, сам принтер никак не отреагировал на пробную печать.

    Заставляем принтер работать

    Не хочет так, значит поступим иначе.
    1. Запускаем утилиту hp-setup:
    #
    hp-setup

    и дальше действуя инструкциям, отвечаем на вопросы (не забудьте ответить утвердительно на лицензионное соглашение).
    В итоге, с инета подтянутся файлы настройки для данной модели принтера.
    2. После того, как услышите характерное жужжание принтера, на экране должно появиться сообщение о том, что для данной модели существуют еще какие-то настройки и предложение скачать их. Теперь можете отменять работу hp-setup по Ctrl+C.
    Все, теперь можете проверить работу принтера - все должно работать нормально.

    P.S. В инете пишут, что нужно выставить в Привилегиях пользователя ('Система' -> 'Администрирование' -> 'Пользователи и группы') галочку напротив 'Использовать сканеры'. Это должно помочь при настройке данного принтера. В моем случае, этого делать не пришлось, все и так нормально завелось.

    10 сентября 2008 г.

    Не открывается computer:///

    Вот такая вотнеприятная ошибка "Не удалось показать computer:///. Nautilus не может обрабатывать адреса computer", хоть и редко, но иногда, все же, постигает некоторых убунтовцев.

    Чаще всего эта ошибка постигает владельцев 64-битной убунты, при переходе с одной версии убунты на другую.

    Устраняем проблему

    1. Удаляем пакеты
    #
    apt-get remove gvfs gvfs-backends gvfs-fuse

    2. Устанавливаем пакеты, скачанные отсюда:
    для i386:
    для amd64:

    3. Если при удалении gvfs был удален nautilus, не забываем его поставить:
    #
    apt-get install nautilus

    Вот в принципе и все, хотя этот вариант не идеален и нет 100% гарантии, что он у вас сработает, разработчики клятвенно обещают, что в последующих за Hardy версиях, данная ошибка никогда больше не всплывет... ну чтож, нам остается лишь поверить и положиться на их обещания :)

    P.S. Хочу выразить благодарность folex за его помощь при поиске решения данной ошибки, недавно возникшей у него самого.

    2 сентября 2008 г.

    Исправляем меню "Приложения", после неудачного редактирования меню

    Очень часто многие сталкиваются с такой проблемой, что после редактирования основного меню на гномовской панели, перестает открываться меню 'Приложения'. Чаще всего это происходит по вине Wine'вских пунктов меню, когда пытаешься удалить их, то в 99% случаев, меню у вас, после этого не откроется.



    Восстанавливаем меню

    Чтобы восстановить работоспособность меню, нам надо просто удалить файлик applications.menu (потом он автоматически будет создан при первом использовании меню)
    $
    rm ~/.config/menus/applications.menu

    Вот и все, меню снова работает нормально.

    29 августа 2008 г.

    BluePad - делаем bluetooth-пульт из вашего мобильника

    BluePad - программка при помощи которой, можно с вашего мобильного телефона управлять вашим компьютером. Осуществляется это через bluetooth (необходимо иметь как на компе, так и на телефоне).
    И все же "управление вашим компьютером" - это громко сказано. Программа позволяет присваивать клавишам телефона, определенные клавиши на компьютере, а также управлять курсором и клавишами мыши.


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

    Установка программы

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

    1. Скачиваем необходимые нам файлы с офсайта программы. Скачиваем .deb файл под убунту и .jar файл для мобильного телефона.
    2. Устанавливаем скачанный deb-пакет. А скаченный jar'ик кидаем на телефон и устанавливаем (поддерживаются, практически все телефоны с поддержкой MIDP 2.0, ну и с наличием bluetooth на борту).
    3. Запускаем bluepad на компе (ярлык программы располагается в 'Приложения'->'Аудио и Видео'->'BluePad'). Программа запускается в трее.
    3.1. На телефоне ставим режим обнаружения, если это необходимо.
    3.2. Кликаем по программе в трее правой кнопкой мыши и выбираем 'Подключиться'.
    3.3. В появившемся окошке нажимаем 'Найти'.
    3.4. После того, как телефон обнаружен, выберите его из списка и нажмите 'Подключиться'.
    Если все нормально, то должно появиться всплывающее сообщение о том, что программа ждет подключения вашего телефона.
    4. Запускаем java-приложение на телефоне.
    4.1. Заходим в пункт меню 'Choose Device' и нажмите 'Scan', для поиска вашего компьютера.
    4.2. После того, как компьютер обнаружен, выбираем его из списка, заходим в 'Параметры' и выбираем пункт 'Connect to dev.'
    Все, теперь ваш телефон подключен к компьютеру.

    Возможности программы

    1. Режим 'Презентация'.
    Предназначен для просмотра презентаций созданных в OpenOffice.org. Хотя можно перенастроить под свои нужды.
    4 клавиши...
    Начать презентацию
    Следующий слайд
    Предыдущий слайд
    Выйти из режима презентации
    2. Режим 'Видео/Музыка'.
    Предназначен для управления видео/аудио плеером. Можно переназначить под свои нужды.
    9 клавиш...
    Открыть на полный экран
    Начать проигрывание
    Пауза
    Остановить проигрывание
    Закрыть(свернуть) программу
    Предыдущий трек
    Следующий трек
    Увеличить громкость
    Уменьшить громкость
    3. Режим 'Игра'.
    Предназначен для замены джойстика в играх. Все клавиши можно переназначить.
    10 клавиш...
    Вверх
    Вниз
    Влево
    Вправо
    Start
    Select
    игровая клавиша A
    игровая клавиша B
    игровая клавиша C
    игровая клавиша D
    4. Режим 'Мышь'.
    Предназначен для эмулирования действий двухкнопочной мыши.
    10 клавиш...
    Кнопка телефона - действие мыши
    1 - Влево-Вверх
    2 - Вверх
    3 - Вправо-Вверх
    4 - Влево
    5 - Левая кнопка мыши
    6 - Вправо
    7 - Влево-Вниз
    8 - Вниз
    9 - Вправо-Вниз
    0 - Правая кнопка мыши
    Видеоролик .

    Каждую клавишу можно переназначить, как для PC, так и для телефона. Если с клавишами телефона все понятно, то вот с клавишами PC, все не так гладко. Дело в том, что список этих клавиш - оганичен алфавитом, функциональными клавишами + (Enter, Space, Esc), стрелками управления и кнопками регулирования громкости. Сочетаниий клавиш, к сожалению, нет, а ведь они так нужны ;( будем надеяться, что их добавят в следующих версиях.

    На момент написания статьи, на офсайте лежала версия 0.4, как для серверной части, так и для клиентской. Правда, кто хочет, может из cvs вытянуть версию 0.5 для клиентской части, правда ничего особенного, кроме измененного меню, я не заметил.

    27 августа 2008 г.

    Убираем запрос на ввод пароля

    Решил написать эту статейку, в связи с тем, что меня часто спрашивают: "А как мне избавиться от постоянного ввода пароля на выполнение, каких-либо, админских действий?".



    Вы должны быть в курсе, что в Убунту, в отличии от многих других дистрибутивов, при установке, первый создаваемый юзер наделен админскими полномочиями, чтобы лишний раз не дергать учетную запись root. Это, на мой взгляд, очень удобно. Но хоть вы и наделены админскими полномочиями, все равно при любом действии, требующем админских прав, у вас будет спрашиваться ваш пароль. Это логично, особенно, если вы используете убунту на работе или боитесь, чтобы кто-нибудь, случайно в ваше отсутствие вам не навредил. Но если убунту стоит у вас дома и никто кроме вас к этому компьютеру доступа не имеет? Со временем, постоянный ввод пароля, начинает выводить некоторых людей из себя. В этот момент они (почему-то всегда) начинают вспоминать, как хорошо было в ЗлоХП, когда не надо было постоянно вводить эти пароли :)

    Не нервничайте, на самом деле все не так плохо. Все легко поправимо.

    Убираем запрос на ввод пароля

    1. Редактируем файл /etc/sudoers:
    $
    sudo visudo

    Важно!!! Настоятельно рекомендуется, редактировать файл sudoers, только с помощью команды, приведенной выше.
    2. Входим в режим вставки (нажимаем Insert) и добавляем строку:
    <имя пользователя> ALL=NOPASSWD: ALL
    ясно дело, имя пользователя заменяется на ваше и вводится без фигурных скобок.
    3. Сохраняем изменения и выходим из редактора. Для этого выходим из режима вставки (нажимаем Esc), вводим :wq и нажимаем Enter.

    Все! Вот теперь ваши админские действия не будут сопровождаться постоянным выводом запроса на ввод вашего пароля.

    18 июля 2008 г.

    VoIP чаты для игроманов

    Я уверен, что под линукс существует множество различных программ для общения голосом через сеть/интернет, но в этой статье я расскажу про два представителя игровых VoIP чата - TeamSpeak и Mumble.

    8 июля 2008 г.

    Настройка джойстика в Ubuntu

    На днях попал мне в руки джойстик от фирмы Logitech - Logitech RumblePad 2 USB. Не скрою, джойстик отличный, по крайней мере среди себе подобных. Что приятно удивило, что данный джойстик сразу прекрасно заработал в ubuntu i386, а вот в моей amd64 - не захотел, хотя это скорее всего моя вина, так как на машине с amd64 я уже столько экспериментировал, что этого вполне стоило ожидать )) Ну ниче, это дело поправимое.

    29 июня 2008 г.

    Не включается сетевая карта в Ubuntu

    Недавно, при установке Ubuntu на компьютер с уже установленной ЗлоОС, столкнулся со следующей проблемой: не захотела работать сеть, хотя сетевуху ubuntu видит, да и особенностей с сетью нет, стандартные ip-адрес + ip шлюза. После недолгого разбирательства, было выяснено, что во всем виновата ЗлоОС )))



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

    Решение проблемы

    1. Загружаемся под ЗлоОС, если вы ее снесли (на что я искренне надеюсь), то загрузитесь с любого зугрузочника с виндой, по типу WinXPe и ему подобных.
    2. Заходим в настройки дров сетевухи, кому как удобно, или 'Мой компьютер'->'свойства'->'оборудование'->'диспетчер устройств'->'сетевые платы'->'сетевой адаптер <название вашей сетевухи>'->'свойства'->'дополнительно' или попроще - 'сетевые подключения'->'подключения по локальной сети'->'свойства'->'настроить'->'дополнительно'.
    3. Находим пункт 'Wake-On-Lan After Shutdown' и выставляем 'Enable', как на скриншоте.
    4. Перезагружаем компьютер и заходим в Ubuntu.
    Все должно работать - теперь сеть начинает вам подмигивать зеленым "огоньком" сетевой карты ))

    14 июня 2008 г.

    Исправляем широкие кнопки gcalctool в Ubuntu 8.04 (9.10)

    Многие, наверное, заметили, что в Ubuntu 8.04 - кнопки в калькуляторе gcalctool, вместо меленьких квадратных кнопок, превратились в довольно широкие неуклюжие кнопки.
    - вот как выглядит это безобразие. Если в простом режиме это не вызывает препятствий в работе с программой, то переключив режим в 'Расширенный' - работать нормально, практически, не возможно.

    4 мая 2008 г.

    Проблема с переключением раскладки клавиатуры в Ubuntu 8.04

    С переходом на версию Ubuntu 8.04 я первым делом столкнулся с весьма досадным багом, который заключался в следующем. Например я, люблю в убунте переключаться между языками с помощью клавиши CapsLock, кто-то любит сочетание Ctrl+Shift, в отличии от стандартного сочетания клавиш Alt+Shift, поэтому первым делом я зашел в 'Система'->'Параметры'->'Клавиатура'->'Раскладки' и выставил себе свое любимое сочетание. Все применилось, я нормально продолжал работать, пока не перезагрузил компьютер. После перезагрузки мое сочетание не работало и так происходило каждый раз, сколько бы я не менял раскладку в настройках.

    Посмотрев файл xorg.conf, я с досадой обнаружил, что настройки клавиатуры, после изменения, не сохраняются в этом файле. Я попробовал прописать их сюда вручную, но сочетание начинало работать только в том случае, если в настройках клавиатуры была убрана галочка с пункта 'Отдельная раскладка для каждого окна'. Ясно дело, этот способ меня не у строил, поэтому пришлось поискать более приемлимый вариант.
    Ниже приведенный способ, сложно назвать решением проблемы, скорее всего это смахивает на костыль, но что поделать, придется пока довольствоваться им, пока не выпустят исправление к столь досадному багу.
    В статье описывается комбинация клавиш Ctrl+Shift, ваша задача подставлять свои данные.

    Исправление бага

    1. Первым делом идем и выставляем в настройках 'Раскладки' нужную нам комбинацию клавиш, ну и попутно все остальное.
    2. Теперь в терминале пишем:
    $
    xprop -root | grep XKB

    На выводе мы видим примерно следующее:
    _XKB_RULES_NAMES_BACKUP(STRING) = "xorg", "pc105", "us", "grp:alt_shift_toggle"
    _XKB_RULES_NAMES(STRING) = "xorg", "pc105", "us,ru", ",winkeys", "grp:ctrl_shift_toggle,grp_led:scroll"

    _XKB_RULES_NAMES_BACKUP - это данные из файла /etc/X11/xorg.conf;
    _XKB_RULES_NAMES - это данные из текущей сессии, в которой вы работаете. Нам потребуется именно эта строка.
    3. Открываем для редактирования файл /etc/X11/xorg.conf
    $
    sudo nano /etc/X11/xorg.conf

    4. Ищем секцию Section "InputDevice" где описывается клавиатура.
    И меняем ее в соответствии с данными полученными из строки _XKB_RULES_NAMES. В итоге должно получиться что-то вроде этого:
    Section "InputDevice"
    Identifier "Generic Keyboard"
    Driver "Keyboard"
    Option "CoreKeyboard"
    Option "XkbRules" "xorg"
    Option "XkbModel" "pc105"
    Option "XkbVariant" ",winkeys"
    Option "XkbLayout" "us,ru"
    Option "XkbOptions" "grp:ctrl_shift_toggle,grp_led:scroll"
    EndSection
    Не забудьте поменять значение параметра 'Driver' с kbd на Keyboard - иначе ничего не выйдет.
    5. Перезагружаемся.
    Если все правильно сделано, то переключение раскладки будет работать так, как вам нужно :)

    3 мая 2008 г.

    Настройка VPN в Ubuntu

    Не думал писать эту статью, но так как в Ubuntu 8.04, так нормально и не сделали Network Manager при работе в сети со статическими IP адресами, то все таки опишу, как я вручную настраиваю у себя подключение к VPN.



    Настройка с помощью Network Manager'а

    Как бы там ни было, но все таки опиши настройку впн с помощью network-manager'а. Эта настройка вполне подойдет тем, у кого в подключении к сети используется автоматическое получение IP адреса с помощью DHCP.
    1. Устанавливаем два необходимых нам пакета:
    #

    Так как этих пакетов по умолчанию нет на диске с убунтой, а впн часто приходится настраивать на машине, у которой больше нет другого выхода в интернет, то советую заранее припастись этими пакетами с официального репозитория. Для этого заходим на сайт http://packages.ubuntu.com/, там ищем два эти пакета, закачиваем их и в дальнейшем устанавливаем на нужной нам машине.
    2. Если в аплете Network Manager не появился пункт "VPN соединения"(VPN Connections) или он не будет открываться, то надо перелогиниться или даже лучше - перезагрузиться.
    3. Нажимаем левой клавишей мыши (по правой кнопке вызывается другое меню) по значку Network Manager'а и в выпавшем меню выбираем "VPN соединения" - "Настройка VPN"(Configure VPN). Добавляем новое соединение и выставляем все нужные опции для этого соединения.
    4. После этого, ваше соединение должно появиться в меню "VPN соединения", если оно вдруг не появилось - перелогиньтесь или перезагрузитесь (ну что я могу поделать, на столько, все еще, сырой этот network-manager :( ).
    5. Все теперь можете подключаться к созданному вами впн соединению (а также и отключаться, выбрав пункт меню в Network Manager'е).

    Ручная настройка

    Дальше я описываю настройку для своего соединения, ваша настройка должна отличаться вводимыми данными, а также может отличаться вводимыми параметрами.
    1. Устанавливаем пакет pptp-linux:
    #
    apt-get install pptp-linux

    Как я уже описывал выше в разделе установки с помощью network-manager'а, впн часто приходится настраивать на машине, у которой больше нет другого выхода в интернет, поэтому советую заранее припастись этим пакетом с официального репозитория http://packages.ubuntu.com/.
    2. Редактируем файл options.pptp:
    #
    nano /etc/ppp/options.pptp

    Вставляем туда следующие строки:
    lock
    noauth
    nobsdcomp
    nodeflate
    persist
    Не буду описывать каждый из параметров, опишу лишь некоторые:
    persist - этот парметр пытается по новой открыть соединение, когда оно закрывается;
    nodeflate - не использовать deflate сжатие (хотя говорят с ним работает быстрее, не знаю - не проверял).
    Также, если у вас в соединении используется шифрование, то добавляем одну из строк, в зависимости от типа шифрования - require-mschap-v2, require-mppe-40, require-mppe-128, require-mppe.
    3. Создаем файл подключения /etc/ppp/peers/vpn (название vpn можете заменить на любое другое, но если замените, не забывайте менять его дальше в этой статье)
    #
    nano /etc/ppp/peers/vpn

    Вставляем туда следующие строки:
    maxfail 0
    lcp-echo-interval 60
    lcp-echo-failure 4
    defaultroute
    pty "pptp vpn.ava.net.ua --nolaunchpppd"
    name sukochev
    remotename PPTP
    +chap
    file /etc/ppp/options.pptp
    ipparam vpn
    Внимание!!! Обязательно замените следующие опции на ваши:
    Вместо vpn.ava.net.ua впишите адрес вашего впн сервера (можно использовать IP сервера). Вместо sukochev вставляете ваш логин подключения.
    Опишу некоторые параметры:
    maxfail 0 - всегда пытаться подключиться при отсутствии связи;
    lcp-echo-interval - интервал времени, по прошествии которого, происходит опрос удаленной стороны;
    lcp-echo-failure - количество не отвеченных запросов удаленной стороны, после чего система считает, что нас отключили;
    defaultroute - устанавливаем маршрут по умолчанию;
    +chap - тип аутентификации. Помимо +chap может использоваться тип +pap.
    file - читать дополнительные настройки из заданного файла.
    Также можно добавить, если нужно, следующие параметры:
    deflate 15,15 - использовать deflate сжатие (в файле options.pptp не должно быть параметра nodeflate);
    mtu - максимальный размер передаваемого пакета (изменяют этот параметр обычно тогда, когда часто отключается соединение или не открываются некоторые сайты);
    mru - максимальный размер получаемого пакета.
    4. Редактируем файл /etc/ppp/chap-secrets (если используется тип аутентификации PAP, то /etc/ppp/pap-secrets соответственно)
    #
    nano /etc/ppp/chap-secrets

    Вставляем туда строку, типа:
    sukochev PPTP password *
    Внимание!!! Замените sukochev на свой логин, а password на ваш пароль для подключения.
    5. Если это необходимо, то прописываем в файл /etc/network/interfaces нужные роуты. Например у меня роуты прописаны для того, чтобы при включенном впн-подключении я мог пользоваться местной локальной сетью. Вот пример моих роутов (те что начинаются на up route), у вас они естественно будут отличаться:
    auto eth1
    iface eth1 inet dhcp
    up route add -net 10.1.0.0 netmask 255.255.0.0 gw 10.1.45.1 dev eth1
    up route add -net 10.3.0.0 netmask 255.255.0.0 gw 10.1.45.1 dev eth1
    Не забываем после изменения файла /etc/network/interfaces перезапустить сетевые подключения:
    #
    /etc/init.d/networking restart

    6. Теперь можете включать и выключать впн подключение с помощью следующих команд:
    Включение
    #
    pon vpn

    Выключение
    #
    poff vpn



    Автоматическое подключение VPN при загрузке системы

    Для этого редактируем файл /etc/network/interfaces
    #
    nano /etc/network/interfaces

    И вставляем в конец фйла следующие строки:
    auto ppp0
    iface ppp0 inet ppp
    provider vpn
    pre-up ip link set eth1 up
    up route del default
    up route add default dev ppp0
    где eth1 - это интерфейс сетевого устройства, через которое подключается впн-соединение, а vpn - название впн-соединения, которое вы создали в папке /etc/ppp/peers/ .

    2 мая 2008 г.

    Проблема c установкой Ubuntu 8.04 на винт Seagate (Barracuda ST 340016A)

    Решил установить Ubuntu 8.04 на свой комп, но неожиданно столкнулся с нестандартной проблемой - убунта не захотела ставиться на мой винт Seagate (Barracuda ST 340016A, 40Gb, ide) ((. Пробовал грузиться с LiveCD и просто устанавливать - убунта пыталась загрузиться, но безуспешно выкидывала меня в командную строку, при этом загрузка прекращалась.



    Ну что ж, приступим к разбору полетов.

    Для начала посмотрел в чем причина, для этого в меню загрузки Убунты, нажал F6 и в конце строки редактирования параметров загрузки - убрал splash, и запустил установку. В итоге я увидел следующие ошибки:
    [10278.952000] Buffer I/O error on device sr0, logical block 32
    [10278.952000] Buffer I/O error on device sr0, logical block 32
    [10305.952000] Buffer I/O error on device sr0, logical block 32
    Чуть не забыл, опишу как у меня разбит винт:
    20Gb - NTFS Windows XP
    500Mb - ext3 (Boot)
    1Gb - Swap
    6Gb - /
    Остальное место - ext3 (Home)
    Итак продолжим.
    Мне посоветовали удалить разделы с помощью Acronis Disk Director Suite v10.0.2077 Russian - после этого перестала загружаться Windows, т.к. стала недоступна загрузочная запись (было не очень обидно, т.к. успела обрасти мусором и глюками).
    Решил полностью отформатировать винт, при этом опять на 20Gb установил винду, а остальное место выделил под винду. В этот раз ошибка немного изменилась:
    [10278.952000] Buffer I/O error on device sr0, logical block 8
    [10278.952000] Buffer I/O error on device sr0, logical block 8
    [10305.952000] Buffer I/O error on device sr0, logical block 8
    В общем легче мне не стало.
    Продолжил гуглить и после многих не нужных советов наткнулся на решение проблемы!
    Грузимся с диска убунты, снова нажимаем F6 и в строку редактирования параметров загрузки дописываем параметр all_generic_ide и загружаемся.
    Ура! Ubuntu загрузилась, и нормально установилась!

    19 апреля 2008 г.

    Простой DHCP-сервер + прозрачный прокси на Squid

    Для начала опишу ситуацию, почему я установил у себя на компьютере связку dhcp-сервера и прозрачного прокси на squid. Все дело в том, что мне частенько приходится дома работать с несколькими компьютерами одновременно (что-нить настроить и т.п.), но постоянно каждому компьютеру прописывать ручками ip, а так же прописывать настройки прокси очень не удобно, можешь забыть, что ты уже использовал какой-то ip - поэтому и получаешь конфликты ip-адресов.


    Хочу сразу предупредить, что описал лишь только те параметры конфигурационных файлов, которые необходимы для простой работы dhcp-сервера и прокси Squid. Так как этих параметров уйма, предлагаю вам самим с ними поразбираться, а не упрекать меня в том, что я что-то не описал.

    Установка DHCP-сервера

    1. Устанавливаем dnsmasq
    $
    sudo apt-get install dnsmasq

    2. Редактируем файл /etc/dnsmasq.conf
    $
    sudo nano /etc/dnsmasq.conf

    3. Ищем закомментированную строку (что то вроде этого):
    #interface=
    раскомментируем и изменяем ее
    interface=eth0
    при этом не забываем поменять название сетевой карты - eth0 на название вашей сетевой карты, к которой будут конектиться другие компьютеры из вашей сети.
    4. Дальше, в этом же файле, раскомментируем или добавляем свою строку: dhcp-range= . К примеру, вот как она выглядит у меня:
    dhcp-range=192.168.0.2,192.168.0.15,12h
    данная запись означает, что всем компьютерам подключающимся к моей сети, будут автоматически выдаваться ip-адреса, c 192.168.0.2 по 192.168.0.15. И аренда этих адресов будет составлять 12 часов.
    5. Перезапускаем сервис dnsmasq:
    $
    sudo /etc/init.d/dnsmasq restart

    6. Подключаем в сеть какой-нить компьютер, при этом не забываем поставить ему в сетевых настройках, получение ip-адреса автоматически. Если все верно - то компьютеру присвоится ip-адрес из заданного нами в настройках диапазона.

    Установка прозрачного прокси.

    1. Устанавливаем squid (и если потребуется, другие нужные пакеты, которые он запросит автоматически):
    $
    sudo apt-get install squid

    2. Редактируем файл настроек squid:
    $
    sudo nano /etc/squid/squid.conf

    3. Ищем параметр http_port , и выставляем ему следующее значение (к примеру, как у меня):
    http_port 3128 transparent
    ключевое слово здесь - это transparent, в результате его мы и получим "прозрачный" прокси. А 3128 - это порт для протокола http.
    4. В этом же файле ищем параметр visible_hostname и выставляем ему следующее значение:
    visible_hostname (название прокси)
    где (название прокси) - можете заменить на любое слово или словосочетание. Если вы не заполните данный параметр - squid будет очень сильно ругаться ))
    5. Ищем дальше. Теперь ищем параметр acl localhost и добавляем после него такую строку (вот как к примеру у меня):
    acl our_networks src 192.168.0.0/255.255.255.0
    также, в соответствующий раздел ниже, добавляем
    http_access allow our_networks
    Данными строками мы разрешили доступ к прокси для компьютеров из нашей сети 192.168.0.0.
    6. Перезапускаем сервис squid:
    $
    sudo /etc/init.d/squid restart

    7. Ну и наконец-то завершающий аккорд. Добавим правило перенаправления портов в наш файервол.
    $


    sudo iptables -t nat -A PREROUTING -i eth0 -d ! 192.168.0.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.0.1:3128

    8. Теперь компьютеры в вашей сети смогут выходить в интернет через ваш "прозрачный" прокси, при этом нам нигде не надо прописывать настройки прокси вручную !! Все работает автоматом.

    P.S. Чтобы снова, при каждом включении компьютера, не запускать по новой правило для файервола, проделываем следующее:
    1. Запускаем правило для файервола:
    $


    sudo iptables -t nat -A PREROUTING -i eth0 -d ! 192.168.0.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.0.1:3128

    2. Сохраняем список всех правил файервола в файл:
    $ #
    sudo -s
    iptables-save > /etc/iptables.rules

    3. Редактируем файл /etc/network/interfaces
    #
    nano /etc/network/interfaces

    и после блока про сетевую карту eth0 (к примеру, у меня так), вставляем строку
    pre-up iptables-restore < /etc/iptables.rules
    3.1. Если вы пользуетесь network-manager и у вас нет описания сетевой карты в /etc/network/interfaces, то редактируем файл /etc/rc.local
    #
    nano /etc/rc.local

    и перед строкой exit 0, вставляем строку
    iptables-restore < /etc/iptables.rules

    Вот собственно и все ))

    7 апреля 2008 г.

    Сканер Primax Colorado 600p в Ubuntu

    Недавно возникла необходимость отсканировать несколько обычных фотографий на компьютер, для дальнейшей их обработки, в связи с этим пришлось пошарить в старом железе и отыскать мой старенький сканер Primax Colorado 600p, который мне интересно было опробовать в убунте.


    Отыскав сканер, первым делом я проверил, подрубит ли убунта столь старенький сканер или же как ЗлоХП (с сервис паком вторым, категорически отказывается понимать родные дрова на сканер) - откажется. К моему разочарованию - результат был отрицательным :(
    Но расстраиваться я не стал, а сразу же начал изучать инэт на наличие инфы по решению данной проблемы.

    Установка поддержки сканера в убунте.

    Решение отыскалось быстро, так что спешу поделиться им с вами.
    1. Скачиваем deb драйвер для сканера
    $

    wget http://zub.fei.tuke.sk/primax/pxscansane/pxscansane_0.41.sane1.2_i386.deb

    2. Устанавливаем скачанный драйвер
    $
    sudo dpkg -i pxscansane_0.41.sane1.2_i386.deb

    3. Все, теперь можете спокойно пользоваться сканером в своей любимой убунте ))

    P.S. Если у вас другая модель сканера фирмы Primax, можете поискать драйвера здесь

    30 марта 2008 г.

    Установка заставки для Grub и Grub-gfxboot

    Вот захотел немного приукрасить свою убунту и решил начать с заставки для менеджера загрузки - Grub.



    Установка заставки для стандартного Grub.

    1. Для начала нам потребуется сама заставка, в нэте их валом, я например предпочитаю брать их с сайта www.gnome-look.org.
    2. Все, допустим вы уже скачали понравившуюся заставку (у меня к примеру она называется ubuntu_grey_grub.xpm.gz и находится в домашней папке), теперь скопируем ее в папку /boot/grub/ (но никто не мешает вам использовать другую папку):
    #
    cp ~/ubuntu_grey_grub.xpm.gz /boot/grub/

    3. Редактируем файл menu.lst :
    #
    nano /boot/grub/menu.lst

    и, к примеру, перед строкой '## ## End Default Options ##' вставляем строку указывающую путь к нашей заставке:
    splashimage=(hd0,0)/boot/grub/ubuntu_grey_grub.xpm.gz
    !!!WARNING: (hd0,0) - замените на свое значение, чтобы его узнать, наберите в консоли:
    #
    grub

    теперь наберите:
    >
    find /boot/grub/stage1

    и полученный результат вставьте на место (hd0,0).
    4. Перезагружаемся. Теперь на этапе менеджера загрузки вы увидете ту заставку которую установили. Согласитесь - это получше, чем просто черный экран с несколькими строками выбора ОС.
    - вот как, к примеру, выглядит измененная заставка для grub.

    Установка заставки для Grub-gfxboot.

    Как бы красиво не смотрелась заставка для grub, всегда хочется чего-нить новенького :) Поэтому следующим делом - я решил поставить grub-gfxboot с ее более оригинальными заставками.

    1. Как и ранее, первым делом нам понадобится заставка для grub-gfxboot. Так же как и обычные заставки для grub, эти заставки можно легко найти на просторах инэта, ну а я как и ранее, воспользовался сайтом www.gnome-look.org (в поиске на сайте ищите по слову: gfx). В моем случае заставка называется message.gulliver (обычно заставки для grub-gfxboot начинаются на message.*) и находится в домашней папке.
    2. Устанавливаем gfxboot:
    #
    apt-get install gfxboot

    3. Удаляем стандартный grub:
    #
    apt-get remove grub

    4. Скачиваем последнюю версию grub-gfxboot (на момент написания, последняя версия была grub-gfxboot_0.97-11-ubuntu1_all)
    $

    wget -c http://www.guiaubuntupt.org/files/gfxboot/grub-gfxboot_0.97-11-ubuntu1_all.deb

    5. Устанавливаем grub-gfxboot:
    #
    dpkg -i grub-gfxboot_0.97-11-ubuntu1_all.deb

    6. Копируем скачанную заставку в /boot/grub/ :
    #
    cp ~/message.gulliver /boot/grub/

    7. Редактируем файл menu.lst :
    #
    nano /boot/grub/menu.lst

    и в начало файла вставляем строку указывающую путь к нашей заставке:
    gfxmenu /boot/grub/message.gulliver
    8. Теперь сконфигурируем grub, для этого набираем в консоли:
    #
    grub

    дальше пишем:
    >
    find /boot/grub/stage1

    на выходе получаем примерно следующее:
    (hdx,y)
    где x и y - у вас могут отличаться (у меня к примеру: (hd0,0)).
    Дальше используем полученное значение в следующих командах:
    > > >
    root (hd0,0)
    setup (hd0)
    quit

    !!!WARNING: не забывайте заменить (hd0,0) и (hd0) на свои значения.
    9. Инсталлируем grub-gfxboot на нужный нам жесткий диск:
    #
    grub-install /dev/sda

    вместо /dev/sda используйте свое значение. Посмотреть как называются ваши жесткие диски и какие на них есть разделы можно с помощью команды:
    #
    fdisk -l

    10. Перезагружаемся. Теперь на этапе менеджера загрузки вы увидете ту заставку которую установили. А это - как раз то, что мне нужно ))
    - вот как, к примеру, выглядит измененная заставка для grub-gfxboot.

    15 марта 2008 г.

    Настройка LS_COLORS в Ubuntu

    Те кто работал в других дистрибутивах, не на deb основе, наверняка, для своего удобства, настраивали переменную среды LS_COLORS. Причем, делалось это очень просто с помощью файлов /etc/DIR_COLORS или ~/.dir_colors. Но в Ubuntu этих файлов нет... как же быть?

    Создание этих файлов вручную, вам не поможет.
    Для начала напомню для чего я использую LS_COLORS. Все очень просто, с помощью этого параметра я могу изменить цветовую схему отображения файлов и каталогов в консоли(терминале) при работе с командой ls. Мне это нужно как для консоли, так и для Gnome Commander, он тоже в определенной мере поддерживает цветовые последовательности LS_COLORS. Хотя в Ubuntu по-умолчанию есть своя цветовая схема - мне она не по душе.

    Приступим к настройке.

    1. Для начала сохраним дефолтные настройки LS_COLORS в файл .lscolors для последующего изменения
    $
    dircolors -p > ~/.lscolors

    2. Отредактируем настройки
    $
    nano .lscolors

    в открывшемся файле можно поправить цвета по типу операторов.
    Список операторов...

    TERM terminal-type
    Начинает секцию, специфичную для терминала, и указывает, к какому типу терминала она применима. Можно использовать несколько операторов TERM, чтобы создать секцию, применимую к нескольким типам терминалов.
    COLOR yes|all|no|none|tty
    Указывает, что расцветка должна быть всегда разрешена (yes или all); никогда не разрешена (no или none) или разрешена, только если вывод происходит на терминальное устройство (tty).
    EIGHTBIT yes|no
    Указывает, разрешены ли по умолчанию восьмибитные символы ISO 8859. Из соображений совместимости можно также указывать 1 (означает yes) или 0 (означает no).
    OPTIONS options
    Добавляет опцию командной строки к стандартной командной строке ls. Здесь можно указать любую разрешенную опцию команды ls, причем нужно указать начальный знак минус. Заметьте, что dircolors не проверяет, верны ли эти опции.
    NORMAL color-sequence
    Задает цвет, используемый для нормального (не имя файла) текста.
    FILE color-sequence
    Задает цвет, используемый для обычного файла.
    DIR color-sequence
    Задает цвет, используемый для каталогов.
    LINK color-sequence
    Задает цвет, используемый для символьных ссылок.
    ORPHAN color-sequence
    Задает цвет, используемый для сломанной символьной ссылки (указывающей на несуществующий файл). Если этот цвет не задан, то ls будет использовать вместо него цвет LINK.
    MISSING color-sequence
    Задает цвет, используемый для пропавшего файла (несуществующего файла, на который указывает символьная ссылка). Если этот цвет не задан, то ls будет использовать вместо него цвет FILE.
    FIFO color-sequence
    Задает цвет, используемый для FIFO (именованного канала).
    SOCK color-sequence
    Задает цвет, используемый для сокета.
    BLK color-sequence
    Задает цвет, используемый для специального файла блочного устройства.
    CHR color-sequence
    Задает цвет, используемый для специального файла символьного устройства.
    EXEC color-sequence
    Задает цвет, используемый для файла с установленным атрибутом выполнения.
    LEFTCODE color-sequence
    Задает левый код для не-ISO 6429 терминалов.
    RIGHTCODE color-sequence
    Задает правый код для не-ISO 6429 терминалов.
    ENDCODE color-sequence
    Задает конечный код для не-ISO 6429 терминалов.
    *extension color-sequence
    Задает цвет, используемый для файлов, чьи имена заканчиваются на заданное расширение extension.
    .extension color-sequence
    То же самое, что и *.extension. Задает цвет, используемый для файлов, чьи имена заканчиваются на .extension. Заметьте, что точка входит в состав расширения, и из-за этого невозможно указать расширение, не начинающееся с точки, например ~ для резервных копий.
    Список цветовых последовательностей...

    Эти последовательности составлены из последовательности чисел, разделенных точками с запятой. Самые распространенные коды таковы:
    00 восстановление цвета по умолчанию
    01 включить яркие цвета
    04 подчеркнутый текст
    05 мигающий текст
    --
    30 черный текст
    31 красный текст
    32 зеленый текст
    33 желтый (или коричневый) текст
    34 синий текст
    35 фиолетовый текст
    36 cyan текст
    37 белый (или серый) текст
    --
    40 черный фон
    41 красный фон
    42 зеленый фон
    43 желтый (или коричневый) фон
    44 синий фон
    45 фиолетовый фон
    46 cyan фон
    47 белый (или серый) фон
    Более подробно про операторы и цветовые последовательности можете почитать в мануале по DIR_COLORS.
    К примеру чтобы файлы flash video(.flv) выделялись синим цветом, были ярко подсвечены и отображались на желтом фоне, добавляем в файл строку:
    .flv 01;34;43
    После настройки необходимых цветовых последовательностей не забываем сохраниться.

    3. Теперь сделаем, чтобы при любом обращении к bash применялись наши настройки. Для этого отредактируем файл ~/.bashrc
    $
    nano ~/.bashrc

    и добавим в конец файла строку:
    eval "`dircolors -b $HOME/.lscolors`"
    Все, теперь для проверки откройте терминал и выполните команду ls. Вывод этой команды должен быть расцвечен в ваши цвета.
    - вот, для примера, моя расцветка.

    4. Теперь мы добрались до Gnome Commander.
    Активируется поддержка LS_COLORS следующим образом: Настройки -> Параметры -> Расположение и активируем чекбокс Окрашивать файлы в соответствии с переменной среды LS_COLORS.
    Но если вы теперь запустите Gnome Commander, то увидите, что программа использует цвета, которые идут в Ubuntu по-умолчанию. Чтобы применить созданную нами цветовую схему, можно постоянно запускать коммандер из консоли, но сами посудите - это не совсем удобно.
    4.1. Для себя я проделал следующее (вы можете сделать это по другому).
    Переименовал запускающий файл gnome-commander в gnome-commander2
    $

    sudo mv /usr/bin/gnome-commander /usr/bin/gnome-commander2

    вывел на экран данные ~/.lscolors с помощью dircolors
    $
    dircolors ~/.lscolors

    Из выданного списка скопировал все, кроме последней строки: export LS_COLORS.
    Создал файл gnome-commander, взамен старого
    $
    sudo nano /usr/bin/gnome-commander

    и вставил туда скопированное ранее + добавил еще пару строк. Должно получиться, что-то типа этого:
    #!/bin/sh
    export LS_COLORS='no=00;37:fi=00;37:di=01;36:ln=04;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:tw=30;42:ow=34;42:st=37;44:ex=00:*.cmd=01;31:*.exe=01;31:*.com=01;31:*.btm=01;31:*.bat=01;31:*.sh=01;31:*.run=01;31:*.tar=33:*.tgz=33:*.arj=33:*.taz=33:*.lzh=33:*.zip=33:*.z=33:*.Z=33:*.gz=33:*.bz2=33:*.deb=33:*.rpm=33:*.jar=33:*.rar=33:*.jpg=32:*.jpeg=32:*.gif=32:*.bmp=32:*.pbm=32:*.pgm=32:*.ppm=32:*.tga=32:*.xbm=32:*.xpm=32:*.tif=32:*.tiff=32:*.png=32:*.mov=34:*.mpg=34:*.mpeg=34:*.avi=34:*.fli=34:*.flv=34:*.3gp=34:*.mp4=34:*.divx=34:*.gl=32:*.dl=32:*.xcf=32:*.xwd=32:*.flac=35:*.mp3=35:*.mpc=35:*.ogg=35:*.wav=35:*.m3u=35:';
    /usr/bin/gnome-commander2
    Сохранился и сделал файл исполняемым:
    $
    sudo chmod +x /usr/bin/gnome-commander

    Все, теперь я могу пользоваться gnome-commander как и раньше, но теперь он у меня будет с моей цветовой схемой.
    - вот, для примера, мой Gnome Commander.
    Способ конечно не изящный, если кто может посоветовать лучше, с удовольствием почитаю.

    29 февраля 2008 г.

    Установка и настройка Virtualbox

    Часто, мне по работе, необходимо тестировать различные вебпроекты на совместимость с различными браузерами. Если с Firefox и Opera все понятно, то для проверки в IE6 и IE7 мне приходится обращаться к ЗлоОС. Ясно дело ставить ее, как вторую систему, на свой комп я не собираюсь, для этого я воспользовался помощью виртуальных машин. После проверки различных виртуалок, остановился на VirtualBox, так как, по моему мнению, она довольно шустрая и справляется со своими обязанностями на ура.



    Приступим к установке.

    1. Добавляем оф. репозиторий программы
    deb http://download.virtualbox.org/virtualbox/debian non-free
    в файл '/etc/apt/sources.list'
    $ #

    #


    sudo -s
    echo deb http://download.virtualbox.org/virtualbox/debian non-free >> /etc/apt/sources.list
    wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -

    2. Устанавливаем Virtualbox
    $
    sudo apt-get install virtualbox

    Иногда может выскочить сообщение, что у вас есть несколько кандидатов на установку. Используем самую последнюю версию.
    3. Добавляем себя в группу vboxusers
    $
    sudo usermod -a -G vboxusers $USER

    4. Запускаем VirtualBox ('Приложения' -> 'Системные утилиты' -> 'Sun VirtualBox')

    5. Создаем новую виртуальную машину (нажимаем Создать).
    Тут, думаю, никаких трудностей у вас возникнуть не должно. Введете название виртуальной машины, выберите ТипОС (например: Windows XP). Оперативной памяти выставьте по своему желанию. При выборе загрузочного жесткого диска выберите Создать. Размер образа диска, лучше поставить: Динамически расширяющийся образ, это избавит вас от зря занятого свободного места, так как такой образ будет весить столько, сколько занято места внутри образа (например вы зададите для виртуальной машины 10Gb памяти, то она не будет занимать эти 10GB на жестком диске, так как будет весить примерно столько сколько весит ваша виртуальная система с установленными приложениями, и расширяться по мере установки новых приложений в виртуальной ОС)

    6. Настроим свойства новой виртуальной машины (нажимаем: Свойства).
    Здесь вы можете изменить настройки, которые применяли при создании виртуальной машины (guest), а также изменить другие. Здесь же можно подключить нужные устройства основной машины (host). Что подключить, зависит только от вас.
    Тут же можно настроить Общие папки для обоих систем. При добавлении новой папки вы выбираете папку у вас на host-машине, которая в последствии будет отображаться в сети в guest-машине.
    Все свойства я описывать не буду, так как мне они не особо нужны, с этим можете поэксперементировать сами.
    6.1. Нас интересует настройка 'CD/DVD-ROM'. Если вы будете ставить операционную систему с сд или двд диска, то выберите 'Физический CD/DVD привод' и вставьте диск с ОС в привод, если собираетесь ставить с образа .iso, то соответственно активируете пункт 'Файл ISO образа' и выберите iso-файл с ОС.
    Внимание! если вы, при настройке свойств виртуальной машины, включили поддержку 'Устройства USB', то при старте системы - может выскочить ошибка связанная с USB устройствами. Для решения этой проблемы редактируем файл /etc/fstab:
    $
    sudo nano /etc/fstab

    и вставляем в конец файла строку:
    none /proc/bus/usb usbfs devgid=124,devmode=664 0 0
    Для версии Ubuntu 9.10 нужно добавить своего пользователя в группу 'lp'
    $
    sudo usermod -a -G lp $USER

    после этого может потребоваться перезагрузка(или релогин) системы.
    7. Запускаем виртуальную машину (нажимаем: Старт)
    Первым делом вы увидите предупреждение о том, что, передача управления клавиатурой между host и guest системами, осуществляется с помощью спецклавиши (по умолчанию: Правый Ctrl). Эту клавишу можно сменить в настройках программы.
    Внимание! если при запуске у вас вылетает ошибка связанная с правами, проделайте следующее:
    $
    sudo chmod 666 /dev/vboxdrv

    7.1. Дальше вас ждет стандартная установка ОС, так если бы вы делали ее на обычном компе.

    8. После установки и входа в систему, первым делом следует установить virtualbox дополнения, которые очень сильно облегчат нам жизнь. Устройства -> Установить Дополнения гостевой ОС.
    После установки и перезагрузки guest-системы нам больше нет необходимости использовать спецклавишу 'Правый Ctrl', так как теперь окно получает фокус при наведении курсора мыши в область рабочего стола guest-системы. Плюс ко всему для нас открывается еще одна фича - режим Seamless. С помощью этого режима, guest-система (в моем случае WinXP) интегрируется в host-систему Ubuntu. Это очень прикольная вещь, теперь вы можете работать с окнами винды, так же, как вы работаете с окнами Gnome. Попробуйте, оно того стоит.
    Режим Seamless...
    . В ролике конечно не ахти видно, но все же...
    9. Приступим к настройки сети.
    Чаще всего, после создания виртуальной машины, VirtualBox автоматом создает в guest-системе сетевое соединение NAT, чтобы у guest-системы был доступ к интернету.
    Дальше описаны мои действия по настройки сети, так, чтобы виртуальная машина была видна, как отдельный комп, в моей домашней сетке.
    В кратце опишу мою конфигурацию сети:
    Есть два сетевых интерфейса eth0 и eth1.
    eth0 подключен к моей домашней сетке (в этой сети пара компов). на eth0 установлен dhcp сервер. eth0 имеет статический адрес 192.168.0.1 .
    eth1 подключен к внешней локальной сети моего района, по которой я получаю интернет через впн подключение.
    До версии 2.0...

    9.1. Установил необходимый софт для создания моста:
    $
    sudo apt-get install bridge-utils

    9.2. Отредактировал файл /etc/network/interfaces:
    $
    sudo nano /etc/network/interfaces

    добавив туда описание моста br0 :
    auto br0
    iface br0 inet static
    address 192.168.0.1
    netmask 255.255.255.0
    bridge_ports eth0
    и не забыв закомментировать (или удалить) данные про eth0 интерфейс.
    9.3. Перезагрузил сеть (чтобы применились изменения):
    $
    sudo /etc/init.d/networking restart

    9.4. Создал интерфейс vbox0, который будет использовать виртуальная машина:
    $
    sudo VBoxAddIF vbox0 (user) br0

    где (user) - это имя user'а который запускает VirtualBox, в моем случае этой был мой логин.
    9.5. Запустил VirtualBox и в Свойствах guest-системы зашел в раздел 'Сеть', отключил, созданный по умолчанию, NAT интерфейс и создал новый интерфейс с такими параметрами:
    Присоединен к: Хост-интерфейс
    MAC-адрес: сгенерируйте
    Имя интерфейса: vbox0
    9.6. Поправил настройки своих dhcp-сервера и firehol-файервола, заменив везде etho на br0.
    9.7. Стартовал guest-систему.
    Вот и все, сетевуха в виртуалке автоматом получила IP с dhcp-сервера, и теперь WinXP guest-машина - стала полноправным членом моей домашней сети.
    С версии 2.0 до 3.0...

    9.1. Установил необходимый софт для создания моста:
    $
    sudo apt-get install bridge-utils

    9.2. Перезагрузил сеть (чтобы применились изменения):
    $
    sudo /etc/init.d/networking restart

    появится новый интерфейс br0.
    9.3. Запустил VirtualBox и в Свойствах guest-системы зашел в раздел 'Сеть', отключил, созданный по умолчанию, NAT интерфейс и создал новый интерфейс с такими параметрами:
    Присоединен к: Хост-интерфейс
    MAC-адрес: сгенерируйте
    Хост-интерфейс: br0

    9.4. Стартуем guest-систему и видим, что она получила ip-адрес из той же подсети, что и мой компьютер.
    С версии 3.0:
    9.1. В 'Свойствах' гостевой системы в разделе 'Сеть', меняем 'Тип подключения' сетевого интерфейса с NAT на 'Сетевой мост'.
    9.2. Все, теперь после запуска гостевой системы, она будет как отдельный компьютер в сети.
    P.S. Если у вас нет сервера dhcp, то в гостевой системе пропишите ip вручную.

    Обновлено 09.11.2009г.

    18 февраля 2008 г.

    Оптимизация загрузки и работы системы

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



    Начнем с оптимизации скорости загрузки.

    Чтобы точно узнать сколько у нас на данный момент длится загрузка системы, воспользуемся программой bootchart:
    #
    apt-get install bootchart

    Теперь после каждой перезагрузки системы, в папке /var/log/bootchart, появляются графики загрузки (в виде .png картинок). Открыв их, вы сможете посмотреть, сколько длилась ваша загрузка и какие программы и демоны запускались дольше всего. В дальнейшем, сравните графики начальной скорости загрузки системы и после оптимизации описанной ниже. Если вам временно надо отключить создание графиков, то надо просто отключить демон программы:
    #
    /etc/init.d/stop-bootchart

    Пример графика...
    1. Этот способ актуален только для тех, у кого двухядерный процессор или процессор поддерживает технологию hyperthreading. Этот способ называется "Параллельная загрузка".
    1.1. Редактируем файл:
    #
    nano /etc/init.d/rc

    1.2. Ищем строку:
    CONCURRENCY=none
    и заменяем ее на строку:
    CONCURRENCY=shell
    1.3. Перезагружаемся.
    Сразу скажу - данный способ дает реальное уменьшение времени загрузки системы (по крайней мере у меня - загрузка уменьшилась на 30 секунд)
    Если после перезагрузки системы у вас появилось сообщение о том, что произошла ошибка HAL, надо сделать следующее:
    # # # #
    mv /etc/rc2.d/S12hal /etc/rc2.d/S13hal
    mv /etc/rc3.d/S12hal /etc/rc3.d/S13hal
    mv /etc/rc4.d/S12hal /etc/rc4.d/S13hal
    mv /etc/rc5.d/S12hal /etc/rc5.d/S13hal

    и все станет на свои места.

    2. Этот способ заключается в отключении запуска не нужных программ и демонов.
    2.1. Поотключайте не нужные программы с помощью Система -> Параметры -> Сеансы
    2.2. Поотключайте не нужные демоны через
    #
    /etc/init.d/(название программы) stop

    2.3. Покопайтесь в файлах rc.* в папке /etc
    Данный способ, в зависимости от вашей системы и вашей очистки, может ускорить загрузку системы на 3 - 20 секунд.
    ВНИМАНИЕ! Действия, приведенные в данном способе, вы выполняете на свой страх и риск.

    3. Этот способ заключается в отключении проверки fat32 разделов диска при каждой загрузке системы.
    3.1. Редактируем файл /etc/fstab
    #
    nano /etc/fstab

    3.2. Находим строку(и) в которой(ых) происходит подключение fat32 раздела(ов) и в конце этих строк заменяем последние две цифры на нули. Должно получиться, примерно, следующее:
    /dev/hdc1 /mnt/E vfat iocharset=utf8,umask=000 0 0
    После перезагрузки - постоянная проверка fat32 разделов вас не потревожит. Теперь можете делать проверку сами, вручную, с помощью команды fsck.

    Оптимизация работы системы.

    1. Настройка /proc/sys/vm/swappiness и /proc/sys/vm/vfs_cache_pressure.
    В псевдофайле swappiness хранится значение (в целых процентах), это уровень свободной памяти, при котором система начнет активно сбрасывать память в своп. Значение по умолчанию: 60. Изменяется значение от 0 до 100.
    В псевдофайле vfs_cache_pressure хранится значение - уровень выделяемой памяти под кэш. Значение по умолчанию: 100. Пределов значения, к сожалению не знаю.
    1.1. Если вы хотите ускорить работу системы (особенно те, кому жалко не задействованой оперативки во время работы системы), то измените значение системы, примерно, так:
    swappiness = 10 , vfs_cache_pressure = 1000 :
    # #
    echo 10 > /proc/sys/vm/swappiness
    echo 1000 > /proc/sys/vm/vfs_cache_pressure

    1.2. Если вы хотите больше использовать своп и кэширование файлов (актуально, например, при просмотре мелких картинок и т.п., а так же тем у кого оперативки меньше 128Мб), то измените значение системы, примерно, так:
    swappiness = 100 , vfs_cache_pressure = 10 :
    # #
    echo 100 > /proc/sys/vm/swappiness
    echo 10 > /proc/sys/vm/vfs_cache_pressure

    1.3. Теперь сделаем, чтобы эти параметры применялись при загрузке системы.
    Редактируем файл /etc/sysctl.conf
    #
    nano /etc/sysctl.conf

    добавим в конец файла строки
    vm.swappiness = 10
    vm.vfs_cache_pressure = 1000
    или
    vm.swappiness = 100
    vm.vfs_cache_pressure = 10

    2. Настройка CFQ IO Shedule.
    Так как в Ubuntu этот параметр, по умолчанию, работает как надо, то приведу этот способ для ознакомления.
    CFQ IO Shedule - шедулер ввода-вывода, старающийся выделить временные интервалы для каждого процесса. При используемом, на многих дистрибутивах по умолчанию, методе anticipatory, процесс, начавший интенсивно работать с диском, может не отдавать временные интервалы другим процессам. На десктопе это приводит к сильным тормозам. Пока какой-то процесс активно работает с диском, перерисовка GUI тормозит, программы запускаются по минуте и т.д. CFQ IO Shedule при значении cfg делает более равномерную загрузку.
    2.1. Проверяем какой метод использует CFQ IO Shedule:
    #
    cat /sys/block/hda/queue/scheduler

    если выбран метод anticipatory, то на выводе будет показано следующее:
    noop [anticipatory] deadline cfq
    2.2. Чтобы заменить его на cfg, делаем следующее:
    #
    echo cfq > /sys/block/hda/queue/scheduler

    и если мы еще раз выведем содержимое файла, то увидим:
    noop anticipatory deadline [cfq]
    После этого, система начинает более равномерно выделять доступ к диску всем фоновым процессам. Фактически это выражается в том, что система совершенно перестаёт тормозить при 100% загрузке IO Wait (интенсивная работа с винтом, копирование больших файлов и т.п.)

    3. Выключаем поддержку IPv6
    Этот способ нужен тем, кто совершенно не использует протокол IPv6 (как показывает моя практика - большинству). Отключение IPv6 влияет на скорость отображения сетевых шар, да и вообще скорость работы в сети.
    3.1. Редактируем файл /etc/modprobe.d/aliases:
    #
    nano /etc/modprobe.d/aliases

    3.2. Находим строку:
    alias net-pf-10 ipv6
    и заменяем ее на строки:
    alias net-pf-10 off
    alias ipv6 off

    4. Настройка /etc/hosts.
    Этот способ ускоряет запуск и работу программ, которые любят обращаться через loopback (например, гномовский терминал).
    4.1. Редактируем /etc/hosts
    #
    nano /etc/hosts

    4.2. Ищем строку:
    127.0.0.1 localhost
    добавляем в конец строки, через пробел имя своего пользователя, под которым вы сидите в системе, в моем случае, получилось так:
    127.0.0.1 localhost leolik

    5. Настройка java.
    По умолчанию в системе используется java 1.5, из-за этого многие java-приложения ужасно тормозят. Исправляем это положение, заставляя все приложения работать на версии java 1.6. Если у вас не установлена версия java 1.6, установите ее через Synaptic.
    5.1. Вводим в консоль:
    #
    update-alternatives --config java

    5.2. В появившемся списке ищем строку: /usr/lib/jvm/java-6-sun/jre/bin/java
    и применяем ее, введя номер этой строки.

    Оптимизация файловой системы.

    1. Этот способ предназначен, только для систем с фс EXT3 и ReiserFS.
    1.1. Редактируем файл /etc/fstab :
    #
    nano /etc/fstab

    1.2. Ищем строку корневой системы, пример:
    UUID=1592eed8-e490-4839-98cb-e4cd4d4f9200 / ext3 defaults,errors=remount-ro 0 1
    Изменяем ее на такую, пример:
    UUID=1592eed8-e490-4839-98cb-e4cd4d4f9200 / ext3 defaults,errors=remount-ro,noatime,data=writeback 0 1
    1.3. Редактируем файл /boot/grub/menu.lst
    #
    nano /boot/grub/menu.lst

    1.4. Ищем строки, начинающиеся на: # defoptions и # altoptions и добавляем в конец этих строк: rootflags=data=writeback
    Должно получиться:
    # defoptions=quiet splash rootflags=data=writeback
    и
    # altoptions=(recovery mode) single rootflags=data=writeback
    1.5. Вводим команду для обновления файла menu.lst:
    #
    update-grub

    ВНИМАНИЕ! Это привет к обновлению файла menu.lst, также, как если бы вы обновили ядро системы, перепишет файл с дефолтными настройками, но добавит введенные выше изменения.

    2. Этот способ предназначен, только для систем с фс EXT3 и применяется после первого способа.
    2.1. Вводим в терминале (замените /dev/hdd1 на ваш диск с корневой системой / ):
    #
    tune2fs -o journal_data_writeback /dev/hdd1

    2.2. Перезагрузитесь.
    Должна возрасти скорость при работе с видео, изображениями и аудио файлами.

    3. Этот способ предназначен для дисков с фс EXT3 и 4. С помощью этого способа, мы освободим зарезервированное системой пространство жесткого диска под свои нужды.
    Дело в том, что система автоматически резервирует на дисках с фс EXT - 5% дискового пространства на случай, если вдруг у вас закончится место на диске и тогда система не сможет сохранить системную информацию, что может привести к плачевным последствиям. Не спорю, что это оправдано для корневого раздела "/", но вот для других разделов это не критично, а свободного места теряется много, особенно на больших, по объему дисках.
    3.1. Вводим в терминале следующее (замените /dev/sdb1 на ваш диск)
    #
    tune2fs -r 0 /dev/sdb1

    где 0 - это процент зарезервированного места.
    Если у вас под корневой раздел выделен объемный диск, то можете спокойно уменьшить процент до 2 или 3, зато сэкономите порядочно места под другие нужды.