Skip to content


Пересборка initrd

Пример как пересобрать initrd для поддержки определенного железа.
Взято с http://forums.fedoraforum.org/archive/index.php/t-138530.html.

This problem on CentOS:
http://www.centos.org/modules/newbb/viewtopic.php?topic_id=10855.

I made it for Fedora 8.
==================
## 1. Remove Adaptec ASR-2010s
## 2. Install Fedora on a single disk
## 3. Edit loader

cp -r /boot /boot_copy
cp /boot/initrd-2.6.23.1-42.fc8.img /tmp/initrd.img.gz
gunzip /tmp/initrd.img.gz
mkdir /tmp/initrdnew
cd /tmp/initrdnew
cat /tmp/initrd.img | cpio -i
cp /lib/modules/2.6.23.1-42.fc8/kernel/drivers/message/i2o/* /tmp/initrdnew/lib/
 
## edit loader:
vi /tmp/initrdnew/init
 
## rem this lines:
#echo "Loading aic79xx.ko module"
#insmod /lib/aic79xx.ko
 
## and add lines:
echo "Loading i2o_core.ko module"
insmod /lib/i2o_core.ko
echo "Loading i2o_block.ko module"
insmod /lib/i2o_block.ko
find . -xdev | cpio -o -H newc > /tmp/newinitrd.img
gzip /tmp/newinitrd.img
cp /tmp/newinitrd.img.gz /boot/initrd-2.6.23.1-42.fc8.img
 
mkdir /dev/i2o
ln -s /dev/sda /dev/i2o/hda
ln -s /dev/sda1 /dev/i2o/hda1
ln -s /dev/sda2 /dev/i2o/hda2
ln -s /dev/sda3 /dev/i2o/hda3
ln -s /dev/sda4 /dev/i2o/hda4
 
## edit mtab:
vi /etc/mtab</code>
## replace /dev/sdaX to /dev/i2o/hdaX
/dev/i2o/hda1 /boot ext3 rw 0 0

## 4. turn off server
## 5. install Adaptec ASR-2010s
## 6. turn on server and correct RAID-bios (Ctrl+A) to RAID-1

I think RAID-5 can be work if correct RAID-bios to RAID-5, and after this remove disks and install Fedora on single disk, and after that input other disks. But I use only RAID-1.

По поводу конкретно контроллера Adaptec ASR-2010s есть пару замечаний.

1. Чтобы linux увидел диски, подключенные к контролееру, нужно загрузить модуль ядра i2o_block:

sh-3.21# /sbin/modprobe i2o_block
I20 subsystem v1.325
i2o: max drivers = 8
i2o: Checking for PCI I20 controllers...
ACPI: PCI Interrupt 0000:02:02.0[A] -> GSI 48 (level, low) -> IRQ 201
iop0: controller found (0000:02:02.0) 
iop0: PCI I20 controller
    BAR0 at 0xDA200000 size=1048576
    BAR1 at 0xDD000000 size=16777216
iop0: Installed at IRQ 201 
i2o: iop0: Activating I2O controller...
i2o: iop0: This may take a few minutes if there are many devices 
iop0: HRT has 1 entries of 16 bytes each.
Adapter 00000012: TID 0000:[HPC*]:PCI 1: Bus 1 Device 22 Function 0
i2o: iop0: Controller added
I20 Block Device OSM vl.325
block-osm: registered device at major 80
 i2o/hda: i2o/hda1
block-osm: device added (TID: 212): i2o/hda

2. Чтобы иметь возможность управлять контроллером, нужно установить утилиту raidutils. Raidutils ожидает, что загружен модуль ядра i2o_config и что существует устройство /dev/i2o/ctl. Если такового устройства у вас нет, его можно создать командой

mknod /dev/i2o/ctl c 10 166

Но делать это нужно, только если raidutils не работает, выдавая ошибку «Engine connect failed: COMPATIBILITY number…», поскольку в последних версиях ядра при загрузке модуля i2o_config нужное блочное устройство создается автоматически. Подробнее о raidutils можно почитать на сайте «I2O on Linux».

Posted in *nix.

Tagged with , , , , .


Дисковые квоты в Linux

Включение дисковых квот в Linux.
Взято с http://www.yolinux.com/TUTORIALS/LinuxTutorialQuotas.html

  1. Редактируем файл /etc/fstab, добавляя параметры "usrquota" и/или "grpquota" в строки для нужного дискового раздела.
    Примеры:

    /dev/hda1     /home   ext3    defaults,usrquota              1    1
    /dev/hda2     /home   ext3    defaults,usrquota,grpquota     1    1
  2. Перемонтируем файловую систему. Пример:
    /bin/mount -o remount /hda2
  3. Проверяем, что квоты включились, заглядывая в /etc/mtab. Там должно быть что-то вроде:
    /dev/hda2 / ext3 rw,usrquota,grpquota 0 0
  4. Запускаем процесс подсчета текущего использования дискового пространства, после чего должны создаться/обновиться файлы /aquota.user, /aquota.group в корне файловой системы:
    quotacheck -vgum /partition

    или

    quotacheck -vguma
  5. Включаем квоты для файловой системы:
    quotaon -v /dev/hda2
  6. Расставляем квоты для определенных пользователей/групп. Пример:
    edquota -u user1
    Disk quotas for user user1 (uid 501):
    Filesystem    blocks       soft       hard     inodes     soft     hard
    /dev/hda5       1944       5120      10240        120        0        0

    blocks - блоки по 1 килобайту
    soft - максимальное количество блоков/inodes, которые пользователь может использовать, перед тем, как будет сгенерировано предупреждение и начнется отсчет "периода терпимости" (grace period). Если установлено в "0" (ноль), то лимита нет.
    hard - максимальное количество блоков/inodes, которые пользователь может использовать вообще.
    В примере лимит установлен в 10 мегабайт. Для редактирования групповых квот использовать edquota с ключом -g.

    "Grace Period" задается с помощью edquota -t, это промежуток времени, перед тем, как soft limit преваратиться в тыкву hard limit. Единицы: sec, min, hour, day, week и month. Пример:

    Grace period before enforcing soft limits for users:
    Time units may be: days, hours, minutes, or seconds
    Filesystem             Block grace period     Inode grace period
    /dev/hda5                     7days                  7days

    То есть в примере выше пользователь user1 может использовать до 5-ти МБ дискового пространтва на постоянной основе без каких либо прочих ограничений. Когда общий размер файлов превысит 5МБ дискового пространства, начнёт действовать grace period (7 дней по умолчанию), в течение которых user1 может занять до 10МБ дискового пространства. По истечении 7-ми дней с момента превышения лимита в 5МБ создание новых файлов будет недоступно до тех пор, пока user1 не удалит часть своих файлов, чтобы суммарный их объём не превышал 5МБ.

  7. Просмотр квот. Команды quota, repquota. Примеры:
    quota -u user1
    Disk quotas for user user1 (uid 501):
    Filesystem  blocks  quota   limit   grace files  quota   limit   grace
    /dev/hda6      992  50000   55000            71  10000   11000

    Получить отчет по всем пользователям, что превысили квоту:

    quota -q
    repquota -a
    *** Report for user quotas on device /dev/hda5
    Block grace time: 7days; Inode grace time: 7days
    Block limits                File limits
    User            used    soft    hard  grace    used  soft  hard  grace
    root      -- 4335200       0       0         181502     0     0
    bin       --   15644       0       0            101     0     0
    ...
    user1     --    1944       0       0            120     0     0

    quotacheck следует запускать периодически, особенно после аварийных выключений сервера.

    У edquota есть также интересный ключик -p, который позволяет задавать квоты массово на основе шаблона. Пример:

    edquota -p user1 `awk -F: '$3 > 499 {print $1}' /etc/passwd`

    Здесь для пользователей с uid >= 500 будут установлены такие же квоты, как и у пользователя user1.

    В Redhat quotacheck и quotaon запускаются из /etc/rc.d/rc.sysinit:

    if [ -x /sbin/quotacheck ]; then
    echo "Checking root filesystem quotas"
    /sbin/quotacheck -v -a
    fi
    ...
    if [ -x /usr/sbin/quotaon ] then
    echo "Turning on quota."
    /usr/sbin/quotaon -v -a
    fi

    Чтобы пользователи, превысившие лимиты, получали уведомление об этом по email, следует периодически из cron-а запускать команду warnquota.

Posted in *nix.

Tagged with , , .


Remote syslog из Windows

Для реализации сабжа можно использовать утилиту logger.exe. Пример:

echo "This is a test message" | logger.exe -l 10.20.30.40 -m udp

10.20.30.40 – это IP-адрес машины с демоном syslogd/rsyslogd, настроенным на прием сообщений с удаленных хостов (для чего демон должен быть запущен с ключом -r). В firewall-е должен быть открыт udp-порт 514.

Может пригодится для отслеживания IP-адреса машинок, у которых он динамически меняется с каждым новым сеансом:

ipconfig /all | grep Ukrtel -A 6 | tail -n 1 | gawk -F": " {" print $2 "} | sed -r "s/(.*)/Connected again with ip-address \1/" | logger.exe -l 10.20.30.40 -m udp

Подразумевается, что на windows-машинке есть win32-бинарники утилит grep, tail, gawk, sed. Скачать можно здесь.

Posted in Windows.

Tagged with , .


О свете и тьме...

Профессор в университете задал своим студентам такой вопрос:
– Все, что существует, создано Богом?
Один студент смело ответил:
– Да, создано Богом.
– Бог создал все? – спросил профессор.
– Да, сэр, – ответил студент. Профессор спросил:
– Если Бог создал все, значит Бог создал зло, раз оно существует. И согласно тому принципу, что наши дела определяют нас самих, Бог есть зло.
Студент притих, услышав такой ответ. Профессор был очень доволен собой. Он похвалился студентам, что он еще раз доказал, что вера в Бога – это миф. Еще один студент поднял руку и сказал:
– Могу я задать вам вопрос, профессор?
– Конечно, – ответил профессор. Студент поднялся и спросил:
– Профессор, холод существует?
– Что за вопрос!? Конечно, существует. Тебе никогда не было холодно?
Студенты засмеялись над вопросом молодого человека. Молодой человек ответил:
– На самом деле, сэр, холода не существует. В соответствии с законами физики, то, что мы считаем холодом в действительности является отсутствием тепла. Человек или предмет можно изучить на предмет того, имеет ли он или передает энергию. Абсолютный ноль по шкале Кельвина есть полное отсутствие тепла. Вся материя становится инертной и неспособной реагировать при этой температуре. Холода не существует. Мы создали это слово для описания того, что мы чувствуем при отсутствии тепла.
Студент продолжил.
– Профессор, темнота существует? Профессор ответил: – Конечно, существует.
Студент ответил:
– Вы опять неправы, сэр. Темноты также не существует. Темнота в действительности есть отсутствие света. Мы можем изучить свет, но не темноту. Мы можем использовать призму Ньютона чтобы разложить белый свет на множество цветов и изучить различные длины волн каждого цвета. Вы не можете измерить темноту. Простой луч света может ворваться в мир темноты и осветить его. Как вы можете узнать насколько темным является какое-либо пространство? Вы измеряете какое количество света представлено. Не так ли? Темнота это понятие, которое человек использует чтобы описать что проиходит при отсутствии света.
В конце концов, молодой человек спросил профессора:
– Сэр, зло существует?
На этот раз неуверенно, профессор ответил:
– Конечно, как я уже сказал. Мы видим его каждый день. Жестокость между людьми, множество преступлений и насилия по всему миру. Эти примеры являются не чем иным как проявлением зла.
На это студент ответил:
– Зла не существует, сэр, или по крайней мере его не существует для него самого. Зло это просто отсутствие Бога. Оно похоже на темноту и холод – слово, созданное человеком чтобы описать отсутствие Бога. Бог не создавал зла. Зло – это не вера или любовь, которые существуют как свет и тепло. Зло – это результат отсутствия в сердце человека любви. Это вроде холода, который наступает, когда нет тепла, или вроде темноты, которая наступает, когда нет света.
Профессор сел. Имя молодого студента было Альберт Эйнштейн.

Posted in Quotes.