Nếu desktop Linux của bạn chỉ hiển thị màn hình đen, đừng vội cho rằng hệ điều hành đã hỏng hoặc cần cài lại. Trong nhiều trường hợp, chỉ có giao diện đồ họa gặp sự cố.
Hướng dẫn này giới thiệu cách tiếp cận thực tế để xử lý sự cố và khôi phục desktop Linux khi không khởi động được. Bạn sẽ học cách xác định thành phần bị lỗi, lấy lại quyền truy cập hệ thống qua TTY, Recovery Mode hoặc Live USB, và sử dụng log hệ thống để chẩn đoán vấn đề. Hướng dẫn sử dụng cấu hình Xorg bị hỏng làm ví dụ thực tế, nhưng quy trình xử lý tương tự áp dụng cho nhiều vấn đề khởi động desktop khác.
Cách sửa chữa chính xác phụ thuộc vào nguyên nhân gốc. Thay vì đưa ra một giải pháp duy nhất, hướng dẫn này dạy quy trình khôi phục desktop Linux có hệ thống mà bạn có thể áp dụng cho nhiều lỗi khởi động desktop khác nhau.
Trước khi bắt đầu, hãy xem lại các thành phần cơ bản của desktop Linux.
Cách desktop Linux khởi động
Desktop Linux bao gồm nhiều thành phần độc lập. Mỗi thành phần thực hiện một tác vụ cụ thể. Nếu một thành phần bị lỗi, giao diện đồ họa có thể không khởi động được mặc dù hệ điều hành vẫn đang chạy.
Kernel là lõi của hệ điều hành, quản lý phần cứng máy tính.
Display server tạo các cửa sổ đồ họa và hiển thị chúng trên màn hình. Hầu hết các hệ thống Linux sử dụng Xorg hoặc Wayland làm display server. Chúng thực hiện cùng vai trò nhưng sử dụng công nghệ khác nhau.
Desktop environment cung cấp desktop, bảng điều khiển, menu và các tính năng đồ họa khác. Các desktop environment phổ biến bao gồm GNOME, KDE Plasma, Xfce và Cinnamon.
Nếu display server hoặc desktop environment không khởi động được, bạn có thể thấy màn hình đen, vòng lặp đăng nhập hoặc desktop không bao giờ tải xong.
Như đã đề cập, tôi sử dụng cấu hình Xorg bị hỏng làm ví dụ. Xorg hiện đại thường hoạt động mà không cần thư mục /etc/X11 vì nó có thể tự động phát hiện hầu hết phần cứng. Tuy nhiên, nếu các tệp cấu hình Xorg cần thiết bị thiếu hoặc hỏng, Xorg có thể không khởi động được hoặc hoạt động bất thường.
Các phương pháp xử lý sự cố trong hướng dẫn này cũng áp dụng cho nhiều vấn đề khởi động desktop Linux khác.
Sửa đổi tệp hệ thống một cách an toàn
Trước khi bắt đầu xử lý sự cố, hãy học cách sửa đổi tệp hệ thống một cách an toàn. Một lệnh sai có thể biến vấn đề có thể khắc phục thành khó sửa hơn nhiều.
Linux cấp cho người dùng root toàn quyền kiểm soát hệ điều hành. Lệnh sudo tạm thời cấp các đặc quyền quản trị này. Linux giả định bạn biết mình đang làm gì. Nó không ngăn bạn xóa các tệp hệ thống quan trọng.
Trước khi sửa đổi tệp hoặc thư mục hệ thống, hãy tìm hiểu nó được dùng để làm gì. Nhiều tệp được cài đặt và quản lý bởi trình quản lý gói của bản phân phối. Xóa chúng thủ công có thể khiến phần mềm ở trạng thái không nhất quán.
Nếu bạn cần kiểm tra thay đổi cấu hình, hãy tạo bản sao lưu thay vì xóa tệp gốc. Ví dụ:
sudo cp /etc/example.conf /etc/example.conf.bak
Nếu hướng dẫn yêu cầu gỡ bỏ phần mềm, hãy sử dụng trình quản lý gói của bản phân phối thay vì xóa tệp thủ công. Trình quản lý gói theo dõi các tệp đã cài đặt và cập nhật cơ sở dữ liệu khi phần mềm được cài đặt, nâng cấp hoặc gỡ bỏ.
Tìm gói quản lý tệp
Trước khi sửa đổi hoặc xóa tệp hệ thống, hãy kiểm tra xem nó có được quản lý bởi gói phần mềm nào không. Nếu có, hãy sử dụng trình quản lý gói của bản phân phối để sửa chữa hoặc cài đặt lại gói thay vì sửa đổi hoặc xóa tệp thủ công.
Debian và Ubuntu
dpkg -S /path/to/file
Fedora, RHEL và CentOS
rpm -qf /path/to/file
Arch Linux
pacman -Qo /path/to/file
Nếu lệnh báo cáo rằng không có gói nào sở hữu tệp, tệp đó có thể được tạo thủ công, được tạo bởi ứng dụng hoặc được lưu trữ bên ngoài cơ sở dữ liệu gói. Trong trường hợp đó, hãy điều tra mục đích của nó trước khi thực hiện thay đổi.
Bài đọc được đề xuất: Cách tìm gói cung cấp một tệp cụ thể trong Linux
Phân tích log hệ thống bằng công cụ chẩn đoán
Hướng dẫn này giả định hệ thống của bạn sử dụng systemd, đây là init system mặc định trên hầu hết các bản phân phối Linux hiện đại.
Khi desktop Linux không khởi động được, bước đầu tiên là xác định thành phần bị lỗi. Log hệ thống ghi lại các sự kiện và lỗi từ hệ điều hành và các dịch vụ của nó. Chúng thường cung cấp đủ thông tin để xác định nguyên nhân vấn đề.
Công cụ 1: systemd Journal (journalctl)
systemd journal thu thập thông báo log từ kernel, dịch vụ hệ thống và nhiều ứng dụng. Đây thường là nơi tốt nhất để bắt đầu xử lý sự cố vì nó cung cấp cái nhìn toàn hệ thống về những gì đã xảy ra.
Để hiển thị thông báo từ lần khởi động hiện tại, chạy:
journalctl -b
Công cụ 2: Xorg Log
Nếu hệ thống của bạn sử dụng Xorg, bạn cũng có thể xem Xorg log. Nó ghi lại thông tin về display server, bao gồm phát hiện phần cứng, khởi tạo màn hình và lỗi khởi động.
Tùy thuộc vào bản phân phối Linux và cấu hình, log có thể được lưu trữ trong /var/log/Xorg.0.log, ~/.local/share/xorg/Xorg.0.log hoặc systemd journal.
Các dòng được đánh dấu (EE) cho biết lỗi. Chúng thường là nơi tốt nhất để bắt đầu điều tra.
Chọn phương pháp khôi phục phù hợp
Phương pháp khôi phục phụ thuộc vào mức độ khởi động của hệ thống.
- Hệ thống đến màn hình đen hoặc màn hình đăng nhập bị đóng băng: Chuyển sang TTY (Virtual Console) và sửa chữa hệ thống từ dòng lệnh.
- Hệ thống không bao giờ đến màn hình đăng nhập hoặc TTY: Khởi động từ Live USB và sửa chữa hệ thống đã cài đặt từ môi trường chroot.
Bắt đầu với phương pháp TTY. Nó đơn giản hơn và không yêu cầu phương tiện bên ngoài. Chỉ sử dụng phương pháp Live USB nếu bạn không thể truy cập TTY.
Phương pháp 1: Khôi phục từ TTY
TTY (Virtual Console) là màn hình đăng nhập text-based (dựa trên văn bản) chạy độc lập với giao diện đồ họa. Nếu giao diện đồ họa bị lỗi, TTY thường vẫn khả dụng.
Nhấn Ctrl + Alt + F2. Nếu không có gì xảy ra, hãy thử F3 đến F6.
Đăng nhập bằng tên người dùng và mật khẩu của bạn. Linux không hiển thị mật khẩu khi bạn gõ. Điều này là bình thường.
Kiểm tra log hệ thống để xác định thành phần bị lỗi:
journalctl -b
Sửa chữa thành phần bị lỗi. Ví dụ: cài đặt lại gói bị thiếu, khôi phục tệp cấu hình đã xóa hoặc hoàn tác thay đổi cấu hình gần đây.
Khởi động lại hệ thống:
sudo reboot
Mẹo: Nếu bạn không thể truy cập TTY, hãy kiểm tra xem bản phân phối của bạn có cung cấp Recovery Mode hoặc Rescue Mode từ menu GRUB không. Nó có thể cho phép bạn sửa chữa hệ thống đã cài đặt mà không cần Live USB. Các tùy chọn có sẵn khác nhau tùy theo bản phân phối.
Phương pháp 2: Khôi phục từ Live USB
Sử dụng phương pháp này nếu hệ thống của bạn không đến được màn hình đăng nhập hoặc TTY.
Live USB là một ổ USB có thể khởi động cho phép bạn chạy Linux mà không cần sử dụng hệ điều hành đã cài đặt. Môi trường chroot (change root) cho phép bạn truy cập và sửa chữa hệ thống đã cài đặt từ Live USB.
Khởi động máy tính từ Live USB Linux. Mở terminal và xác định phân vùng gốc Linux của bạn bằng lệnh:
lsblk -f
Tiếp theo, mount phân vùng gốc. Thay /dev/sdXN bằng phân vùng gốc của bạn.
sudo mount /dev/sdXN /mnt
Lưu ý: Nếu hệ thống của bạn sử dụng các phân vùng riêng cho /boot, /boot/efi, LVM, mã hóa LUKS hoặc Btrfs subvolume, hãy mount các phân vùng hoặc subvolume cần thiết trước khi tiếp tục.
Bind các virtual filesystem cần thiết.
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo mount --bind /run /mnt/run
Vào hệ thống đã cài đặt.
sudo chroot /mnt
Chẩn đoán và sửa chữa vấn đề. Ví dụ: khôi phục tệp cấu hình đã xóa hoặc sửa chữa gói phần mềm bị hỏng.
Thoát khỏi môi trường chroot.
exit
Unmount các filesystem và khởi động lại máy tính.
sudo umount -R /mnt
sudo reboot
Ngăn ngừa sự cố khởi động desktop trong tương lai
Bạn không thể ngăn ngừa mọi vấn đề, nhưng có thể giảm nguy cơ mất quyền truy cập vào desktop.
- Sao lưu các tệp cấu hình quan trọng trước khi thực hiện thay đổi. Chúng tôi đã xuất bản hướng dẫn về một số công cụ sao lưu. Xem danh mục Công cụ sao lưu của chúng tôi để biết thêm chi tiết.
- Sử dụng trình quản lý gói của bản phân phối để cài đặt, cập nhật và gỡ bỏ phần mềm.
- Kiểm tra các thay đổi cấu hình lớn trong máy ảo nếu có thể.
- Tạo bản sao lưu hoặc snapshot hệ thống thường xuyên trước khi nâng cấp hệ điều hành hoặc sửa đổi tệp hệ thống.
- Luôn có sẵn Live USB Linux để khôi phục hệ thống khi không khởi động được giao diện đồ họa.
- Thực hiện từng thay đổi một. Nếu sự cố xảy ra, sẽ dễ dàng xác định nguyên nhân hơn.
Kết luận
Desktop Linux bị hỏng không phải lúc nào cũng có nghĩa là hệ điều hành bị hỏng. Trong nhiều trường hợp, bạn có thể khôi phục môi trường đồ họa mà không cần cài lại Linux.
Chìa khóa là tuân theo một cách tiếp cận có cấu trúc. Truy cập dòng lệnh, xem log, xác định thành phần bị lỗi và sửa chữa vấn đề cơ bản. Với những kỹ năng này, bạn có thể chẩn đoán và khôi phục nhiều lỗi khởi động desktop Linux phổ biến một cách tự tin.
Bài đọc được đề xuất:
- Cách sửa Ubuntu bị hỏng mà không cần cài lại
- Cách sửa lỗi Busybox Initramfs trên Ubuntu
- Cách sử dụng phím Magic SysRq Linux để khôi phục hệ thống bị treo
- Cách sửa lỗi “E: Could not get lock /var/lib/dpkg/lock” trên Ubuntu
- Cách khôi phục tệp .bashrc về cài đặt mặc định trong Ubuntu
- Cách tắt Unattended Upgrades trên Ubuntu
- Cách khôi phục Arch Linux bị hỏng về trạng thái hoạt động trước đó




