Lệnh rmmod trong linux với các ví dụ dễ hiểu

Lệnh rmmod trong Linux được dùng để gỡ bỏ (unload) các module kernel đang hoạt động, giúp giải phóng tài nguyên hệ thống. Việc sử dụng rmmod cần quyền quản trị viên (root) và phải đảm bảo module không còn được sử dụng bởi các tiến trình khác. Hãy cẩn thận khi dùng lệnh này, vì gỡ bỏ module sai có thể gây ra lỗi hệ thống.

Lệnh rmmod trong linux là gì?

Lệnh rmmod in linux là một công cụ dòng lệnh mạnh mẽ, cho phép bạn gỡ bỏ các module kernel đã được tải vào hệ thống một cách an toàn. Nó giúp giải phóng tài nguyên hệ thống và có thể cần thiết khi bạn muốn cập nhật hoặc thay thế một module kernel cụ thể. Sử dụng command rmmod in linux rất đơn giản, bạn chỉ cần chỉ định tên của module cần gỡ bỏ, ví dụ như "rmmod my_module". Tuy nhiên, hãy cẩn thận khi sử dụng lệnh này, vì việc gỡ bỏ một module quan trọng có thể gây ra sự cố hệ thống. Trước khi gỡ bỏ, hãy đảm bảo rằng không có tiến trình nào đang sử dụng module đó để tránh các lỗi không mong muốn.

Tìm hiểu Mục đích của Lệnh rmmod

Trong bước này, chúng ta sẽ khám phá mục đích và cách dùng lệnh rmmod trong hệ điều hành Linux.

Lệnh rmmod được dùng để gỡ một kernel module khỏi hệ thống đang chạy.

Kernel modules là các đoạn mã có thể được tải và gỡ vào kernel khi cần, mà không cần khởi động lại toàn bộ hệ thống.

Chúng cung cấp một cách để mở rộng chức năng của kernel, cho phép bạn thêm hỗ trợ cho phần cứng mới, hệ thống file, giao thức mạng, v.v.

Lệnh rmmod được dùng để gỡ một kernel module khỏi hệ thống, rất hữu ích khi bạn không cần chức năng của module đó nữa.

Hoặc khi bạn cần thay thế một module bằng phiên bản mới hơn, hãy bắt đầu bằng cách liệt kê các kernel modules hiện đang được tải bằng lệnh lsmod:

sudo lsmod

Ví dụ về đầu ra:

Module                  Size  Used by
vboxsf                 106496  1
vboxguest              454656  0
snd_hda_codec_realtek   114688  1
snd_hda_codec_generic    86016  1 snd_hda_codec_realtek
snd_hda_intel           53248  0
snd_hda_codec          135168  3 snd_hda_codec_generic,snd_hda_codec_realtek,snd_hda_intel
snd_hda_core            90112  5 snd_hda_codec_generic,snd_hda_codec_realtek,snd_hda_intel,snd_hda_codec
snd_hwdep               16384  1 snd_hda_codec
snd_pcm                106496  4 snd_hda_intel,snd_hda_codec
snd_timer               32768  1 snd_pcm
snd                     98304  21 snd_hda_codec_generic,snd_hda_codec_realtek,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm,snd_timer
soundcore               16384  1 snd

Đầu ra này hiển thị các kernel modules hiện đang được tải, để gỡ một module, bạn có thể dùng lệnh rmmod kèm theo tên module.

Ví dụ, để gỡ module vboxsf, bạn sẽ chạy lệnh sau:

sudo rmmod vboxsf

Sau khi chạy lệnh này, bạn có thể xác minh rằng module đã được gỡ bằng cách chạy lại lsmod:

sudo lsmod

Ví dụ về đầu ra:

Module                  Size  Used by
vboxguest              454656  0
snd_hda_codec_realtek   114688  1
snd_hda_codec_generic    86016  1 snd_hda_codec_realtek
snd_hda_intel           53248  0
snd_hda_codec          135168  3 snd_hda_codec_generic,snd_hda_codec_realtek,snd_hda_intel
snd_hda_core            90112  5 snd_hda_codec_generic,snd_hda_codec_realtek,snd_hda_intel,snd_hda_codec
snd_hwdep               16384  1 snd_hda_codec
snd_pcm                106496  4 snd_hda_intel,snd_hda_codec
snd_timer               32768  1 snd_pcm
snd                     98304  21 snd_hda_codec_generic,snd_hda_codec_realtek,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm,snd_timer
soundcore               16384  1 snd

Bạn có thể thấy rằng module vboxsf không còn được liệt kê, cho thấy nó đã được gỡ thành công.

Gỡ bỏ Kernel Module bằng rmmod

Trong bước này, chúng ta sẽ tìm hiểu cách gỡ bỏ một kernel module bằng lệnh rmmod.

Đầu tiên, hãy liệt kê các kernel module hiện đang được tải bằng lệnh lsmod:

sudo lsmod

Ví dụ về kết quả:

Module                  Size  Used by
vboxguest              454656  0
snd_hda_codec_realtek   114688  1
snd_hda_codec_generic    86016  1 snd_hda_codec_realtek
snd_hda_intel           53248  0
snd_hda_codec          135168  3 snd_hda_codec_generic,snd_hda_codec_realtek,snd_hda_intel
snd_hda_core            90112  5 snd_hda_codec_generic,snd_hda_codec_realtek,snd_hda_intel,snd_hda_codec
snd_hwdep               16384  1 snd_hda_codec
snd_pcm                106496  4 snd_hda_intel,snd_hda_codec
snd_timer               32768  1 snd_pcm
snd                     98304  21 snd_hda_codec_generic,snd_hda_codec_realtek,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm,snd_timer
soundcore               16384  1 snd

Giả sử chúng ta muốn gỡ bỏ module vboxguest. Để làm điều này, ta có thể sử dụng lệnh rmmod:

sudo rmmod vboxguest

Sau khi chạy lệnh này, hãy xác minh rằng module đã được gỡ bỏ bằng cách kiểm tra lại kết quả của lsmod:

sudo lsmod

Ví dụ về kết quả:

Module                  Size  Used by
snd_hda_codec_realtek   114688  1
snd_hda_codec_generic    86016  1 snd_hda_codec_realtek
snd_hda_intel           53248  0
snd_hda_codec          135168  3 snd_hda_codec_generic,snd_hda_codec_realtek,snd_hda_intel
snd_hda_core            90112  5 snd_hda_codec_generic,snd_hda_codec_realtek,snd_hda_intel,snd_hda_codec
snd_hwdep               16384  1 snd_hda_codec
snd_pcm                106496  4 snd_hda_intel,snd_hda_codec
snd_timer               32768  1 snd_pcm
snd                     98304  21 snd_hda_codec_generic,snd_hda_codec_realtek,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm,snd_timer
soundcore               16384  1 snd

Bạn có thể thấy rằng module vboxguest không còn được liệt kê, cho thấy nó đã được gỡ bỏ thành công.

Khám phá các tình huống thực tế để sử dụng rmmod

Trong bước cuối cùng này, chúng ta sẽ khám phá các tình huống thực tế mà lệnh rmmod có thể hữu ích.

Một tình huống phổ biến là khi bạn cần cập nhật một kernel module. Ví dụ, bạn đã cài đặt driver đồ họa mới và muốn thay thế cái cũ.

Bạn có thể sử dụng lệnh rmmod để gỡ bỏ module driver cũ, sau đó cài đặt module mới.

Đầu tiên, hãy liệt kê các kernel module hiện đang được tải:

sudo lsmod

Ví dụ về đầu ra:

Module                  Size  Used by
nvidia_drm             106496  0
nvidia_modeset        1028096  0
nvidia              28540928  1 nvidia_modeset
drm_kms_helper        184320  1 nvidia_drm
drm                   516096  4 nvidia_drm,drm_kms_helper

Trong ví dụ này, chúng ta thấy module nvidia hiện đang được tải. Để gỡ bỏ nó, ta dùng lệnh rmmod:

sudo rmmod nvidia

Sau khi chạy lệnh này, ta có thể xác minh rằng module đã được gỡ bỏ:

sudo lsmod

Ví dụ về đầu ra:

Module                  Size  Used by
nvidia_drm             106496  0
nvidia_modeset        1028096  0
drm_kms_helper        184320  1 nvidia_drm
drm                   516096  4 nvidia_drm,drm_kms_helper

Bây giờ, bạn có thể tiến hành cài đặt module driver đồ họa mới.

Một tình huống thực tế khác để sử dụng rmmod là khi bạn cần khắc phục sự cố hệ thống. Nếu bạn nghi ngờ một kernel module gây ra vấn đề, hãy thử gỡ bỏ nó để xem vấn đề có được giải quyết không.

Ví dụ, nếu bạn gặp sự cố về kết nối mạng, bạn có thể thử gỡ bỏ module driver mạng và kiểm tra xem vấn đề đã được giải quyết chưa.

sudo rmmod e1000e

Sau khi gỡ bỏ module, bạn có thể kiểm tra kết nối mạng và xem sự cố đã được giải quyết chưa.

Hãy nhớ rằng, khi gỡ bỏ một kernel module, bạn nên đảm bảo rằng module đó không được sử dụng và việc gỡ bỏ sẽ không làm ngừng hoạt động bất kỳ thành phần hệ thống quan trọng nào. Nếu bạn không chắc chắn, tốt nhất là tham khảo tài liệu hoặc tìm kiếm sự hỗ trợ từ các system administrator có kinh nghiệm.

Kết luận cho linux rmmod command

Tóm lại, lệnh linux rmmod command là một công cụ mạnh mẽ để gỡ bỏ các module khỏi kernel. Hãy nhớ rằng việc sử dụng nó cần thận trọng, vì gỡ bỏ module không đúng cách có thể gây ra sự cố hệ thống. Trước khi gỡ bỏ, hãy đảm bảo rằng không có tiến trình nào đang sử dụng module đó. Bạn có thể sử dụng lệnh `lsmod` để kiểm tra các module đang được tải. Hãy luôn kiểm tra kỹ lưỡng và tham khảo tài liệu trước khi thực hiện bất kỳ thay đổi nào. Hy vọng bài viết này đã giúp bạn hiểu rõ hơn về cách sử dụng lệnh linux rmmod command. Chúc bạn thành công trong việc quản lý các module kernel của mình!

Last Updated : 17/10/2025