Em đang xài con VPS Virtuozzo chạy CentOS 5, có việc cần dùng đến FUSE để mount 1 hệ thống File system từ bên ngoài vào VPS, nhưng khi làm gặp lỗi tùm lum.
Code:
# modprobe fuse
FATAL: Could not load /lib/modules/2.6.18-028stab064.7/modules.dep: No such file or directory
1. Bạn phải chạy lệnh modprobe trên hardware node mới được, chạy trên VPS ko có tác dụng gì đâu. Hãy nhớ là module phải được chạy trên hardware node rồi gán quyền cho VE sử dụng chứ bản thân VE làm gì có cái module đó cho bạn chạy.
Ngoài ra, để FUSE tự động start trước khi service vz start, bạn phải thực hiện nhập vào script '/etc/rc.modules' (Đọc topic [Chỉ có thành viên mới thấy links này. ]).
...
Code:
Để module này tự động load khi Virtuozzo khởi động, bạn cần cài đặt gói openvpn từ kho phần mềm của Virtuozzo (trong thư mục /root/distrib.xxxxxx/virtuozzo/RPMS) và kích hoạt nó trong runlevel mặc định(bạn có thể thực hiện điều này bằng cách sử dụng lệnh 'chkconfig'). Bạn cần tuân theo hướng dẫn cài đặt cho từng phiên bản linux:
Cho các phiên bản RedHat (như Fedora Core, RedHat AS3/AS4, CentOS 3/4/5) bạn chỉ cần thêm lệnh 'modprobe tun' vào /etc/rc.modules và gán quyền thực thi cho nó:
Code:
# chmod a+rx /etc/rc.modules
Trên các hệ thống SuSE bạn cần thêm tun module vào giá trị MODULES_LOADED_ON_BOOT trong /etc/sysconfig/kernel (nó cũng có thể thực hiện bằng /etc/init.d/boot.loadmodules initscript).
và sau đó nhập lệnh 'modprobe fuse' vào file.
Sau đó hãy restart lại hardware node để chắc chắn module 'fuse' được start trước 'vz' .
2. Cấp cho container của bạn quyền sử dụng thiết bị đặc trưng /dev/fuse và tạo thiết bị tương ứng trong container (Chạy những lệnh sau trong Virtuozzo server):
Code:
~# vzctl set 101 --devices c:10:229:rw --save
~# vzctl exec 101 mknod -m 666 /dev/fuse c 10 229
~# vzctl exec 101 cp -a /dev/fuse /lib/udev/devices/
Trong trường hợp /dev/fuse đã tồn tại, hãy đảm bảo nó đã được phân quyền cụ thể. Và nếu thư mục '/lib/udev/devices' chưa tồn tại, tạo nó và gán quyền thích hợp:
~# vzctl exec 101 ls -l /lib/udev/devices/fuse
crw-rw-rw- 1 root root 10, 229 Oct 25 19:37 /lib/udev/devices/fuse
# vzctl exec 101 ls -l /dev/fuse
crw-rw-rw- 1 root root 10, 229 Oct 25 19:37 /dev/fuse
3. Cài đặt những gói fuseiso và fuse cho container. Tên gói có thể khác nhau tùy theo từng phiên bản Linux:
- với Debian và Ubuntu thì cài gói fuseiso và fuse-utils (có trong repository)
- với RHEL/CentOS 3/4/5 dùng DAG's packages fuse-iso và fuse
- với Fedora 7/8 cả 2 gói fuseiso và fuse đều có trong main/updates repositories
- với Fedora 6, fuse có trong extras repo, dùng dries cho fuse-iso
Để mount 1 ISO image chạy lệnh sau trong container: