Bỏ qua tới nội dung
PHẦN CỨNGHƯỚNG DẪN

Backup code bằng SSD di động: cách làm đúng để không mất dữ liệu

Git chưa phải là backup. Cách chọn SSD di động, format đúng hệ thống file, sao lưu code bằng git bundle, rsync, restic và những sai lầm khiến bản backup trở nên vô dụng.

BBeernary19/10/2026 · 11 PHÚT ĐỌC
COVER.BMP
Backup code bằng SSD di động: cách làm đúng để không mất dữ liệu
▲ SSD di động cắm vào laptop, cách nhanh nhất để có thêm một bản sao code

Laptop hỏng ổ, bị trộm hay dính ransomware, và một tháng code chưa kịp push biến mất. Chuyện này xảy ra nhiều hơn bạn nghĩ. Một chiếc SSD di động nhỏ bằng thẻ ATM là cách rẻ và nhanh nhất để có thêm một bản sao, nhưng chỉ khi bạn dùng nó đúng cách. Bài này nói rõ cần chọn ổ thế nào, format ra sao, sao lưu bằng công cụ gì và những cái bẫy khiến bản backup tưởng có mà thật ra không dùng được.

Vì sao "đã có Git" vẫn chưa phải là backup

Nhiều lập trình viên nghĩ code đã nằm trên GitHub hay GitLab thì không cần sao lưu nữa. Thực tế, Git remote chỉ giữ những gì bạn đã commit và push. Những thứ sau thường không có trên đó:

  • Nhánh local chưa push, stash, commit đang làm dở.
  • File .env, khoá SSH, chứng chỉ, file cấu hình máy, vốn được .gitignore loại ra một cách có chủ đích.
  • Database dev, dữ liệu mẫu, file thiết kế, ghi chú, script cá nhân.
  • Dự án freelance hay dự án cũ chưa từng được đưa lên remote.

Ngoài ra, tài khoản cũng có thể bị khoá, repo bị xoá nhầm, hay tổ chức đổi nền tảng. Git là công cụ quản lý phiên bản, còn backup là một bản sao độc lập mà bạn tự kiểm soát. Hai thứ bổ sung cho nhau chứ không thay thế nhau.

Laptop kết nối SSD di động Samsung T7 Shield và một SSD SATA qua bộ chuyển USB

Quy tắc 3-2-1 và vị trí của SSD di động

Quy tắc kinh điển của ngành sao lưu là 3-2-1:

Con số Ý nghĩa Ví dụ với dân code
3 Có ít nhất 3 bản dữ liệu Bản trên laptop, bản trên SSD di động, bản trên cloud
2 Nằm trên 2 loại phương tiện khác nhau Ổ trong máy và ổ ngoài, hoặc ổ ngoài và dịch vụ lưu trữ
1 Có 1 bản đặt ở nơi khác Cloud, hoặc một ổ để ở nhà khi bạn làm ở công ty

SSD di động giải quyết chữ "2": bản sao nằm trên một thiết bị vật lý tách biệt, khôi phục với tốc độ cao mà không cần Internet. Nhưng nếu bạn để SSD cắm suốt ngày cạnh laptop, một vụ cháy, mất trộm hay ransomware có thể lấy đi cả hai cùng lúc. Vì thế SSD nên được rút ra sau khi sao lưu xong, và tốt nhất có thêm một bản trên cloud.

GHI CHÚ

Ransomware mã hoá mọi ổ đang được gắn vào máy, kể cả ổ ngoài. Một ổ backup chỉ thật sự an toàn khi nó đang không cắm vào máy.

Chọn SSD di động: tiêu chí quan trọng hơn tốc độ

Với việc sao lưu code, tốc độ đọc ghi quảng cáo không phải yếu tố quyết định. Thư mục dự án thường gồm hàng chục nghìn file nhỏ, nên độ trễ và hệ thống file ảnh hưởng nhiều hơn băng thông tối đa. Những tiêu chí đáng quan tâm:

Ba thế hệ SSD di động Samsung T3, T5 và T7 Shield đặt cạnh nhau

  • Dung lượng: ít nhất gấp đôi tổng dữ liệu cần sao lưu, để còn chỗ cho các phiên bản cũ (snapshot). Code thuần thì nhỏ, nhưng database dev, ảnh Docker hay asset thiết kế lớn rất nhanh.
  • Cổng kết nối: USB-C với chuẩn USB 3.2 Gen 2 (10 Gbps) là đủ cho hầu hết nhu cầu. Kiểm tra cổng trên laptop có ký hiệu SS (SuperSpeed) hay biểu tượng tia sét Thunderbolt; cắm vào cổng USB 2.0 thì tốc độ sẽ tụt hẳn.
  • Độ bền vật lý: vỏ cao su chống va đập, có chuẩn chống nước bụi nếu bạn hay mang theo.
  • Mã hoá phần cứng hoặc khả năng mã hoá bằng phần mềm: vì ổ chứa khoá và bí mật của dự án.
  • Nguồn mua đáng tin: SSD giả khai khống dung lượng khá phổ biến. Ổ giả vẫn nhận đủ dung lượng nhưng ghi quá ngưỡng thật thì dữ liệu bị ghi đè âm thầm.

SSD di động SanDisk Extreme với vỏ cao su và móc treo màu cam

Kiểm tra ổ mới mua

Trước khi tin tưởng giao dữ liệu, hãy chạy công cụ ghi và đọc lại toàn bộ dung lượng: f3write/f3read trên Linux và macOS, hoặc H2testw trên Windows. Ổ thật sẽ báo không có lỗi; ổ giả sẽ lộ ra phần dung lượng ảo.

Nếu đã có sẵn một SSD NVMe M.2 tháo ra khi nâng cấp máy, bạn có thể mua hộp đựng (enclosure) USB-C để biến nó thành SSD di động. Chỉ cần chọn hộp có tản nhiệt tốt, vì NVMe nóng lên nhanh khi ghi liên tục.

Thanh SSD NVMe M.2 Samsung 980 Pro 1TB, có thể lắp vào hộp USB-C để làm ổ di động

Format ổ: chọn hệ thống file đúng ngay từ đầu

Đây là bước nhiều người bỏ qua. Phần lớn SSD di động xuất xưởng với exFAT để cắm được trên mọi hệ điều hành. exFAT tiện nhưng có nhược điểm lớn cho việc sao lưu: không có journaling, nên rút ổ khi đang ghi hoặc mất điện dễ làm hỏng cấu trúc thư mục. exFAT cũng không giữ quyền thực thi và symlink kiểu Unix, thứ mà các dự án Node, Python hay script shell dùng thường xuyên.

Hệ thống file Hệ điều hành chính Journaling Symlink, quyền Unix Nên dùng khi
exFAT Mọi hệ điều hành Không Không Chép file qua lại giữa nhiều máy
NTFS Windows Có Hạn chế Chỉ dùng trên Windows
APFS macOS Có (copy-on-write) Có Chỉ dùng trên Mac, Time Machine
ext4 Linux Có Có Chỉ dùng trên Linux

Lời khuyên: nếu ổ chỉ dùng để backup cho một máy, hãy format sang hệ thống file gốc của máy đó. Nếu bắt buộc dùng chung nhiều hệ điều hành, hãy sao lưu dưới dạng file lưu trữ (repo backup của restic, file .tar hay git bundle) thay vì chép thẳng cây thư mục, như vậy symlink và quyền file vẫn được giữ bên trong.

Ba cách sao lưu code lên SSD, từ đơn giản đến chuyên nghiệp

Cách 1: git bundle cho từng repo

git bundle đóng gói toàn bộ lịch sử, mọi nhánh và tag của repo vào một file duy nhất. File này dùng được như một remote: clone, fetch đều được.

bash
# Tạo bundle chứa mọi nhánh và tag
cd ~/projects/my-app
git bundle create /Volumes/BACKUP/my-app.bundle --all

# Kiểm tra bundle có hợp lệ không
git bundle verify /Volumes/BACKUP/my-app.bundle

# Khôi phục khi cần
git clone /Volumes/BACKUP/my-app.bundle my-app-restored

Ưu điểm là một file duy nhất, không lo hệ thống file làm hỏng symlink. Nhược điểm là bundle chỉ chứa những gì đã commit, nên file .env hay thay đổi chưa commit vẫn phải sao lưu riêng.

Cách 2: rsync đồng bộ cả thư mục

rsync chép những file thay đổi, nhanh với thư mục lớn. Nhớ loại bỏ các thư mục sinh ra được như node_modules, .venv, dist, target; chúng chiếm phần lớn dung lượng và hàng chục nghìn file nhỏ mà không cần sao lưu.

bash
rsync -a --info=progress2 \
  --exclude node_modules --exclude .venv --exclude dist --exclude target \
  ~/projects/ /media/$USER/BACKUP/projects/
Cẩn thận với --delete

Thêm --delete sẽ xoá trên ổ backup những file bạn đã xoá trên máy. Nếu bạn lỡ xoá nhầm rồi chạy rsync, bản backup cũng mất theo. Một bản sao đồng bộ hoàn toàn chỉ là bản gương, không phải lịch sử.

Cách 3: công cụ backup có snapshot và mã hoá

Để có lịch sử nhiều phiên bản, hãy dùng công cụ chuyên dụng như restic hoặc BorgBackup. Chúng chia dữ liệu thành khối, khử trùng lặp (khối giống nhau chỉ lưu một lần), mã hoá mặc định và cho phép quay lại bất kỳ thời điểm sao lưu nào.

bash
# Khởi tạo kho backup mã hoá trên SSD (chỉ làm một lần)
restic -r /media/$USER/BACKUP/restic init

# Sao lưu, bỏ qua thư mục sinh ra được
restic -r /media/$USER/BACKUP/restic backup ~/projects \
  --exclude node_modules --exclude .venv

# Xem các snapshot và giữ lại 7 bản ngày, 4 bản tuần, 6 bản tháng
restic -r /media/$USER/BACKUP/restic snapshots
restic -r /media/$USER/BACKUP/restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune

Người dùng Mac có thể dùng Time Machine trên ổ APFS; người dùng Windows có File History. Cả hai đều lưu nhiều phiên bản và đủ dùng nếu bạn nhớ loại trừ thư mục phụ thuộc.

Mã hoá: SSD di động rất dễ thất lạc

Một ổ nhỏ bằng thẻ ATM chứa khoá API, khoá SSH và mã nguồn của khách hàng là rủi ro bảo mật thật sự nếu để quên trên quán cà phê. Hãy mã hoá ổ ngay từ đầu:

  • Windows: BitLocker To Go (có trên bản Pro trở lên).
  • macOS: format APFS (Encrypted) trong Disk Utility.
  • Linux: LUKS qua cryptsetup, hoặc VeraCrypt nếu cần mở trên nhiều hệ điều hành.
  • Hoặc dùng restic, Borg vì chúng đã mã hoá kho backup sẵn.

Lưu mật khẩu mã hoá trong trình quản lý mật khẩu. Quên mật khẩu đồng nghĩa với mất backup, không có cách khôi phục.

Cổng USB-C SuperSpeed trên laptop, cạnh cổng Thunderbolt

Những sai lầm khiến bản backup trở nên vô dụng

Rút ổ không eject. Hệ điều hành thường gom dữ liệu vào bộ nhớ đệm rồi mới ghi xuống ổ. Rút cáp khi thanh tiến trình đã chạy xong vẫn có thể làm mất phần dữ liệu cuối, nhất là với exFAT. Luôn bấm Eject hoặc chạy sync rồi umount trước.

Cất SSD trong ngăn kéo nhiều năm. SSD lưu dữ liệu bằng điện tích trong ô nhớ flash, và điện tích rò rỉ dần khi không cấp điện. Tiêu chuẩn JEDEC JESD218 yêu cầu SSD dân dụng giữ được dữ liệu ít nhất 1 năm ở 30°C khi đã tiêu hao hết tuổi thọ ghi định mức. Ổ còn mới thì giữ lâu hơn nhiều, nhưng SSD không phải phương tiện lưu trữ lạnh lý tưởng. Hãy cắm ổ và chạy backup định kỳ, ví dụ hàng tuần, vừa cập nhật dữ liệu vừa cho ổ được cấp điện.

Không bao giờ thử khôi phục. Bản backup chưa từng được khôi phục thử thì chưa chắc dùng được. Mỗi tháng hãy chọn ngẫu nhiên một dự án, khôi phục ra thư mục tạm, chạy npm install hay pip install rồi build thử.

bash
restic -r /media/$USER/BACKUP/restic check
restic -r /media/$USER/BACKUP/restic restore latest --target /tmp/restore-test

Chỉ có một ổ. SSD cũng có thể hỏng đột ngột, khác với HDD thường có dấu hiệu báo trước như tiếng kêu lạ. Dữ liệu quan trọng nên có thêm bản trên cloud hoặc ổ thứ hai để ở chỗ khác.

Phòng máy chủ của một trung tâm dữ liệu, nơi đặt bản backup ngoài site

Quy trình mẫu mỗi tuần

  • [ ]Commit và push mọi nhánh đang làm.
  • [ ]Cắm SSD, mở khoá mã hoá.
  • [ ]Chạy script backup (restic hoặc rsync) với danh sách loại trừ.
  • [ ]Sao lưu riêng file .env, khoá SSH vào kho đã mã hoá.
  • [ ]Eject an toàn rồi rút ổ, cất xa laptop.
  • [ ]Mỗi tháng: khôi phục thử một dự án và chạy restic check.

Hãy gói các bước sao lưu vào một script shell, đặt lịch nhắc trong lịch làm việc. Backup chỉ có tác dụng khi nó trở thành thói quen, không phải việc làm khi chợt nhớ ra.

Bản backup tốt nhất là bản bạn đã khôi phục thử thành công ít nhất một lần.

Tóm tắt nhanh

  • Git remote chỉ giữ code đã commit và push; .env, nhánh local, database dev cần sao lưu riêng.
  • Theo quy tắc 3-2-1: SSD di động là bản thứ hai, cloud là bản ngoài site.
  • Format ổ theo hệ điều hành chính (APFS, NTFS, ext4) hoặc sao lưu dạng kho lưu trữ nếu phải dùng exFAT.
  • Dùng restic hoặc Borg để có snapshot, khử trùng lặp và mã hoá; loại trừ node_modules và thư mục build.
  • Rút ổ sau khi backup, cắm lại định kỳ và khôi phục thử hàng tháng.

Câu hỏi thường gặp

SSD di động hay HDD gắn ngoài tốt hơn cho backup?

SSD nhanh, nhỏ gọn và chịu va đập tốt hơn, hợp với việc mang theo và sao lưu thường xuyên. HDD rẻ hơn trên mỗi TB, hợp làm kho lưu trữ dung lượng lớn để ở nhà. Nhiều người dùng cả hai.

Có cần sao lưu thư mục node_modules không?

Không. Thư mục này tạo lại được từ package.json và file lock. Hãy chắc chắn file lock (package-lock.json, pnpm-lock.yaml, poetry.lock...) có trong backup để khôi phục đúng phiên bản thư viện.

Để SSD cắm liên tục và backup tự động mỗi giờ có được không?

Được về mặt kỹ thuật, nhưng ổ đang cắm sẽ chịu chung rủi ro với máy: ransomware, sự cố điện hay mất trộm. Nếu muốn backup tự động liên tục, hãy kết hợp thêm một bản cloud hoặc một ổ thứ hai thường xuyên được rút ra.

Dùng chung một SSD vừa backup vừa chép phim được không?

Nên tách riêng. Hãy tạo một phân vùng hoặc dùng một ổ riêng cho backup, để tránh vô tình xoá hoặc ghi đè lên kho sao lưu khi dọn dẹp file khác.

BVIẾT BỞIBeernary

ĐỌC TIẾP_

BÌNH LUẬN (0)

LOGIN.EXE
> Bình luận đang tạm đóng._

> CHƯA CÓ BÌNH LUẬN. HÃY LÀ NGƯỜI ĐẦU TIÊN_