Skip to content
VDS · Sao lưu và ổ đĩa

Dữ liệu biến mất: làm gì từng bước

Quy trình khi tệp hoặc cơ sở dữ liệu biến mất: cách không làm mọi thứ tệ hơn bằng hành động đầu tiên, tìm dấu vết ở đâu và những gì có thể khôi phục được, những gì không.

Cập nhật 23 tháng 8, 2026

Hành động đầu tiên sau khi mất dữ liệu quan trọng hơn mọi thứ tiếp theo. Dưới đây là quy trình giúp bạn không đánh mất cơ hội khôi phục.

Ngay lập tức: ngừng ghi lên ổ đĩa

Một tệp đã xóa vẫn tồn tại trên ổ đĩa cho đến khi không gian của nó bị thứ khác chiếm lấy. Mỗi lần ghi — cài đặt gói, một website đang chạy, một tệp log đang phình to — đều làm giảm cơ hội của bạn.

  • Dừng mọi thứ đang ghi: web server, cơ sở dữ liệu, các worker hàng đợi.
  • Không cài phần mềm khôi phục lên cùng ổ đĩa đó.
  • Không cài lại hệ thống: cài lại sẽ phá hủy ổ đĩa hoàn toàn và không thể đảo ngược.

Nếu dữ liệu quan trọng và bạn không có bản sao lưu, hãy dừng máy và liên hệ bộ phận hỗ trợ trước khi thử nghiệm bất cứ điều gì.

Xác định chính xác chuyện gì đã xảy ra

Dấu hiệuĐó là gìXem tại đây
Tệp bị xóa bởi một lệnhXóa thông thườngMục bên dưới
“No space left on device”Hết dung lượng, ứng dụng không thể ghihết dung lượng
Cơ sở dữ liệu không mở được, tệp vẫn cònCơ sở dữ liệu bị hỏngsao lưu cơ sở dữ liệu
Hệ thống không khởi độngBootloader hoặc hệ thống tệpđĩa cứu hộ
Tệp lạ, tiến trình không quenCó thể đã bị xâm nhậpdấu hiệu bị xâm nhập

Nếu bạn có bản sao lưu

Đây là con đường nhanh nhất và gần như luôn là con đường thành công duy nhất. Hãy khôi phục theo cách của bạn — rsync hoặc restic — và kiểm tra không phải việc giải nén thành công, mà là nội dung: kích thước, số dòng, cơ sở dữ liệu có mở được không.

restic -r /path/to/repo snapshots
restic -r /path/to/repo restore latest --target /restore

Trước tiên hãy khôi phục vào một thư mục riêng, không ghi đè lên thư mục đang hoạt động: bản sao lưu cũng có thể không đầy đủ, và ghi đè lên những gì còn sót lại bằng nó là cách để mất cả hai lựa chọn.

Nếu bạn không có bản sao lưu

Chúng tôi không lưu bản sao lưu tự động của máy bạn và không có snapshot. Ổ đĩa của máy ảo là ổ đĩa của bạn: chuyện gì xảy ra trên đó thì đã xảy ra. Đó là lý do bản sao lưu được thiết lập ngay từ ngày đầu — cần sao lưu chính xác những gì.

Những gì khác bạn có thể tự thử:

  • Tệp vẫn đang được một tiến trình mở. Nếu một chương trình đang giữ một tệp đã xóa, tệp đó vẫn truy cập được qua /proc:
    lsof +L1
    cp /proc/<pid>/fd/<n> /root/recovered-file
    
    Cách này chỉ hiệu quả khi tiến trình còn sống — đừng khởi động lại nó.
  • Dữ liệu trong log của cơ sở dữ liệu. PostgreSQL và MySQL có write-ahead log mà từ đó chuyên gia có thể dựng lại trạng thái trước khi sự cố xảy ra. Đừng vội khởi động cơ sở dữ liệu ở chế độ repair — đó là cách để mất luôn cả log.
  • Khởi động vào đĩa cứu hộ và tạo ảnh (image) ổ đĩa sang một máy khác trước khi thử các công cụ như extundelete hay photorec. Bạn phải làm việc với ảnh, không phải với ổ đĩa đang chạy.

Những điều không nên làm

  • Cài lại hệ thống “để làm lại từ đầu” trước khi quyết định xem bạn có cần dữ liệu hay không.
  • Chạy các chương trình khôi phục ghi kết quả ra cùng ổ đĩa đó.
  • Sửa hệ thống tệp bằng fsck với tùy chọn tự động trả lời “yes” trên ổ đĩa đang chạy mà không có ảnh.
  • Chờ một tuần rồi mới yêu cầu khôi phục: máy chạy càng lâu, càng ít thứ còn lại.

Cách tránh lặp lại chuyện này

Cuộc trò chuyện này luôn kết thúc theo cùng một cách: hoặc bạn có bản sao lưu, hoặc bạn không. Hãy thiết lập ngay hôm nay và kiểm tra mỗi quý một lần bằng một buổi diễn tập khôi phục — một bản sao lưu chưa từng được khôi phục thì không được tính là bản sao lưu.