28.09.2011

Сборка ядра на Debian

Для начала поставим пакеты:
apt-get install kernel-package fakeroot build-essential libncurses5-dev
Здесь:
kernel-package - система для создания пакетов, касающихся ядра. Этот пакет содержит утилиту make-kpkg, которая нам сделает не просто собранное ядро, а deb-пакет, который мы потом сможем установить на любую другую систему.

fakeroot - специальная команда, которая позволит подхватить переменное окружение рута обычному пользователю и тем самым создавать файлы и директории, назначая им владельцем рута.
build-essential - этот пакет сам по себе кроме информации ничего не несет, но не установится без зависимостей: make, dpkg-dev, gcc, g++ и так далее. То есть поставив этот пустой пакет, мы поставим многие необходимые утилиты и компиляторы.

Кроме того, нам скорее всего понадобятся комплекты подключаемых библиотек для компиляции ядра. Поэтому проверим, какая у нас платформа:
uname -m
Поищем в репозитории подходящий пакет для нашей платформы:
apt-cache search linux-headers

Выпадет несколько пакетов на выбор. Установим только тот, что подходит нам. Например у меня 32-битная система и потому я ставлю:
apt-get install linux-headers-2.6-686

Также понадобится библиотека zlib:
apt-get install libzlcore-dev zlib1g-dev

Теперь переходим в директорию, где будем работать:
cd /usr/src

Идем в репозиторий и выбираем себе пакет, который начинается с linux-2.6_2.6.NN.orig.tar.gz
Обратите внимание, что это ядро будет заметно больше других файлов по размеру (от 50Mb и выше) и не скачайте просто патч. На данный момент доступны только 26-е, 30-е и 32-е ядра.

Итак выбираем ядро и загружаем его:
wget http://security.debian.org/debian-security/pool/updates/main/l/linux-2.6/linux-2.6_2.6.32.orig.tar.gz

27.09.2011

Как создать директорию в памяти

Создаем директорию в любом месте, в которую будем монтировать кусок памяти:
mkdir /mnt/directory_name

В файле /etc/fstab делаем запись, что файловая система будет типа tmpfs, а размер диска 1024Mb. Все остальное наверно уже знакомо по обычным файловым системам:
vi /etc/fstab
tmpfs          /mnt/directory_name            tmpfs  size=1024m,noatime,nodiratime,relatime,nosuid,nodev,noexec 0 0

А теперь смонтируем её:
mount /mnt/directory_name

13.09.2011

Кластерная файловая система. iSCSI + OCFS2

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

Проблема в том, что была неверно выбрана файловая система. Нельзя на диск, к которому обращается более одного шедулера (читай более одной операционной системы) ставить обычную файловую систему. Нужна только кластерная. Например GFS2 или OCFS2.

Такая файловая система имеет свой кластер. Вообще у всех в голове сразу появится "мне не нужен кластер, мне просто диск надо раздать по сети в совместное пользование" - все в порядке. Кластер ставится две минуты и не будет большим усложнением системы.

Делается это легко. Сначала устанавливаем пакеты поддержки такой файловой системы и кластер:
apt-get install ocfs2-tools ocfs2console