Использование R1Soft CDP в Debian Squeeze
Реорганизация структуры каталогов для успешной сборки модуля ядра
R1Soft CDP — это, на мой взгляд, одна из лучших разработок для высокопроизводительного резервного копирования под Linux. Хотя данный продукт платный и с закрытым кодом, он оправдывает свою стоимость. Заниматься рекламой не буду, кому интересно, те сами найдут нужную информацию, лишь расскажу об одной проблеме, с которой пришлось недавно столкнуться.
Одна из особенностей CDP Agent — для работы ему требуется специальный модуль ядра, который собирается на серверах R1Soft: специальная утилита архивирует заголовочные файлы ядра и некоторую другую информацию, отсылает её на сервер R1Soft, инициирует процесс сборки и забирает получившийся модуль ядра.
Проблема заключается в том, что в Debian Squeeze разработчики несколько поменяли раскладку каталогов: если раньше все заголовки ядра устанавливались в /usr/src/linux-headers-`uname -r`, то теперь каталога три: /usr/src/linux-headers-`uname -r`, /usr/src/linux-headers-версия-ядра-common и /usr/src/linux-kbuild-версия-ядра, например:
drwxr-xr-x 4 root root 4096 2009-12-28 08:09 linux-headers-2.6.30-2-common
drwxr-xr-x 3 root root 4096 2009-12-28 08:09 linux-kbuild-2.6.30
Makefile в linux-headers-`uname -r` ссылается на каталог linux-headers-*-common, который r1soft-cki не посылает. К тому же в Makefile прописаны абсолютные пути, из-за которых сборка оканчивается неудачей.
Если откат на более старую версию ядра не выход (например, в моём случае были проблемы с udev, из-за которых возникали еще более жестокие проблемы с программным RAID), придётся собирать из трёх каталогов один.
Например, так (измените пути и имена на свои):
mkdir ~/headers
# Копирование заголовков
cp -rp /usr/src/linux-headers-2.6.30-2-* ~/headers/
cp -rp /usr/src/linux-kbuild-2.6.30/ ~/headers/
# Копируем нужные файлы; ключ -n нужен, чтобы не переписать Makefile
(shopt -s dotglob; cd ~/headers; cp -rpn linux-headers-2.6.30-2-amd64/* linux-headers-2.6.30-2-common/)
# Запускаем программу сборки модуля ядра
r1soft-setup.64 --get-module --beta --module-type backupdriver --kernel-dir ~/headers/linux-headers-2.6.30-2-common/
r1soft-setup.64 может называться иначе, например, r1soft-cki.
Результат будет примерно таким:
snowboarding:~# cp -rp /usr/src/linux-headers-2.6.30-2-* ~/headers/
snowboarding:~# cp -rp /usr/src/linux-kbuild-2.6.30/ ~/headers/
snowboarding:~# (shopt -s dotglob; cd ~/headers; cp -rpn linux-headers-2.6.30-2-amd64/* linux-headers-2.6.30-2-common/)
snowboarding:~# r1soft-setup.64 --get-module --beta --module-type backupdriver --kernel-dir ~/headers/linux-headers-2.6.30-2-common/
Checking for binary module
..
No binary module found
Gathering kernel information
Gathering kernel information complete.
Creating kernel headers package
Checking '/root/headers/linux-headers-2.6.30-2-common/' for kernel headers
Found headers in '/root/headers/linux-headers-2.6.30-2-common/'
Compressing...
uploading kernel package 99% 3879KB 2.7MB/s 00:00 ETA
Starting module build...
................................................
Saving kernel module to '/lib/modules/buagent/backupdriver-cki-2.6.30-2-amd64.ko'
Kernel module is now installed.
.
Возможно, кому-нибудь пригодится.
Автор: Vladimir; опубликовано в: Linux, Администрирование; метки: CDP, Debian, Linux, R1 Soft, SqueezeДек
2009
Комментарии к статье «Использование R1Soft CDP в Debian Squeeze» (1) »
Пожалуйста, не используйте эту форму для комментирования! Данная форма предназначена исключительно для ботов.
Оставить комментарий к записи «Использование R1Soft CDP в Debian Squeeze»
गते गते पारगते पारसंगते बोधि स्वाहा
Меня зовут Владимир, я программист-фрилансер, специализирующийся на Web-программировании и програмировании под Linux.
По совместительству занимаюсь администрированием LAMP/LNMP-серверов и техническим переводом.


Мы с приятелем столкнулись с таким вопросом недавно (он админит серваки на линухе) и только тут нашли нормальное описание. Автору респект)