Под центос 6 в elrepo была сборка dkms-ufs, но под 7 версию её уже нет. Увы, SRPM от 6 тоже недоступно, нужно собрать самим.
Итак, открываем инструкцию
https://wiki.centos.org/HowTos/BuildingKernelModules
Ставим пакеты
yum -y install kernel-devel dkms
В /usr/src/kernels/ у нас появились исходники. Проверим
ls -la /usr/src/kernels/*/fs/ufs
total 16
drwxr-xr-x. 2 root root 4096 Nov 24 16:46 .
drwxr-xr-x. 75 root root 4096 Nov 24 16:46 ..
-rw-r--r--. 1 root root 1766 Sep 26 18:17 Kconfig
-rw-r--r--. 1 root root 199 Sep 26 18:17 Makefile
Но косяк в том, что они не полные! Поэтому при попытке что-либо там собрать будет ошибка
make[1]: *** No rule to make target `arch/x86/syscalls/syscall_32.tbl', needed by `arch/x86/syscalls/../include/generated/uapi/asm/unistd_32.h'. Stop.
Этого недостаточно, нужно выкачать полные исходники ядра. Можно их искать руками, а можно выкачать самой системой
yum -y install yum-utils
yumdownloader --source kernel
rpm -Uvh kernel*.src.rpm
Ставятся они в /lib/modules.
Но тут обнаруживаем, что fs/ufs тупо отсутствует! Так что этот метод сойдёт, когда нужно пропатчить что-то существующее, а для старых модулей - шаг 3, качаем ванильное ядро нужной версии и собираем оттуда.
А в данном случае находим fuse версию и собираем.
(заброшенный оригинал: https://github.com/mkatiyar/fuse-ufs2)
У меня нет ламерской привычки make install на сторонний софт, будем опытными админами и сразу соберём пакет. Попутно в спек файле описаны нужные зависимости, не будет потом долгого поиска "а это что за ошибка и как её исправить...". Ну и бонусом - можно (и нужно) разделять сервер сборки и прод.
(работаем НЕ от рута!)
также можно сразу освоить и mock
также можно сразу освоить и mock
При необходимости доставляем git
$ rpmdev-setuptree
и в ~/rpmbuild/SPECS добавляем новый спек, который можно взять тут
https://github.com/dragonfly-net/fuse-ufs2
https://github.com/dragonfly-net/fuse-ufs2
Для сборки нужен yum groupinstall "Development tools"
rpmbuild -ba ~/rpmbuild/SPECS/fuse-ufs2.spec
Собираем, ставим, монтируем
# fuse-ufs /dev/sdb1 /mnt/sdb/
# fuse-ufs /dev/sdb1 /mnt/sdb/
# ls -la /mnt/sdb/
total 40
...
Не рассмотрена сборка dkms - тут нам не нужна производительность, достаточно возможности чтения. А оставлять ufs под работу с данными (на запись) вообще крайне плохая идея, ufs достаточно ущербна, это жалкий аналог ext2.
Комментариев нет:
Отправить комментарий