Trở thành Doctor Strange trong Linux với Timeshift

Tác giả: 27/01/2023

Timeshift trên Linux cũng tương tự như System Restore của Windows hay Time Machine tool trong MacOS, nó cung cấp những bản backup đầy đủ (full backup) hoặc gia tăng (incremental backup) của tệp tin hệ thống. Từ đó, giúp ta có thể khôi phục lại thời điểm trước nếu như có thay đổi nào gây ra lỗi hệ thống hoặc tùy vào nhu cầu sử dụng

Ở chế độ RSYNC, snapshot được lấy bằng cách sử dụng rsync và hard-links. Những tệp chung sẽ được chia sẻ giữa các snapshot để tiết kiệm không gian. Mỗi bản snapshot đều là backup toàn bộ hệ thống và có thể truy cập thông qua trình quản lý tệp

Ở chế độ BTRFS, snapshot được lấy bằng tính năng tích hợp của BTRFS filesystem. BTRFS snapshot chỉ hỗ trợ đối với những hệ thống BTRFS có dạng subvolume kiểu như Ubuntu (kiểu @ hay @home)

Timeshift cũng gần tương tự như các ứng dụng rsnapshotBackInTimeTimeVault nhưng với mục tiêu khác nhau. Timeshift được thiết kế chỉ để bảo vệ các tệp hệ thống hay các tệp cấu hình. Những tệp tin của người dùng như tài liệu, ảnh hay nhạc đều bị loại trừ. Điều này đảm bảo toàn bộ dữ liệu của người dùng không bị thay đổi khi khôi phục hệ thống về thời điểm trước đó.

Nếu bạn đang cần 1 công cụ giúp backup dữ liệu, hãy xem qua Baqpaq để có thêm nhiều tùy chọn giúp lưu trữ tệp tin người dùng hơn.

Tính năng

Cài đặt đơn giản

  • Timeshift yêu cầu rất ít bước cấu hình. Đơn giản là cài đặt, chạy backup lần đầu tiên, sau đó đặt cronjob để backup tự động các lần sau.
  • Những bản backup mặc định được lưu ở phân vùng root của hệ thống và có đường dẫn /timeshift. Các phân vùng khác cũng có thể được lưa chọn, do đó, tốt nhất hãy lưu backup ở 1 phân vùng khác với phân vùng hệ thống

Backup đa thời điểm

  • Ta có thể chọn thời điểm backup rất linh hoạt: Hàng giờ, hàng ngày, hàng tuần, hàng tháng, hay ngay sau khi khởi động
  • Tùy chọn số backup giữ ở 1 thời điểm
  • Backup sau khi khởi động sẽ được tạo mỗi khi hệ thống khởi động, tuy nhiên sẽ có khoảng trễ là 10 phút sau khi quá trình khởi động hoàn tất, do đó không làm ảnh hưởng đến hệ thống.

RSYNC và BTRFS

  • Tất cả hệ thống đều hỗ trợ Rsync snapshot
  • Chỉ những hệ thống BTRFS mới hỗ trợ BTRFS snapshot

BTRFS snapshot sẽ thực sự hữu dụng trên những hệ thống được cài đặt ở phân vùng BTRFS. BTRFS snapshot sao chép hoàn toàn từng bit 1 của hệ thống. Không có ngoại lệ. Không những vậy, BTRFS snapshot cũng chiếm rất ít dung lượng mà thời gian restore lại chỉ tính theo giây.

Dữ liệu người dùng bị loại trừ theo mặc định

Timeshift được thiết kế để bảo vệ tệp hệ thống và tệp cấu hình. Nó không phải là 1 công cụ backup dữ liệu người dùng. Toàn bộ nội dung của home directory đều mặc định không được backup. Điều này có 2 ý nghĩa:

  • Bạn không cần phải bận tâm về việc dữ liệu của mình bị thay đổi khi khôi phục các dữ liệu hệ thống.
  • Các dữ liệu nặng như nhạc hay video sẽ không chiếm dung lượng ở thiết bị lưu trữ backup

Bạn hoàn toàn có thể chọn bao gồm những dữ liệu này ở cửa sổ Settings. Tùy chọn “Include hidden items” từ thẻ Users cho phép bao gồm cả những file ẩn ở trong thư mục người dùng. Những thư mục này có thể chứa file cấu hình đặc thù của người dùng và có thể bao gồm vào trong dữ liệu backup nếu cần thiết.

Tuy nhiên việc backup dữ liệu người dùng không được khuyến khích

Lịch trình backup tốt hơn

  • Không giống với các công cụ khác sẽ tạo backup vào 1 thời điểm nhất định trong ngày. Timeshift sẽ tạo backup hàng giờ, điều này sẽ có ích đối với những máy tính có uptime trong ngày hạn chế. Vì nếu vào thời điểm backup mà hệ thống đang không khả dụng, bản backup đó sẽ bị miss.
  • Ứng dụng như rsnapshot đặt lịch backup theo 1 cách khác đó là sao chép hard-linked. Tạo 1 bản sao hard-linked là 1 ý tưởng không tồi, tuy nhiên nó vẫn tốn nhiều dung lượng ổ đĩa trong khi chỉ tệp mới có thể tạo hard-link còn thư mục thì không. Cấu trúc thư mục trùng lặp có thể chiếm tới 100 MB dung lượng ổ cứng. Timeshift tránh sự lãng phí này bằng cách sử dụng các thẻ khi duy trì các tầng backup. Mỗi vị trí backup sẽ chỉ có duy nhất 1 bản copy ở ổ đĩa và được gắn thẻ “daily”, “monthly”,…. Vị trí backup đó sẽ có các thư mục phân theo tầng backup (hourly, monthly, …) với sym-links trỏ tới bản snapshot được gắn thẻ theo đúng tầng đó

Khôi phục hệ thống

  • Snapshot có thể được khôi phục cả ở hệ thống đang chạy hoặc ở 1 hệ thống khác mà có cài đặt Timeshift
  • Nếu như không thể boot được vào hệ thống, ta hoàn toàn có thể cài đặt Timeshift lên đĩa, USB ngoài như Ubuntu Live CD sau đó khôi phục hệ thống bằng bản snapshot có trong đĩa

Khôi phục chéo bản phân phối

  • Timeshift cho phép restore ngay cả khi OS hiện tại không giống với trong bản snapshot. Ví dụ bạn đang sử dụng Xubuntu và muốn dùng thử Linux Mint, hãy tạo 1 bản snapshot rồi cài đặt Linux Mint lên server. Sau khi trải nghiệm xong và muốn trở về Xubuntu, hãy restore về bản backup trước đó, Timeshift sẽ lo phần boot loader và toàn bộ các thành phần hệ thống khác
  • Lưu ý là hãy giữ bản snapshot ở 1 hệ thống khác trước khi cài lại hệ điều hành
  • Bạn nên tích chọn option “Include Hidden Items” ở Settings > Users

Các cấu hình hệ thống được hỗ trợ

  • Normal: OS được cài đặt ở phân vùng không bị mã hóa
  • LUKS Encrypted: OS cài đặt ở phân vùng mã hóa LUKS
  • BTRFS: OS cài đặt trên ổ BTRFS
  • GRUB2: Bootloader phải là GRUB 2
  • EFI: hệ thống EFI được hỗ trợ. Hãy chắc chắn là phân vùng /boot/efi đã được chọn để mount trước khi restore
  • Encrypted Home: Với người dùng có home directory được mã hóa, tệp trong /home/.encryptfs/$USER sẽ được backup và restore. Những nội dung không mã hóa ở $HOME sẽ được loại trừ. Điều này sẽ tránh việc nội dung không được mã hóa trở nên khả dụng bên ngoài home directory của người dùng đó
  • Thư mục riêng được mã hóa: Những tệp được mã hóa ở $HOME/.Private, hay ở $HOME/Private sẽ được loại trừ (do chứa dữ liệu người dùng). Các bộ lọc thêm vào để bao gồm 2 thư mục trên sẽ không có hiệu lực
  • Docker và Container: Docker hay hệ thống dạng container không được hỗ trợ. Timeshift ở các hệ thống này có thể đem đến kết quả không mong muốn

Cài đặt Timeshift

Ubuntu-based:

sudo add-apt-repository -y ppa:teejee2008/ppa
sudo apt-get update
sudo apt-get install timeshift

RedHat-based

sudo yum makecache
sudo yum -y install timeshift

 

Tổng kết

Hãy nhớ, Timeshift là một phần mềm miễn phí, do đó khi sử dụng cho mục đích cá nhân hay thương mại hãy cân nhắc thật kỹ vì nếu phát sinh lỗi trong quá trình sử dụng, bạn sẽ phải chịu toàn bộ hậu quả của nó.

Tuy vậy, Timeshift được phát triển rất tốt và được nhiều người tin tưởng sử dụng, vậy nên đừng ngần ngại khi đặt niềm tin của mình vào nó, cũng như theo dõi các bài viết tiếp theo về Linux tại Wiki Nhân Hòa.

 

Chúc các bạn luôn may mắn và thành công trong công việc!

Trả lời