Skip to contentSkip to main navigation Skip to footer

[Resolved] xfs_quota: cannot set limits: Function not implemented Directadmin

Screen Shot 2020 07 07 at 12.04.50 PM e1594362170525

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:

FilesystemSizeUsedAvailUse%Mounted on
devtmpfs1.9G01.9G0%/dev
tmpfs1.9G24K1.9G1%/dev/shm
tmpfs1.9G17M1.9G1%/run
tmpfs1.9G01.9G0%/sys/fs/cgroup
/dev/mapper/centos_sv3-root28G4.3G24G16%/
/dev/sda11014M193M822M19%/boot
tmpfs379M0379M0%/run/user/0
xfs_quota: cannot set limits: Function not implemented Directadmin
[Resolved] xfs_quota: cannot set limits: Function not implemented Directadmin 10

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:

FilesystemSizeUsedAvailUse%Mounted on
devtmpfs1.9G01.9G0%/dev
tmpfs1.9G24K1.9G1%/dev/shm
tmpfs1.9G17M1.9G1%/run
tmpfs1.9G01.9G0%/sys/fs/cgroup
/dev/mapper/centos_sv3-root28G4.3G24G16%/
/dev/sda11014M193M822M19%/boot
tmpfs379M0379M0%/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)
    
xfs_quota: cannot set limits: Function not implemented Directadmin
[Resolved] xfs_quota: cannot set limits: Function not implemented Directadmin 11

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.

Screen Shot 2020 07 10 at 5.56.43 PM 1
[Resolved] xfs_quota: cannot set limits: Function not implemented Directadmin 12

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é.

Screen Shot 2020 07 11 at 4.40.30 PM 1
[Resolved] xfs_quota: cannot set limits: Function not implemented Directadmin 13

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:

Screen Shot 2020 07 11 at 4.46.45 PM
[Resolved] xfs_quota: cannot set limits: Function not implemented Directadmin 14

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:

Screen Shot 2020 07 11 at 6.37.07 PM
[Resolved] xfs_quota: cannot set limits: Function not implemented Directadmin 15

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:

Screen Shot 2020 07 11 at 6.41.47 PM
[Resolved] xfs_quota: cannot set limits: Function not implemented Directadmin 16

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.

Screen Shot 2020 07 11 at 7.05.25 PM
[Resolved] xfs_quota: cannot set limits: Function not implemented Directadmin 17

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.

Was This Article Helpful?

0
0 Comments

There are no comments yet

Leave a comment

Your email address will not be published. Required fields are marked *