Hello Sơn,
Em dùng AlmaLinux cũng được nhưng e nên dùng Centos 8 tương đương với Redhat 8, mà hiện nay đa số các doanh nghiệp vẫn dùng Centos 8 và Redhat 8 để chạy cho hệ thống servers, còn phổ biến hơn cả CentOS Stream 9. Hoặc em có thể dùng Centos 9, xem hướng dẫn setup theo link này của anh: https://luuhophuong.com/huong-dan-cach-cai-dat-linux-centos-9-tung-buoc-chi-tiet/
– Nếu em muốn dùng Centos stream 8 thì google tìm file iso xong download về setup nhé, Sau đó làm theo hướng dẫn sau:
Xử lý lỗi yum trên CentOS 8 – Failed to synchronize cache for repo
Xử lý lỗi khi yum trên CentOS 8 AppStream
Nguyên nhân : CentOS 8 đã hết hạn end of builds
Bài viết này, hướng dẫn các bạn xử lý lỗi Failed to download metadata for repo ‘AppStream’ [CentOS] hoặc lỗi Failed to synchronize cache for repo ‘AppStream’, ignoring this repo. trong quá trình sử dụng lệnh yum. Do CentOS 8 đã bị Red Hat ngừng hỗ trợ. Điều này có nghĩa là các kho repo chính thức của CentOS 8 đã bị gỡ bỏ và không còn khả dụng nữa.
[root@Linuxserver-phuonglh ~]# sudo yum install -y sysstat CentOS-8 – AppStream 0.0 B/s | 0 B 00:01 CentOS-8 – Base 0.0 B/s | 0 B 00:01 CentOS-8 – Extras 0.0 B/s | 0 B 00:01 Failed to synchronize cache for repo ‘AppStream’, ignoring this repo. Failed to synchronize cache for repo ‘BaseOS’, ignoring this repo. Failed to synchronize cache for repo ‘extras’, ignoring this repo. No match for argument: sysstat Error: Unable to find a match
Giải pháp
1. Chuyển sang Vault Repository của CentOS 8
Vì CentOS 8 đã kết thúc hỗ trợ ELB, các repo chính thức không còn khả dụng. Giải pháp là sử dụng kho lưu trữ Vault của CentOS, nơi lưu trữ các files cũ của CentOS 8.
Các bước thực hiện
1. Backup các files repo cũ:
sudo mv /etc/yum.repos.d/CentOS-* /etc/yum.repos.d/backup/
2.Tạo file repo mới trỏ đến CentOS Vault:
sudo nano /etc/yum.repos.d/CentOS-Vault.repo
3. Thêm nội dung sau vào file repo:
[BaseOS]
name=CentOS-8 – BaseOS
baseurl=http://vault.centos.org/8.5.2111/BaseOS/x86_64/os/
enabled=1
gpgcheck=0
[AppStream]
name=CentOS-8 – AppStream
baseurl=http://vault.centos.org/8.5.2111/AppStream/x86_64/os/
enabled=1
gpgcheck=0
[Extras]
name=CentOS-8 – Extras
baseurl=http://vault.centos.org/8.5.2111/extras/x86_64/os/
enabled=1
gpgcheck=0
Giải thích cần lưu ý:
baseurl: Trỏ đến URL của Vault repo (nơi lưu trữ các phiên bản cũ của CentOS 8).
gpgcheck=0: Tắt kiểm tra chữ ký GPG, nhưng bạn có thể bật nó nếu muốn.
Để lưu nội dung và thoát ra khỏi màn hình soạn thảo file :Nhấn phím Ctrl + x sau đó nhấn phím y để lưu nội dung file, cuối cùng nhấn Enter để thoát ra khỏi file.
4. Xóa bộ nhớ cache của YUM:
sudo yum clean all
5. Tạo lại cache cho YUM:
sudo yum makecache
6. Chạy lệnh Update Centos 8:
sudo yum update
Chúc em học tốt và thành công!!
2. Hỏi: Pseudo file. Thầy ơi ở section 2 ở phần Pseudo file system, mình log vào file /sys -> cd fs thì thư viện của em không có mục xfs như trên video Thầy ạ!

Do em chưa có XFS disk cho Linux server của em, nên nó ko hiển thị trong Pseudo file system. Vậy nếu em muốn nó hiển thị thì em làm theo hướng dẫn sau nhé:
Bước 1:
1.Tắt máy ảo CentOS 8 nếu nó đang chạy.
Trong VMware Workstation, chọn máy ảo CentOS 8 của e.
2. Click vào ” settings”, để tạo 1 disk mới cho Server.
Trong cửa sổ Settings>Chọn “Hard Disk” > click vào “Add” (Thêm)>và click Next> Tại màn hình “Select a Disk Type”, e có thể chọn “SATA”>
Click vào “Next”> Cuối cùng Click vào “Finish” để kết thúc tạo Disk
Bước 2: Xác định disks mới trong CentOS 8
1. Khởi động lại máy ảo CentOS 8.
2. Mở terminal và chạy lệnh sau để liệt kê tất cả các disks:
lsblk
– Em sẽ thấy danh sách các disks, disk mới có thể sẽ là /dev/sdb hoặc một tên khác, tùy vào cấu hình.
Bước 3: Tạo phân vùng trên ổ đĩa mới
1.Sử dụng fdisk để tạo phân vùng mới trên disk.
sudo fdisk /dev/sdb
2.Trong fdisk, làm theo các bước sau:
-Nhấn n để tạo phân vùng mới.
-Nhấn p để tạo phân vùng chính.
-Nhấn Enter để chọn số phân vùng mặc định.
-Nhấn Enter để chọn sector bắt đầu và kết thúc.
-Nhấn w để lưu và thoát khỏi fdisk.
Bước 4: Định dạng phân vùng với hệ thống file XFS
-Định dạng phân vùng vừa tạo với XFS:
sudo mkfs.xfs /dev/sdb1
Bước 5: Mount phân vùng XFS
1.Tạo thư mục để mount ổ đĩa, ví dụ:
sudo mkdir /mnt/newdisk
2. Mount phân vùng vừa tạo vào thư mục /mnt/newdisk:
sudo mount /dev/sdb1 /mnt/newdisk
Bước 6: Kiểm tra và tự động mount sau khi khởi động
1.Kiểm tra xem ổ đĩa đã mount thành công chưa:
df -h
– Em sẽ thấy phân vùng XFS của bạn hiển thị trong danh sách.
2.Để phân vùng tự động mount sau khi khởi động lại, bạn cần chỉnh sửa file /etc/fstab:
sudo nano /etc/fstab
3.Thêm dòng sau vào cuối file:
/dev/sdb1 /mnt/newdisk xfs defaults 0 0
Lưu file và thoát bằng cách nhấn Ctrl + X, sau đó Y và Enter.
Bước 7: Hoàn thành quá trình tạo XFS Disk
1.Khởi động lại CentOS 8 để kiểm tra nếu phân vùng mới được tự động mount:
sudo reboot
2.Sau khi khởi động lại, kiểm tra lại việc mount với lệnh: df -h
3. Sau khi hoàn thành các bước này, em sẽ có một disk mới được định dạng với file system XFS và được tự động mount trên CentOS 8.
3. Hỏi: Ở bài 27 section 7 làm sao để em có thể cài java vào /opt được ạ?
Em click vào Link bài viết Hướng Dẫn Cách Cài Đặt Java JDK 24 Trên Linux (CentOS) của tôi viết và làm theo hướng dẫn nhé: https://luuhophuong.com/huong-dan-cach-cai-dat-java-jdk-24-tren-linux-centos/
Nếu có gì không hiểu em cứ hỏi tiếp nha.
Good luck and best regards.
4. Hỏi: Thông báo ” *** is not in the sudoers file. This incident will be reported.” Em xin chào thầy, thầy có thể cho em hỏi khi em pass câu lệnh sudo sed -i ‘s/^SELINUXTYPE=.*/#SELINUXTYPE=targeted/’ /etc/selinux/config thì lại được báo câu ” *** is not in the sudoers file. This incident will be reported.” thì mình có cách nào để xử lý không ạ. Em xin cảm ơn ạ?

Thông báo “is not in the sudoers file. This incident will be reported” hiển thị, khi tài khoản người dùng hiện tại của em không được cấp quyền sudo để chạy lệnh với đặc quyền root trên hệ thống Linux Centos. Vậy em cần đăng nhập vào hệ thống với một tài khoản root , hoặc có quyền sudo hoặc có thể được cấp quyền root. Sau đó, em chạy lại lệnh nhé.
Lưu ý: Với HĐH Ubuntu thì em ko cần dùng lệnh trên để tắt SE Linux.
5. Hỏi: Install VMware workstation player, em không cài được VMware workstation player nữa thì phải làm sao để tiếp tục ạ?
Nếu Laptop hoặc PC của em là Win11 thì chắc chắn cài được VMware workstation player, vậy em vào:
– Download VMware Player em vào Link này để download file cài đặt về máy tính, giải nén, xong setup nhé: https://softwareupdate.vmware.com/cds/vmw-desktop/player/17.6.1/24319023/windows/core/
– Ngoài ra em join vào nhóm Zalo này, Nếu có gì thắc mắc về Linux em cứ hỏi trong nhóm này, vì anh có trong nhóm này,
và có nhiều anh em khác sẽ trả lời em: https://zalo.me/g/fmitpl996
6. Hỏi: VMware Workstation Player em tìm không thấy có trên link đính kèm để download a?
– Em vào Link này để download Centos 8 nhé: https://ftp.iij.ad.jp/pub/linux/centos-vault/centos/8.0.1905/isos/x86_64/CentOS-8-x86_64-1905-dvd1.iso
– Download VMware Player em vào Link: https://softwareupdate.vmware.com/cds/vmw-desktop/player/17.6.1/24319023/windows/core/
7. Hỏi: em nhap mat khau cua root vao roi ma bao khong duoc a, co cach nao khong a?
– Khi EM cài đặt Ubuntu Desktop , trong quá trình setup sẽ yêu cầu em tạo một user tiêu chuẩn. User này sẽ có quyền sudo, cho phép em thực hiện các lệnh với quyền root khi cần thiết.
-Do vậy tài khoản root thường bị khóa để tăng cường bảo mật, và em sẽ dùng sudo với user mà em đã tạo trong quá trình cài đặt. Khi cần thực hiện một lệnh với quyền root, chỉ cần thêm sudo vào trước lệnh đó:
sudo <command>
– Nếu em muốn mở một phiên làm việc toàn bộ với quyền root, bạn có thể dùng lệnh:
sudo -i
– Nếu em muốn kích hoạt tài khoản root , em có thể đặt mật khẩu cho root:
sudo passwd root
– Sau khi thiết lập mật khẩu, em có thể đăng nhập với tài khoản root bằng cách nhập su và mật khẩu root vừa thiết lập.
– Có gì ko hiểu em cứ hỏi nhé, chúc em học tốt và thành công.
Hỏi: giờ đăng nhập vào không được, không mở được màn hình thì dùng sudo command kiểu gì ạ?
Trả lời:
– Do em chưa setup OpenSSH server vì vậy em không thể ssh vào Ubuntu server của em từ bên ngoài được. Vậy để làm setup OpenSSH server, em login vào Ubuntu server Desktop trong VMware của em, và click chuột phải vào màn hình sau đó chọn menu có tên là Terminal để mở màn hình Terminal, như hình này:

Và chạy lệnh này để update hệ điều hành:
sudo apt update && sudo apt upgrade
– Chạy lệnh tiếp theo để setup OpenSSH server, nhớ nhập password của user của em nếu nó hỏi như hình dưới (chú ý trong quá trình setup, nếu nó hỏi gì thì nhấn phím y và nhấn Enter):
sudo apt install openssh-server
sudo systemctl enable ssh
sudo systemctl start ssh
– Chạy lệnh sau để xem địa chỉ ip của Ubuntu Server:
ip addr show

– Sau đó em sử dụng putty (nếu chưa có putty, em vào google và tìm kiếm putty, sau đó download về máy tính nhé) từ bên ngoài để truy cập ssh vào Ubuntu server, với user mà em đã đặt cho Ubuntu server của em trong quá trình cài đặt server. VD như của anh user là phuonglh, như trong hình dưới:


Như vậy là em có thể ssh từ xa để quản trị & sử dụng Ubuntu server.
8. Hỏi: CentOS 8 đã không còn xuất hiện. Em chào thầy ạ, hiện tại CentOS 8 đang không còn hỗ trợ và em chỉ có thể tải dc CentOS 9, nhưng mà VMware ko có hỗ trợ cho CentOS 9 thì bây h em cần làm j để tạo dc máy ảo với CentOS 9 trên VMware. Em xin cảm ơn thầy.?
Hiện tại Centos 7 đã End of life, nhưng Centos8 vẫn chưa EOF. Em có thể download dvd iso centos 8 stream tại link này nhé: CentOS-8-x86_64-1905-dvd1.iso
Em click vào Root Password như hình này để set root password nhé

9. Hỏi: Thầy ơi cho em hỏi sao em chỉ enable được 1 card mạng thôi còn 1 card mạng còn lại thì failed ạ. Nội dung lỗi hiện thị khi connect faild: “Chỉ báo connect faild chứ không hiển thị gì thêm” Ở dưới là detail của card mạng mà em luôn bị faild khi connect. ?

https://onlinecomputertips.com/support-categories/pc-troubleshooting/vmware-workstation-bridged-connection-fix/

Dạ thầy ơi, ở phần LVM, em sử dụng cml kiểm tra phân vùng thì không có gì hết thầy ạ? Do là host của em chưa cấu hình các PV,VG,LV phải không ạ?

Đây là thông tin ổ cứng host của em. Hiện tại em đang chạy trên CentOS 9 ạ. Mong thầy cho em lời giải đáp ạ!
Trả lời:
Vì Server Linux Centos 9 của em setup disk theo Standard Parttition, do đó e chạy các lệnh pvs,vgs,lvs nó ko hiển thị LVM disk. Do đó nếu e muốn dùng các lệnh này. E setup test thử Linux theo partition LVM, em có thể cấu hình LVM disk trên Ubuntu hoặc Centos nhé.
– Về các lệnh:
pvs: Hiển thị thông tin về các physical volumes (PVs).
vgs: Hiển thị thông tin về các volume groups (VGs).
lvs: Hiển thị thông tin về các logical volumes (LVs).
– Các lệnh này cung cấp thông tin về cấu trúc lưu trữ LVM của Linux system, giúp chúng ta có thể dễ dàng quản lý và tối ưu hóa không gian lưu trữ dữ liệu cho LVM disk.
11. Hỏi: Kiểm tra sự isofs, sr_mod. Khi xóa isofs, sr_mod thì báo đang sử dụng, kiểm tra và xóa như thế nào?

Để kiểm tra và xóa các mô-đun isofs và sr_mod đang sử dụng, em có thể thực hiện các bước sau:
1. Kiểm tra trạng thái sử dụng của mô-đun: Sử dụng lệnh lsmod để kiểm tra xem các mô-đun isofs và sr_mod có đang được sử dụng hay không:
lsmod | grep isofs
lsmod | grep sr_mod
2. Kiểm tra tiến trình hoặc thiết bị sử dụng mô-đun: Nếu các mô-đun đang được sử dụng, có thể do thiết bị hoặc tiến trình nào đó. Sử dụng lệnh lsof để tìm các thiết bị liên quan đến các mô-đun này:
lsof /dev/sr0
3. Ngắt kết nối thiết bị sử dụng mô-đun: Nếu em xác định được thiết bị hoặc tiến trình nào đang sử dụng, có thể ngắt kết nối hoặc dừng tiến trình đó trước khi xóa mô-đun. Trong trường hợp này nếu em sử dụng Centos trên VMware, vậy hãy bỏ check sử dụng DVD cho Linux server của em như hình này (Nếu Linux system vẫn báo mô-đun đang được sử dụng, kiểm tra kỹ CD/DVD đang được gắn vào và đang đc sử dụng.):

4. Remove mô-đun: Sau khi đảm bảo không còn thiết bị hoặc tiến trình nào sử dụng, em có thể xóa mô-đun bằng lệnh:
sudo rmmod isofs
sudo rmmod sr_mod
5. Kết quả:

Nếu Server Linux của em setup disk theo Standard Parttition, thì e ko dùng đc các lệnh pvs,vgs,lvs. Do đó nếu e muốn dùng các lệnh này. E setup test thử Linux theo partition LVM nhé.
1. Về các lệnh:
pvs: Hiển thị thông tin về các physical volumes (PVs).
vgs: Hiển thị thông tin về các volume groups (VGs).
lvs: Hiển thị thông tin về các logical volumes (LVs).
– Các lệnh này cung cấp thông tin về cấu trúc lưu trữ LVM của Linux system, giúp chúng ta có thể dễ dàng quản lý và tối ưu hóa không gian lưu trữ dữ liệu cho LVM disk.
2. Chắc em đang chạy HĐH Linux Centos 8, vậy nếu e muốn sử dụng lệnh grub thì em sử dụng trong HĐH Centos 6 trở về trước nhé (trong videos khóa học tôi cũng đã nói về việc này, các lệnh trong linux em viết thường hết nhé, vì lệnh LInux nó phân biệt chữ hoa và chữ thường ).
Trong Centos 8 e có thể sử dụng lệnh VD: grub2-editenv list
3. Em có thể thi tuần tự môn 101-500. Nếu em thấy tự tin sau khi ôn luyện đề thi và nắm chắc kiến thức. E tham khảo trong Link này nhé.
https://www.lpi.org/vi/our-certifications/linux-professional-institute-lpic-1/
13. Hỏi: Red Hat Enterprise Linux. Chào Thầy, em thấy khóa học hay và sát với thực tế công việc. Tuy nhiên hệ thống bên em vẫn còn nhiều thiết bị sử dụng Red Hat Enterprise Linux AS release 4. Thầy có thể gửi giúp tài liệu liên quan OS này ko ạ? Vì lệnh trong khóa học sử dụng OS mới. em cảm ơn!?
Trả lời:
OK e, vậy tôi chia sẻ với em một số tài liệu Linux cũ trong 2 links dưới, em download về tham khảo nhé:
1. https://drive.google.com/file/d/1iDkbl1u9Ou1i92UpVgwOMdRfd_L3sSzc/view?usp=drive_link
2. https://drive.google.com/file/d/14ak8AGfsqOpT7PQfYlvUOMLOfd2D27Ws/view?usp=drive_link
14. Hỏi: Em chào thầy, thầy cho em hỏi vì sao lại dùng CentOs mà không dùng Ubuntu?
Trả lời:
– Vì trong thi chứng chỉ LPIC thì các câu hỏi đa số liên quan đến hệ điều hành Centos systemd (based on RHEL). Tuy nhiên trong khóa học tôi cũng đã hướng dẫn các bạn cách setup và sử dụng các lệnh liên quan đến Ubuntu (Based on Debian).
– Thêm nữa CentOS được xây dựng dựa trên RHEL, là hệ điều hành server được nhiều doanh nghiệp lớn sử dụng. Việc hiểu biết về CentOS giúp các kỹ sư Linux có thể dễ dàng chuyển đổi sang RHEL và các hệ điều hành dựa trên RHEL khác, vì nó đóng vai trò quan trọng trong nhiều môi trường doanh nghiệp. Và RHEL hiện vẫn đang là lựa chọn phổ biến cho servers doanh nghiệp do sự ổn định, tính bảo mật cao và hỗ trợ mạnh mẽ từ Red Hat.
– Còn Ubuntu là hệ điều hành mã nguồn mở, mang lại nhiều tính năng và khả năng tùy chỉnh hơn. Tuy nhiên, việc này cũng dẫn đến sự khác biệt so với RHEL và các hệ điều hành dựa trên RHEL, làm việc chuyển đổi kiến thức của chúng ta từ Ubuntu sang các hệ điều hành khác có thể gặp nhiều khó khăn hơn.
– Và mục tiêu của LPIC là đánh giá khả năng của thí sinh trong việc quản trị hệ thống Linux trong môi trường doanh nghiệp. Do đó, việc tập trung vào CentOS giúp LPIC đảm bảo tính phù hợp với nhu cầu thực tế của các doanh nghiệp.
Em có thể tham khảo về chứng chỉ LPIC: https://www.lpi.org/vi/our-certifications/linux-professional-institute-lpic-1/
15. Hỏi: a cho em hỏi mật khẩu putty ở đoạn 14:17 là gì thế ạ ( root/ ??? ) a cho em hỏi mật khẩu putty ở đoạn 14:17 là gì thế ạ ( root/ ??? ) , đấy là em putty vào card mạng NAT thì login không đc, em thử putty vào card mạng bridge trên ( cenos đã config 2 card mạng như video của a ) và loggin putty thành công nhưng ở terminal nó lại đổi từ localhost thành tên modem con wifi em đang xài của xiaomi R4CM như hình dưới ạ .. liệu có ảnh hưởng gì ko ạ !
em dùng lệnh: sudo -i
Để login vào quyền root nhé. Ngoài ra e để NAT thì vẫn ssh đc vào mà. Vậy thử xem kỹ lại cấu hình nha.

– Khi chúng ta setup 1 máy ảo trên VMware, Mặc định máy ảo này là chế độ NAT, vậy mình dùng NAT nhé.
– Mặc định khi chúng ta setup Centos thì đã có sẵn ssh service.
– Còn với Ubuntu thì có thể phải setup open ssh cho Ubuntu, vậy cách setup là dùng các lệnh sau:
sudo systemctl status sshd
+ Nếu em thấy kết quả hiển thị là dịch vụ ssh đang chạy Running thì có nghĩa là em đã có dịch vụ ssh trong Ubuntu,
Và em có thể ssh vào Ubuntu .
● ssh.service – OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2023-08-09 10:06:01 +07; 1min 24s ago
Docs: man:sshd(8)
– Trường hợp chạy lệnh trên mà không thấy kết quả gì thì có nghĩa là chưa có dịch vụ ssh , vậy chúng ta phải cài đặt chạy
các lệnh sau:
sudo apt-get install openssh-server
Cho phép bật Enable ssh service :
$ sudo systemctl enable ssh
## OR enable and start the ssh service immediately ##
$ sudo systemctl enable ssh --now
Khởi động ssh service :
$ sudo systemctl start ssh
Từ máy tính chạy OS Linux bên ngoài kiểm tra login vào SSH Ubuntu:
$ ssh userName@Your-server-name-IP
Nếu chưa được thì tắt tường lửa mở cổng ssh:
sudo ufw disable
Cho phép root có thể loging được vào Ubuntu:
sudo sed -i ‘s/#PermitRootLogin prohibit-password/PermitRootLogin yes/’ /etc/ssh/sshd_config
18. Hỏi: Làm sao để THE features of the virtual machine will be turned off chuyển sang mode on để sử dụng ubuntu thầy ơi em bị kẹt ở phần này giúp em với ạ ?
Phần 1 mục 3: Cài đặt cấu hình Vmware và Linux Centos & Ubuntu -phần 2 (3:45′) em bị văng ra
– Có thể do máy tính của e chưa cài đặt đung driver cho card màn hình. Vậy em xem máy tính của em đã cài đặt đúng Driver cho card màn hình chưa nhé.
– Ngoài ra nếu em muốn xử lý ngay thì bỏ chức năng 3D graphis của Ubuntu em có thể click chuột phải vào máy Ubuntu==> vào Setting:

– Click chuột Vào mục “Display” phía trái, và bỏ đánh dấu tại hộp “Accelerate 3D graphics”

Lỗi này là do máy tính của e chưa bật(enable) tính năng ảo hóa Virtualization trong Bios, vậy em reboot lại máy và bật chức năng đó lên nhé. Em có thể tham khảo hướng dẫn theo Link sau: https://drivers.com.vn/this-host-supports-intel-vt-x-but-intel-vt-x-is-disabled/
20. Hỏi: Chào Thầy! Em mới mua course LPI1-C của thầy. Cho em hỏi là phiên bản thầy sử dụng là Centos 6 thì khác nhiều so với Centos 9 bản mới nhất và đề thi không ạ! Mong thầy sớm phản hồi ạ! Em cảm ơn ạ!?
Khóa LPIC-1 mình dạy là CentOS 8, và bám sát đề thi LPIC-1 hiện tại nhé. Về các lệnh cơ bản thì Centos 6 thì nó cùng giống với Centos 7,8 và 9 . Tuy nhiênCentOS 6 sử dụng phiên bản kernel cũ hơn, trong khi CentOS 7,8, 9 sử dụng phiên bản kernel mới hơn với nhiều cải tiến và tính năng mới.
CentOS 6 sử dụng hệ thống khởi động SysV Init.
Từ CentOS 7 trở đi, hệ thống khởi động đã được chuyển sang systemd, một hệ thống khởi động hiện đại và phổ biến trong các bản phân phối Linux mới hơn. Systemd cung cấp nhiều cải tiến và tính năng tiên tiến hơn so với SysV Init, và nó giúp tăng tốc quá trình khởi động và quản lý các dịch vụ hiệu quả hơn. Về chi tiết khác nhau giữa các HĐH cũ từ Cento6 trở xuống với CentOS 7 trở lên mình có giải thích trong khóa học nhé.
Ngoài ra chỉ có 1 số bài học mình có sử dụng Centos 6 để giảng vì đề thi LPIC-1 hiện tại có liên quan đến Linux system cũ SysV Init, bạn tham khảo đường Link yêu cầu kiến thức thi LPIC-1 tại đây để hiểu rõ nhé: https://www.lpi.org/our-certifications/exam-101-objectives/
21. Hỏi: Ngoài ra chỉ có 1 số bài học mình có sử dụng Centos 6 để giảng vì đề thi LPIC-1 hiện tại có liên quan đến Linux system cũ SysV Init, bạn tham khảo đường Link yêu cầu kiến thức thi LPIC-1 tại đây để hiểu rõ nhé: https://www.lpi.org/our-certifications/exam-101-objectives/?
Trả lời:
– Nếu em làm theo hướng dẫn trong Video vậy em login vào máy Linux Ubuntu 22 thì mới show được Logiccal Volume nhé. Còn Centos nếu em làm theo hướng dẫn setup trong khóa học thì nó là chia phân vùng ổ theo định dạng filesystem Ext4 không phải là LVM nhé.
– Ngoài ra có gì khó trong khóa học hay trong công việc liên quan đến Linux, system network em cứ hỏi trong nhóm Linux Zalo này , nếu như anh có việc chưa trả lời được thì có anh em khác sẽ trả lới nhé.
– Vậy em join vào nhóm Linux theo đường Link này nhé: https://zalo.me/g/fmitpl996?joinSrc=9
22. Hỏi: Thi Linux lpic-2 có cần phải thi Linux lpic-1 trước đó không anh @Phuongluuho ?
Trả lời:
Phải có chứng chỉ Linux LIPC-1 mới được cấp chứng chỉ Linux LPIC-2, do đó mình phải thi LPIC-1 trước e nhé!
23. Theo anh quan niệm dùng Linux không bị virus, mã hóa có còn đúng ko anh?
Không đúng em nhé, vẫn có thể xảy ra dù tỉ lệ rất thấp, vì bản chất Linux cũng là 1 OS và lưu trữ các data, và người ta vẫn có thể code virus, cũng như tools mã hóa cho OS này.
Dù Linux an toàn hơn Windows ở nhiều khía cạnh (vì mô hình phân quyền tốt, ít người dùng phổ thông, ít mục tiêu hơn), nhưng Linux vẫn có thể bị nhiễm virus, ransomware hoặc mã độc, đặc biệt trong các hệ thống Linux:
Có kết nối Internet và SSH mở ra ngoài.
Cài đặt phần mềm không rõ nguồn gốc.
Thiết lập phân quyền, firewall, SELinux không hợp lý, có nhiều lỗ hổng bảo mật.
Trong thực tế đã có nhiều malware nổi tiếng cho Linux như Rex, Mirai, Xor.DDoS, hoặc ransomware mã hóa dữ liệu trên server chạy Linux.
Một số hệ thống production Linux bị mã hóa bởi ransomware do để lộ private key SSH hoặc dùng mật khẩu yếu, hoặc bị chèn script khai thác CPU để cho việc đào coin.
Do đó, quan niệm “Linux không bị virus hay mã hóa” là sai lầm nguy hiểm. Điều quan trọng chúng ta cần làm là:
Cập nhật hệ thống thường xuyên.
Hạn chế quyền root.
Sử dụng firewall, fail2ban, antivirus cho server (vd: ClamAV, Lynis…).
Backup định kỳ.
- Setup anti virus cho Linux Server
- Về các chính sách bảo mật thì việc đào tạo cho tất cả nhân viên trong công ty cần phải tuân thủ các quy trình bảo mật an toàn thông tin rất quan trọng. Nếu ace ai đã làm về security thì biết về quy trình ISMS (Information Security Management System) áp dụng cho 1 cty.
24. Với khóa học Linux LPIC-1 em cài Centos 9 có được không ạ?
OK em hoàn toàn có thể setup Centos 9 được, em có thể tham khảo bài “Hướng Dẫn Cách Cài Đặt Linux CentOS 9 Theo Từng Bước Chi Tiết” của tôi nhé: Hướng Dẫn Cách Cài Đặt Linux CentOS 9 Theo Từng Bước Chi Tiết – Luu Ho Phuong Blog
Chúc em học tốt và thành công.
25. E chào a, a ơi, e đang cài Nagios core đến chỗ này báo lỗi không thể cài đặt lỗi unzip, cách khắc phục như nào vậy a?

Trả lời:
Hello Uy,
Lỗi này có nghĩa là trong quá trình chạy lệnh ./configure chương trình này kiểm tra xem Ubuntu của em có sẵn công cụ unzip hay chưa, và nó thông báo “configure: error: Cannot continue without unzip!” – Có nghĩa là “Không thể tiếp tục chạy vì không có unzip” mà Nagios thì cần nó để giải nén một số files trong quá trình build.
Như vậy unzip chưa được setup trong hệ thống Linux của em. Vậy em setup gói unzip nhé:
sudo apt update
sudo apt install unzip -y
Sau đó em chạy lại ./configure để setup Nagios core nhé!
Chúc em học tốt và thành công.
26. em thấy chatgpt có giải thích rằng:
“rmmod = gỡ trực tiếp, không quan tâm phụ thuộc
modprobe -r = gỡ an toàn, xử lý phụ thuộc”
tuy nhiên em có test thì thấy cả 2 đều nói đến module đó đang được sử dụng bởi module khác mà không gỡ trực tiếp
“root@linuxagent:~# modprobe -r mptscsih
modprobe: FATAL: Module mptscsih is in use.
root@linuxagent:~# rmmod mptscsih
rmmod: ERROR: Module mptscsih is in use by: mptspi
Trả lời:
Hello Huy,
Câu hỏi của em rất hay nhé! Vậy anh trả lời như sau:
– Đầu tiên chúng ta cần hiểu lệnh rmmod và modprobe -r khác nhau ở đâu?
* Với lệnh rmmod: Cho phép có thể Gỡ trực tiếp 1 module cụ thể và không xử lý phụ thuộc, như vậy nếu module muốn gỡ đang được module khác sử dụng nó sẽ báo lỗi là module này đang được sử dụng.
* Với lệnh modprobe -r: Nó cho phép gỡ module kèm theo xử lý dependencies(các thành phần phụ thuộc), nó sẽ cố gắng gỡ các modules phụ thuộc trước, dựa vào file /lib/modules/$(uname -r)/modules.dep
– Nhưng vì sao em test thì thấy chạy cả hai lệnh này đều không gỡ được?
– Ví dụ của em chạy cả 2 lệnh:
modprobe -r mptscsih
Và thấy nó báo lỗi FATAL: Module mptscsih is in use.
rmmod mptscsih
Báo lỗi ERROR: Module mptscsih is in use by: mptspi
Kết quả trả về như trên là đúng và không sai với lý thuyết cũng như thực tế trong Linux.
– Ở đây có nghĩa là: mptscsih đang bị mptspi sử dụng và lệnh modprobe -r không thể tự ý phá các dependencies, do Kernel không cho phép gỡ module đang được sử dụng trong hệ thống.
Vậy điểm khác biệt ở đây thật sự là gì?
– Sự khác biệt của lệnh modprobe -r và rmmod sẽ thấy rõ khi chúng ta làm như sau:
* Nếu chạy lệnh:
modprobe -r module_A
Và trường hợp giả sử: module_A phụ thuộc module_B (tức là A cần B để hoạt động) thì lệnh modprobe -r sẽ gỡ module_A trước. Sau đó nếu module_B không còn được module nào sử dụng nữa, thì mới có thể gỡ tiếp module_B.
Như vậy lệnh modprobe -r không tự ý phá dependency mà nó chỉ gỡ module theo thứ tự an toàn nếu không còn chương trình nào sử dụng nữa.
Trong khi nếu chạy lệnh: rmmod module_A thì nó chỉ cố gỡ đúng module_A và không quan tâm dependency tree.
– Như vậy chúng ta kết luận chuẩn cho việc hiểu kiến thức thi LPIC-1
* Lệnh rmmod là lệnh cho phép gỡ thô module, và gỡ trực tiếp
* Lệnh modprobe -r là lệnh cho phép gỡ module một cách thông minh, và nó xử lý các thành phần phụ thuộc với modules
* Cả hai lệnh này đều không thể gỡ module đang được sử dụng.
– Nếu em gặp các câu hỏi khi thi LPIC-1 thì cần nhớ là lệnh: modprobe làm việc dựa trên dependency database, còn rmmod chỉ thao tác trực tiếp với kernel.
27.Lệnh dpkg –status: Lệnh dpkg –status em chạy cũng như thầy nhưng mà theo e tìm hiểu thì lệnh này dùng với package name chớ không phải với file .deb đúng hong ạ?

Trả lời:
Hello Tùng,
Câu hỏi của em rất tốt và đúng trọng tâm, em hiểu như vậy là đúng rồi nhé.
1. Vậy lệnh dpkg –status dùng với cái gì?
– Khi dùng lệnh:
dpkg –status <package-name>
Là chúng ta dùng với package name, không dùng với file .deb.
– Ví dụ đúng:
dpkg –status nginx
dpkg -s nginx
Lệnh trên sẽ hiển thị các thông tin của gói nginx mà chúng ta đã setup cho Linux Server như: Version, Status (install ok installed), Architecture, Description, Maintainer, và các Dependencies
2. Vì sao chúng ta không nên dùng lệnh này với file .deb?
– Nếu em chạy lệnh:
dpkg –status file.deb
Thì dpkg sẽ hiểu file.deb là tên package đã được cài trong hệ thống, chứ không phải là file deb mà em đang lưu trên disk.
Do đó dpkg –status chỉ kiểm tra database của hệ thống (thường nằm ở /var/lib/dpkg/), không đọc thông tin trực tiếp từ file .deb mà em đang có.
3. Nếu em muốn xem thông tin của file .deb thì dùng lệnh gì?
Khi có file chưa cài nginx vào hệ thống, ví dụ:
nginx_1.24.0-2ubuntu7.6_amd64.deb
Thì dùng lệnh:
dpkg –info nginx_1.24.0-2ubuntu7.6_amd64.deb
Hoặc lệnh:
dpkg -I nginx_1.24.0-2ubuntu7.6_amd64.deb
Như vậy kết quả là lệnh này đọc metadata trực tiếp từ file .deb.
4. Tóm lại để em có thể dễ nhớ các kiến thức (thi LPIC rất hay hỏi) chúng ta có 1 bảng như sau:
Mục đích Lệnh
Xem trạng thái một package đã cài dpkg –status package-name
Xem thông tin file .deb dpkg –info file.deb
Liệt kê package đã cài dpkg -l
Như vây là chúng ta tổng kết lại:
✔ Em đã hiểu đúng lệnh: dpkg –status dùng với package name, không dùng với file .deb.
✔ Nếu muốn xem file .deb chưa cài chúng ta dùng lệnh dpkg –info.
28. Lệnh wget:

Dạ thầy theo e tìm hiểu thì nên dùng lệnh wget http://localhost -O local_index.response sẽ tối ưu hơn đúng hong ạ. Tại vì Lệnh: wget http://localhost > local_index.response. Redirect STDOUT sang file local_index.response sẽ tồn tại nhưng 0 byte vì wget ghi nội dung HTML trực tiếp vào file, không qua stdout. Nội dung thật vẫn nằm trong index.html sau lại phải dùng lệnh mv để đổi lại tên file?
Trả lời:
Hello Tùng,
OK cách này cũng rất tốt em, khi dùng lệnh wget http://localhost -O local_index.response
Vậy: -O là option wget dùng để ghi nội dung vào file chỉ định, wget sẽ ghi trực tiếp nội dung HTML vào file local_index.response
mà không tạo thêm file trung gian như index.html.
