[Resolved] xfs_quota: cannot set limits: Function not implemented Directadmin
Tổng quan về lỗi xfs_quota: cannot set limits: Function not implemented Directadmin
Lỗi xfs_quota: cannot set limits: Function not implemented trên Directadmin có thể sẽ xuất hiện khi bạn điều chỉnh dung lượng sử dụng của một người dùng trên Directadmin hoặc ngay khi khởi tạo user đầu tiên.
Việc đầu tiên bạn cần làm là SSH vào VPS hoặc Server của bạn. Nếu bạn chưa biết cách SSH vào SSH vào VPS hoặc Server của bạn thì bạn có thể tham khảo bài viết hướng dẫn sau:
Nguyên nhân lỗi này là do phân vùng trên VPS hoặc Server của bạn không có phân vùng /home
, bạn có thể xem bằng cách sử dụng lệnh df -h
, ví dụ như VPS dưới đây của mình cũng không có phân cùng /home
:
Filesystem | Size | Used | Avail | Use% | Mounted on |
devtmpfs | 1.9G | 0 | 1.9G | 0% | /dev |
tmpfs | 1.9G | 24K | 1.9G | 1% | /dev/shm |
tmpfs | 1.9G | 17M | 1.9G | 1% | /run |
tmpfs | 1.9G | 0 | 1.9G | 0% | /sys/fs/cgroup |
/dev/mapper/centos_sv3-root | 28G | 4.3G | 24G | 16% | / |
/dev/sda1 | 1014M | 193M | 822M | 19% | /boot |
tmpfs | 379M | 0 | 379M | 0% | /run/user/0 |
Xử lý lỗi xfs_quota: cannot set limits: Function not implemented Directadmin
Trước khi bước vào bước xử lý lỗi này bạn cần kiểm tra filesystem
của bạn ở định dạng EXT4
hay XFS
, để kiểm tra bạn sử dụng lệnh sau:
Sau khi sử dụng lệnh này xong bạn sẽ xác định được mình dùng định dạng nào.
Dưới đây là 2 trường hợp và VPS hay Server của bạn sẽ nằm trong 1 trong 2 trường hợp bên dưới:
Trường hợp 1: /dev/sda3 on / type ext4 (rw,usrquota,grpquota) Trường hợp 2: /dev/mapper/centos-root on / type xfs (rw,relatime,attr2,inode64,noquota)
Trường hợp một là hệ thống của bạn đang sử dụng định dạng ext4, còn trường hợp 2 là xfs
. Tùy theo mỗi trường hợp mà bạn chọn cách khắc phục như bên dưới.
Nếu là EXT4:
Với trường hợp là ext4
thì cách giải quyết khá là đơn giản, bạn chỉ cần chạy 4 lệnh sau:
cd /usr/sbin mv setquota setquota.old touch setquota chmod 755 setquota
Như vậy là bạn đã khắc phục được lỗi “xfs_quota: cannot set limits: Function not implemented Directadmin” đối với hệ thống sử dụng định dạng EXT4
.
Đối với hệ thống XFS
Đối với hệ thống xfs
thì sẽ khác với ext3/ext4
trước đó. Nhưng trước hết bạn nên kiểm tra lại một lần nữa cho chắc.
Bước 1: Kiểm tra phân vùng trên linux
Chúng ta vẫn sẽ kiểm tra lại với lệnh df -h
để xem lại các phân vùng hiện tại:
Filesystem | Size | Used | Avail | Use% | Mounted on |
devtmpfs | 1.9G | 0 | 1.9G | 0% | /dev |
tmpfs | 1.9G | 24K | 1.9G | 1% | /dev/shm |
tmpfs | 1.9G | 17M | 1.9G | 1% | /run |
tmpfs | 1.9G | 0 | 1.9G | 0% | /sys/fs/cgroup |
/dev/mapper/centos_sv3-root | 28G | 4.3G | 24G | 16% | / |
/dev/sda1 | 1014M | 193M | 822M | 19% | /boot |
tmpfs | 379M | 0 | 379M | 0% | /run/user/0 |
Như chúng ta có thể thấy /home
không phải là một phân vùng vì nó không hiển thị trên bảng này. Bởi vì nó nằm ở bên trong /
. Tiếp theo chúng ta đi tiếp đến bước 2.
Bước 2: Xác nhận rằng / thực sự đang sử dụng hệ thống tệp XFS
Ta sử dụng lại lệnh sau để xác định phân vùng /
có đang sử dụng định dạng tệp xfs
không
Chúng ta sẽ có kết quả như bên dưới:
[root@sv3 ~]# mount | grep ' / ' /dev/mapper/centos_sv3-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
Nếu bạn thấy tùy chọn “noquota“, thì bạn cần chuyển sang bước 3 bên dưới.
Nếu bạn không thấy “noquota“, thì bạn có thể làm theo hướng dẫn sau của Directadmin:
Bước 3: Khắc phục lỗi “xfs_quota: cannot set limits: Function not implemented Directadmin” với hệ thống xfs
Vì “noquota” là tùy chọn mount của kernel mặc định, chúng ta phải thay đổi nó trong tùy chọn khởi động kernel.
Để thay đổi chúng ta sử dụng lệnh sau:
Tại đây bạn sẽ thấy một vài dòng cấu hình hệ thống kernel, có thể mỗi hệ thống là khác nhau tuy nhiên bạn cũng đường quá lo lắng. Dưới đây là nội dung file trên VPS của mình:
GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos_sv3/root rd.lvm.lv=centos_sv3/swap rhgb quiet" GRUB_DISABLE_RECOVERY="true"
Thêm tấm ảnh minh họa nữa cho các bạn dễ nhìn.
Tại đây bạn tìm dòng có nội dung “GRUB_CMDLINE_LINUX“, như ở đây của mình là dòng số 6.
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos_sv3/root rd.lvm.lv=centos_sv3/swap rhgb quiet"
Chúng ta bắt đầu di chuyển “dấu nháy” đến cuối dòng này, nhưng không vượt qua dấu nháy kép(“) nhé.
Tại đây bạn bấm “i” tiến hành để chỉnh sửa dòng. Và thêm đoạn nội dung “rootflags=uquota,pquota” vào đoạn này. Dưới đây là nội dung so sánh trước và sau khi đã chỉnh sửa.
Trước: GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos_sv3/root rd.lvm.lv=centos_sv3/swap rhgb quiet" Sau : GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos_sv3/root rd.lvm.lv=centos_sv3/swap rhgb quiet rootflags=uquota,pquota"
Thêm tấm hình cho các bạn dễ hình dung:
Sau khi đã thay đổi bạn nhớ lưu lại nhé. Sau đó ta tiếp tục với hai lệnh sau:
cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.orig grub2-mkconfig -o /boot/grub2/grub.cfg
Giải thích các lệnh trên:
Lệnh 1: Sao lưu tệp tin “grub.cfg” ra một file mới có tên “grub.cfg.orig“.
Lệnh 2: Tạo lại tập tin cấu hình grub.
Đối với một số hệ điều hành đường dẫn có thể thay đổi thành:
/boot/efi/EFI/centos/grub.cfg
Dưới đây là kết quả bên VPS của mình:
Sau đó bạn tiến hành khởi động lại VPS hoặc Server của bạn với lệnh “reboot“.
Sau khi bạn đã đăng nhập lại được VPS hoặc Server của bạn. Chúng tại lại kiểm tra với lệnh cũ xem còn tùy chọn “noquota” không nhé.
Dưới đây là kết quả của mình:
Tùy chọn “noquota” đã không còn nữa. Và bước cuối cùng là xem tùy chọn sử dụng “xfs” có được bật trong cấu hình Directadmin không nhé, để xem ta sử dụng hai lệnh sau:
cd /usr/local/directadmin ./directadmin c | grep use_xfs_quota
Giải thích hai lệnh trên:
- Lệnh 1: Di chuyển đến nơi chứa tệp tin cấu hình Directadmin
- Lệnh 2: Xem cấu hình Directadmin use_xfs_quota đang cấu hình thông số nào
Kết quả như bên dưới là bạn có thể tiến hành đến bước cuối cùng.
Bước cuối cùng là khôi phục lại hạn ngạch mức sử dụng dung lượng cho các user đã được khởi tạo:
echo "action=rewrite&value=quota" >> /usr/local/directadmin/data/task.queue
Kiểm tra lại lỗi “xfs_quota: cannot set limits: Function not implemented Directadmin” còn tồn tại không?
Để kiểm tra các bạn thử thay đổi mức dung lượng của một user sau đó nhấn “Save” để lưu lại. Sau khi nhấn lưu lại bạn sẽ thấy lỗi không còn hiển thị nữa và quá trình lưu hoàn tất.
Như vậy là bạn đã nắm được cách xử lý lỗi “xfs_quota: cannot set limits: Function not implemented Directadmin”.
Chúc các bạn thực hiện thành công.
0 Comments