Linux Corner #3





introduction

articles


КPOBb te4et..
Creative Down
Chill..
Dnevnik Gubnyh
Infernal Flame
IRCZlo
Kazantip '98
Litestep
MSX Culture
Parashoot
SceneUp!
Underground
One day..
Virus inside me
Harmed

interview

Catbones
God Among Lice
Jazztiz
Encore
Nixus
Mutant

lits

Bound
Harmless
Manifesto
Mirage
Nika Bathen 95-97
Alka
Allegory
An other side

tutorials

Textmode Art FAQ
Inet Couriers
NukeM3
MegaDemos Review
Drugz Corner 1
Drugz Corner 2
Linux Corner 1
Linux Corner 2
Linux Corner 3
Linux Corner 4
Linux Corner 5
Linux Corner 6
RTM

download
feedback

home

Yo, всем, кто читает эту рубрику. Хотел бы сразу сказать спасибо людям, написавшим мне о том, что им интересно читать LiNuX Corner. Значит не у всех еще из головы сквозит, как из кривой форточки :) Ну что ж, вспомнив про форточки, самое время их закрыть и тогда в комнате станет тепло и уютно. Эта комната и называется LiNuX Corner :) [небольшое лирическое вступление никогда не помешает]

В прошлом номере я написал о необходимости иметь boot/root диск[и]. Если они были давно уже посеяны, но есть CD, то сделать их совсем нетрудно. Нужно посто вспомнить как ты ставил систему. Инсталяционный скрипт сам сделает их.

Наверное имеет смысл рассказать немного о том что это вообще за диски такие и как с ними бороться.

- boot disk:
На этом диски содержится ядро системы, которое можно загрузить. Кроме ядра на диске может находиться файловая система и загрузчик.

- root disk:
Диск с файловой системой, содержащей все необходимое для работы Наличие ядра и загрузчика не обязательно.

- boot/root disk:
Предыдущие два варианта в одном флаконе.

Рассмотрим каждый из вариантов подробнее.

Boot:
На диске может находиться загрузчик [LILO], который ищет на диске ядро и грузит его.

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

При использовании LILO это прописывается в его файле конфигурации. Когда ядро пишется на диск, как на raw device [в начало диска] на него необходимо напустить rdev. Например, rdev vmlinuz /dev/fd0

Скопировать ядро на диск можно двумя способами. Если на диске не предполагается создавать файловую систему, то ядро можно перенести так:

dd if=vmlinuz of=/dev/fd0 или
cp vmlinuz /dev/fd0

Если на диске должна быть файловая система, то его предварительно смонтировать. Например:

mount -t ext2 /dev/fd0 /floppy
cp vmlinuz /floppy
umount /floppy

Root:
Root disk содержит полностью работоспособную систему, которая должна состоять из :

- файловой системы
- директорий dev, proc, bin, etc, lib, usr, tmp.
- утилит: bash,fsck, ls, cp итд.
- конфигов: rc,inittab,fstab итд.
- библиотек для работы утилит.

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

mke2fs -m 0 /dev/fd0.

Если диск не был отформатирован, то это можно сделать так:

fdformat /dev/fd0H1440

Все директории, кроме /dev создаются mkdir'ом. Если нет желания возиться с mknod, самый простой способ создать /dev, это:

cp -dpR /dev /floppy

В rc прописывается:
#!/bin/sh
/etc/mount -av

В fstab:
/dev/ram / ext2 defaults
/dev/fd0 / ext2 defaults
/proc /proc proc defaults

В /bin записываются все нужные утилиты, типа: fsck, gzip, tar, cp итд.

В /lib - библиотеки, которые юзают эти утилиты, по крайней мере там должна быть libc.so.XX, где XX - текущая версия. Узнать какую библиотеку хочет та или иная утилита можно так:

ldd /bin/mount - получаем:
libc.so.5 => /lib/libc.so.5.3.12, где libc.so.5 - это ссылка на
/lib/libc.so.5.3.1

Сюда же записывается загрузчик библиотек ld-linux.so [предполагается, что используется ELF-формат]

LILO:

Чтобы заставить LILO грузить ядро, следует:

- Смонтировать boot диск: mount -t ext2 /dev/fd0 /floppy
- Скопировать на диск файлы: boot.b, lilo.msg и ядро: cp /boot/boot.b /floppy
- Создать для LILO файл конфигурации, например my_lilo.conf:

boot = /dev/fd0
install = /floppy/boot.b
map = /floppy/lilo.map
delay = 50
message = /floppy/lilo.msg
timeout = 150
compact
image = /floppy/zImage
root = /dev/fd0

И установить LILO: /sbin/lilo -C my_lilo.conf

Вот в общих чертах процесс создания boot/emergency дисков. Существуют утилиты специально предназначенные для этих целей, но поиск и использование оных мы оставляем в качестве домашнего задания читателям HaRm'a :)

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

Чтобы получить цветастую надпись, строка должна содержать определенную ESC-последовательность.

Например, написав в консоле или nxterm'e:

# echo '^[[33;44;1m HRG ^[[1;0m'

получим HRG желтым-по-синему. Здесь есть один момент. "^[[" должно нибиваться, как:

Ctrl+V, ESC, '[' (т.е '^['-это Ctrl+V + ESC)

За ESC-последовательностью идут 3 параметра: цвет текста, фон, и специальный параметр, который может принимать значения:

0 - цвет по дефолту
1 - яркие цвета
5 - мерцание.

Еще одина ESC-последовательность '^[[2J' очищает экран. В конце моего примера стоит '^[[1;0m' - эта последовательность устанавливает дефолтовые цвета.

Коды цветов для текста имеют значения: 30-38 Для фона : 40-47

* В директории /var/log находятся логи различных процессов. Среди них есть файл messages в который записываются все сообщения идущие через syslog. Через определенное время файл довольно сильно разрастается и появляется искушение прибить его. Но его нельзя просто так удалять, потому как в системе работает процесс открывший этот файл и постоянно в него что-то пишуший. Сам факт удаления не страшен, на syslog'e это никак не отразится. Стертый файл будет жив, пока жив процесс его открывший. Но при перезагрузке файл будет закрыт и так как его имя было удалено, то файл станет недоступным, продолжая занимать место на диске. По-этому такие файлы рекомендуется убивать следующим образом:

cp /var/log/messages /var/log/messages.prev
cp /dev/null /var/log/messages

* В X-ах есть довльно забавные фичи. Помимо виртуальных дисплеев, динамического изменения разрешения, есть возможность запускать несколько X-серверов, к примеру, с разными количествами цветов и разными window-manager'ами. Для это X-серверу нужно указать на каком дисплее работать. Например,

# startx -- -bpp 8 :1
# startx -- -bpp 16 :2

* Если ты все делаешь правильно, то ты должен был создать себе юзер-акаунт. Но теперь возникла проблема с монтированием файловых систем. Только root может этим заниматься. Нe совсем так. Если прописать в /etc/fstab

/dev/hdb /cdrom iso9660 ro,user 0 0,
теперь СD сможет монтировать и обычный юзер. ^^^^

Вот, пожалуй, и все на сегодня. Надеюсь, ты прочитал что-нибудь для себя интересное.

Death Lord

 


[c] HARM on-line      
1996-1999