Aug
01
ReiserFS4 1. Установка поддержки ядром | 1 August 2007, 17:58

ReiserFS4 – файловая система опередившая свое время

Выбираем ядро

Несмотря на то что это файловая система Reiser4 уже давно тестируется и почти завершена, она до сих пор отсутствует в основной ветке ядра(в отличии от Ext4). Однако, патчи для ядра с ее поддержкой – давно есть в ветви mm, курируемая Эндрю Мортоном. Ветка mm одержит много патчей и является тестовой, поэтому я приняла решение использовать текущее стабильное ядро + патч для поддержки Reiser4. Нужно всего лишь взять исходники ядра, пропатчить их и собрать ядро. ;) А потом добавить бибилиотеки для работы с файловой системой Reiser4 – но об этом в Части 2.

Сразу оговорюсь. Можно собирать систему из исходников лежащих на сайте OpenSuse – kernel-default или kernel-vanilla разных версий, просто я их не тесировала. Для сборки я скачала оригинальное ядро с http://www.kernel.org. На момент написания этих строк текущим стабильным ядром являлось 2.6.22.1, а его исходники лежат тут: http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.1.tar.bz2

На примере этого ядра и будем собирать новую систему. Ядро нужно распаковать, для примера я использую традиционный каталог для исходников: /usr/src. Для распаковки можно вопользоваться файловым менеджером(Midnight Commander, Krusader и т.п.) или консольной командой tar.

Патчим ядро

Патч выбираем исходя из номера ядра вот тут:
ftp://ftp.namesys.com/pub/reiser4-for-2.6, для данного ядра это: http://ftp.namesys.com/pub/reiser4-for-2.6/2.6.22/reiser4-for-2.6.22.patch.gz или здесь на сайте: downloads.karina-online.ru/linux/reiser4/reiser4-for-2.6.22.patch. Патч копируем в каталог с ядром и патчим ядро командой:

$ gunzip -c reiser4-for-2.6.22.patch.gz | patch -p1

Отмечу, что в данном случае я использовала одновременно сразу две команды – распаковку и патч, объединив их в конвейер ;). Если всё нормально, то вы увидите примерно следующее:

[singlepic id=52 w=500 mode=watermark float=center]

Настройка опций ядра

Примечание: для сохранения настроек системы можно просто скопировать конфигурационный файл .config из каталога с ядром. При необходимости его можно получить выполнив команду make cloneconfig – клонирование настроек системы (не везде есть).

Запускаем оболочку для настроек ядра командой make menuconfig – на ncurces, make xconfig – в GUI (есть и другие способы, но здесь я их не рассматриваю).

Я выбрала второй вариант. Настраеваем ядро по вкусу, и в настройках выбирнаем поддержку Reiser4 – а уж модулем или прямо в ядро – решать вам. Если будуте использовать Reiser4 в качестве корневой подсистемы – то лучше в ядро, это позволит отказаться от RAM-диска initrd ;) Итак, на что нужно обратить внимание:

  1. Установить галку для поддержки Reiser4
    [singlepic id=53 w=500 mode=watermark float=center]
  2. Установить галку для разрешения к использованию экспериментального кода/драйверов.Code maturity level options -> Prompt for development and/or incomplete code/drivers
    [singlepic id=54 w=500 mode=watermark float=center]
  3. Должна быть не установлена галка здесь: Kernel hacking -> Use 4Kb for kernel stacks instead of 8Kb
    [singlepic id=55 w=500 mode=watermark float=center]

Примечание: последний скриншот сделан на основе конфига ядра 2.6.21.5, так как в ядре версии 2.6.22.1 такая опция отсутствовала.

Сохраняем конфиг и выходим из программы. Для того чтобы наше ядро имело уникальное название, в файле Makefile(это наш Make-файл ядра – находится в каталоге с исходниками ядра) устанавливаем значение параметра EXTRAVERSION, например:

VERSION = 2

PATCHLEVEL = 6

SUBLEVEL = 22

EXTRAVERSION = reiser4

Теперь осталось собрать ядро =)

Сборка ядра

Собираем ядро и модули. Для этого запускаем последовательно следующие команды(можно и от простого пользователя):

$ make bzImage     //собрать ядро

$ make modules     //собрать модули
[singlepic id=56 w=500 mode=watermark float=center]

Устанавливаем ядро и модули, для это выполняем следующие команды от root:

# make modules_install //Установить модули

# make install //Установить ядро

[singlepic id=57 w=500 mode=watermark float=center]
[singlepic id=58 w=500 mode=watermark float=center]

Вуаля! Новое ядро собрано и установлено! =) Так как теперь у нас новое ядро – делаем symlink (символическую ссылку) на исходники ядра – их новую версию:

# ln –s /usr/src/linux-2.6.22.1 /usr/src/linux

Обновление меню GRUB

Осталось добавить в меню GRUB строчку с номером ядра ;). Для этого открываем файл /boot/grub/menu.lst с правами суперпользователя в любом тестовом редакторе и добавляем в него, например такие строки:

title openSUSE 10.2 kernel-2.6.22.1-reiser4

root (hd0,1)

kernel /boot/vmlinuz-2.6.22.1-reiser4 root=/dev/hda2 vga=0×317 splash=silent showopts

initrd /boot/initrd-2.6.22.1-reiser4

Здесь 2.6.22.1-reiser4 – это название нашего ядра, а Linux у меня установлен на hda2.

Всё, можно загружать!!! ;) Однако это еще не все… Переходим к установке библиотек для Reiser4 ;)

При написании статьи были использованы следующие источники:

1 August 2007, 17:58  
Рубрика: html-марание, softoкопательство  |  
Метки:   |  

Листинги патчей ;)


Хотите пропатчить? ;)

Вы должны быть залогинены что бы оставить патч.


  karina ©
2007-2010