четверг, 17 июля 2008 г.

Создать ISO образ в linux? - Легко!

genisoimage -o name_obraza.iso name_kataloga
чтоб примонтировать iso образ:
mount -t iso9660 -o loop имя_iso_файла /точка/монтирования
Еще чтобы создать iso из cd:
dd if=/dev/cdrom of=/mnt/.../my.iso bs=2048
где /mnt/.../my.iso путь куда будет сделан образ. loopback устройства в ядре должны быть включены...

еще чтобы создать iso из cd (dvd) команда:

cp /dev/cdrom /mnt/.../my.iso

где /mnt/.../my.iso путь куда будет сделан образ.

понедельник, 14 июля 2008 г.

Собираем ядро в Debian

Этя статья была переведена мной лично (оригинал статьи взят от сюда)
---
---
Рассмотрим вариант как собрать ядро получив в конечном итоге .deb пакет который можно будет установить в систему либо поделится с друзьями :)


--Установка требуемых пакетов для компиляции ядра--

-----------------------

Для начала обновим базу данных пакетов

----------
apt-get update
----------

Затем устанавливаем все нужные нам пакеты
----------
apt-get install kernel-package libncurses5-dev fakeroot wget bzip2 build-essential
----------


--Получение исходников ядра--

Затем нам требуестья скачать тебуемое нам ядро в /usr/src/
переходим на
www.kernel.org и выбираем ядро которое мы хотим установить
например linux-2.6.21.3.tar.bz2 (вы можете найти все 2.6 ядра здесь http: // www.kernel.org/pub/linux/kernel/v2.6/) и переходим непосредственно к скачиванию ядра
----------
cd /usr/src
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.21.3.tar.bz2
----------

Затем распаковываем ядро и создаём симлинк на директорию с исходниками ядра
----------
tar xjf linux-2.6.21.3.tar.bz2
ln -s linux-2.6.21.3 linux
cd /usr/src/linux
----------


--Накладываем патчи на исходники (опционально)--

Иногда вам требуются драйвера для оборудования которые не поддерживаются ядром по умолчанию, либо вам требуется поддержка виртуализации, либо еще чего-нибудь что так или иначе небыло включено в ядро по умолчанию. Для всего этого вап понадобится наложить патчи на исходники ядра (если таковые патчи имеются).
Предположим что вы загрузили требуемый вам патч (назовем его для примера patch.bz2) в /usr/src
теперь давайте наложим патч на наши исходники ядра (вы должны находится в директории /usr/src/linux)
----------
bzip2 -dc /usr/src/patch.bz2 | patch -p1 --dry-run
bzip2 -dc /usr/src/patch.bz2 | patch -p1
----------

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

You can also apply kernel prepatches to your kernel sources. For example, if you need a feature that is available only in kernel 2.6.22-rc3, but the full sources haven't been released yet for this kernel. Instead, a patch-2.6.22-rc3.bz2 is available. You can apply that patch to the 2.6.21 kernel sources, but not to kernel 2.6.21.1 or 2.6.21.2, etc. This is explained on http://kernel.org/patchtypes/pre.html:

Prepatches are the equivalent to alpha releases for Linux; they live in the testing directories in the archives. They should be applied using the patch(1) utility to the source code of the previous full release with a 3-part version number (for example, the 2.6.12-rc4 prepatch should be applied to the 2.6.11 kernel sources, not, for example, 2.6.11.10.)

So if you want to compile a 2.6.22-rc3 kernel, you must download the 2.6.21 kernel sources (http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.21.tar.bz2) in step 3 instead of kernel 2.6.21.3!

This is how you apply the 2.6.22-rc3 patch to kernel 2.6.21:

----------

cd /usr/src
wget http://www.kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.22-rc3.bz2
cd /usr/src/linux
bzip2 -dc /usr/src/patch-2.6.22-rc3.bz2 | patch -p1 --dry-run
bzip2 -dc /usr/src/patch-2.6.22-rc3.bz2 | patch -p1

----------

--Конфигурируем ядро--

Неплохая идея использовать конфигурацию вашего текущего ядра как основу вашего нового ядра.
Для этого мы копируем текущую конфигурацию в
/usr/src/linux
:
----------
make clean && make mrproper
cp /boot/config-`uname -r` ./.config
----------

Затем запускаем
----------
make menuconfig
----------

что запустит конфигурационное меню ядра. Переходим в Load an Alternate Configuration File (загрузить альтернативный файл конфигурации) и выбираем .config (который содержит конфигурацию вашего текущего рабочего ядра) как конфигурационный файл.

Затем можете переходить в меню конфигурирования ядра и делать свои изменения. Когда вы закончите и выбирете Exit ответьте на вопрос (Do you wish to save your new kernel configuration?) да (YES).

-- Сборка ядра --

Чтобы собрать ядро выполните две команды
----------
make-kpkg clean
fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers
----------


После --append-to-version= вы можете написать любую строку которая поможет вам идентифицировать ваше ядро, но она должна начинатся с минуса (-) и недолжна содержать пробелов.
Теперь будте терпеливы сборка ядра процесс продолжителный и может продолжатся несколько часов. в зависимости от конфигурации ядра и скорости процессора.

--Установка нового ядра--

После того как ваше ядро удачно соберется вы найдете два пакета .deb в директории /usr/src
----------
cd /usr/src
ls -l
----------

На моей тестовой системе были следующие файлы
linux-image-2.6.21.3-custom_2.6.21.3-custom-10.00.Custom_i386.deb (Который содержит актуальное ядро) и linux-headers-2.6.21.3-custom_2.6.21.3-custom-10.00.Custom_i386.deb (который содержит файлы которые вам понадобятся если вы захотите собрать дополнительные ядерные модули позже) устанавливаем их:
----------
dpkg -i linux-image-2.6.21.3-custom_2.6.21.3-custom-10.00.Custom_i386.deb
dpkg -i linux-headers-2.6.21.3-custom_2.6.21.3-custom-10.00.Custom_i386.deb
----------

(Вы можете скопировать эти файлы на другую Debian систему и установить их там таким-же способом чтобы не собирать ядро заново)

Вот и все ! :)
Конфигурационный файл загрузчика GRUB будет изменен автоматически, и рамдиск для нового ядра будет создан в /boot
теперь перегружаем систему
----------
shutdown -r now
----------

В загрузочном меню выбирайте ваше новое ядро (будет выбрано по умолчанию):
Если все нормально и вы загрузились в ваше новое ядро, надо проверить, действительно ли вы используете новое ядро
----------
uname -r
----------

должно появится чтото вроде..
2.6.21.3-custom

Если система не стартует - перегружайтесь и выбирайте в меню загрузки ваше старое ядро. Пробуйте пересобрать ядро снова но незабудте удалить строки о вашем не работающем ядре из /boot/grub/menu.lst.

среда, 9 июля 2008 г.

Это страшное слово ЯДРО

в принципе-то ничего страшного в этом нету
если в кратце то ...
сначала конфигурим
#cd /usr/src/linux-you_kernelversion/
#make menuconfig
если мы накатываем новую версию ядра то можно сделать так...
Сначала сопируем файл .config из нашего текущего ядра в новое ядро которое мы собрались компилить
#cp /usr/src/linux-you_OLD_kernelversion/.config /usr/src/linux-you_NEW_kernelversion/
потом
#make oldconfig
при такой команде в процессе настройки ядра компилятор будет останавливаться ТОЛЬКО на тех функциях
которые включены в новое ядро и которых небыло в старом
!! ATTENTION !! при таком варрианте компиляция будет проходить в ТЕКСТОВОМ режиме
потом ставим
#make && make modules_install
потом
#mount /boot/ && cp .config /boot/config && cp System.map /boot/System.map && cp arch/i386/boot/bzImage /boot/gentoo && lilo && umount /boot/
!! mount и umount делать ТОЛЬКО в том случае если /boot находится на отдельном разделе и примонтируется/отмонтируется при загрузге системы
потом незабываем лилошку пересобрать
#lilo

Монтируем дискии образы CD

!! Внимание!!! По умолчанию монтировать ресурсы может только root

для монтирования NTFS-ного диска\раздела с правами на чтение всем пользователям надо сделать следующее
mount -t ntfs -o uid=1000,gid=100,umask=000 /dev/sdb1 /where/mount/
для автоматического монтирования ресурса надо в /etc/fstab прописать следующую строку
/dev/sdb1 /home/qtronix/mount/ ntfs uid=1000,gid=100,umask=000 0 2
!!!ВНИМАНИЕ!!! NTFS монтируется в режиме только для чтения !!! если желаете монтировать ее в режиме записи то следуетзнать следующее
Запись в ядре есть для NTFSv4 (Win2k), а чтение для v4 и v5 (2k, XP, Vista, 2000, 2003)
если хотим запись тогда надо накатить sys-fs/ntfs3g
да и для удобства sys-fs/ntfsprogs не помешает

для монтирования сетевого ресурса
#mount -t smbfs -o username=you_username,password=you_password,workgroup=domain_or_workgroup //hostname/sharename /where/mount/
параметр password можно опустить тогда при монтировании ресурса mount сама спросит у вас пароль что в принципе является более правильным
с точки зрения безопастности
для автоматического монтирования сетевого ресурса у меня в fstab'е прописанна следующая строка
//server/share_name /home/ftp cifs codepage=cp866,username=qtronix,workgroup=my_workgroup,password=my_password,users,user,auto 0 0


для монтирования ISO-шных образов делаем
#mount -o loop /where/my/image.iso /where/mount/

Чуток про SSH и иже с ним

для ssh соеденения делаем так
#ssh -p portnumber user@hostname
напримет
#ssh -p 22 root@192.168.1.7

для копирования файлов через ssh делаем так
#scp -P portnumber user@hostname:/your_dir/your_filename /where/copy/your/files
или с удаленного хоста на удаленный хост
#scp user@hostname:/your_dir/your_filename user@hostname:/your_dir/your_filename
!!! ATENTION !!!
копирование файлов с удаленного хоста на удаленный хост работает ТОЛЬКО если на обоих хостах ssh настроен на стандартный 22 порт

Автостарт в KDE

Для автозапуска програм в KDE нада добавить их в ~/.kde/Autostart/

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

Настройка раскладки для пользователя

Это рекомендованный способ.
Во многих системахиспользуется файл ~/.Xkbmap для личных настроек.
например с таким содержимым:
-------------------------------------------------------------------------------------------------------------------
-layout en_US,ru(winkeys)
-option -option grp:ctrl_shift_toggle,grp_led:scroll
-------------------------------------------------------------------------------------------------------------------

Другие популярные клавиши для переключения: caps_toggle, alt_shift_toggle

В этом случае секция в xorg.conf будет выглядеть проще:

-------------------------------------------------------------------------------------------------------------------
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
Option "XkbModel" "pc105"
Option "XkbLayout" "en_US"
EndSection
-------------------------------------------------------------------------------------------------------------------

А каждый пользователь может менять русскую раскладку и переключатель для себя.

И ещё, удобно использовать именно en_US вместо us, т.к. это более полная раскладка.

Основные проблемы

  • Переключение происходит при нажатии, а не при отжатии установленной комбинации клавиш
  • Если для переключения раскладки задействована клавиша Shift, то ещё нужно отпускать и нажимать ещё раз, чтобы она сработала при вводе заглавной буквы
  • Нет однозначной взаимосвязи раскладки с языком -> приложение не может понять, на каком языке осуществляется ввод
  • Клавиши переключения и комбинации раскладок, которые можно выбрать в Иксах, не всегда пересекаются с консолью.
  • Способ переключения раскладки в Иксах не совпадает/конфликтует со способом переключения в менеджере окон (напр. KDE) – в KDE настройка идёт через XKB, но настраивается только данный сеанс через setxkbmap).

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

вторник, 8 июля 2008 г.

Немного про MySQL

И так начнем с последнего
а потом я буду добовлять суда свои уже наработанные материалы (некоторые из них взяты с разных сайтов поэтому сразу же хочу попросить прощетия у тех с чьих стониц это было скрадено).
Итак...
Q> как в MySQL посмотреть все имеющиеся базы данных и все привелегии поним ??
A> Наиболее удобно это делать через mysql-administrator. Подаётся как отдельно, так и в виде цельного блюда с названием mysql-gui-tools. В ресторане по адресу mysql.org кормят бесплатно.
Q>Где в мускуле покрутить шоп с удаленных хостов можно было заходить ?? Я вроде как пользователя добавил, дал ему разрешение с удаленных хостов логинится, а порты-то на ружу не торчат?? :(
A> Мускул не может смотреть сразу и на 127.0.0.1 и на внешний IP. Чтоб это разрелизить надо юзать редиректы фаэрвола (сам недавно имел cекас на этой раскривушке). Куда он будет глядеть по дефолту рисуется в параметре bind-address в файле /etc/mysql/my.cnf Если в параметре указать несколько адресов через пробел - юзается первый, если через другой разделитель то ашипко :( , Если несколько параметров bind-address в файле то юзается последний.

туби как говорится континуед !!

Начало

Ну вот и я обзавелся блогом :)
В этом блоге я буду публиковать ответы на вопросы которые вызывали у меня некоторые затруднения и могут быть полезны другим пользователям.
Но скорее это будет некоей записной книжкой моих нароботок которые мне потом могут пригодится (ну неможет-же человек помнить все).
Так как я начинающий Linux'оид то скорее всего некоторые записи будут иметь вид
мой вопрос>
ответ гуру>
вроде как некий фак или чаво.
ну вобщем начнем....