📌 Giới thiệu
Việc di chuyển một hệ điều hành Linux từ máy này sang máy khác dễ dàng hơn nhiều so với Windows, vì Linux không phụ thuộc chặt chẽ vào phần cứng. Tuy nhiên, có một số điểm cần chú ý, đặc biệt là khi cấu hình bộ nạp khởi động (bootloader).

Trong bài viết này, mình sẽ hướng dẫn từng bước sao chép một hệ điều hành Linux đang chạy sang một máy khác mà không cần cài đặt lại. 🚀
🔥 Khi nào bạn cần live-cloning?
✅ Khi muốn di chuyển hệ điều hành sang máy tính mới.
✅ Khi muốn sao chép nhanh hệ thống hiện tại để tạo server dự phòng.
✅ Khi cần nhân bản máy ảo hoặc di chuyển giữa các cloud providers.
Bài viết này áp dụng cho cả máy vật lý và máy ảo (VMs).
1️⃣ Chuẩn Bị Trước Khi Clone
🔹 Kiểm tra ổ đĩa nguồn
Trên máy hiện tại, kiểm tra các phân vùng ổ đĩa bằng:
lsblk
Lệnh này giúp bạn xác định chính xác tên ổ đĩa cần sao chép (ví dụ: /dev/sda
).
🔹 Cắm USB, HDD Box hoặc thiết lập kết nối mạng sang một nơi lưu trữ khác.
Bạn cần có USB, HDD Box hoặc một network share (NFS, SCP, SSH, v.v.) để lưu trữ file .tar
trước khi di chuyển sang máy mới.
2️⃣ Sao Lưu Hệ Thống Hiện Tại
Trước tiên, ta bind-mount thư mục gốc (/
) vào /mnt/src
để tránh lỗi khi sao chép:
sudo mount --bind / /mnt/src
Sử dụng lệnh tar
để lưu hệ thống thành một file nén:
sudo tar -C /mnt/src -cvf source-fs.tar .
✅ Lưu ý: File .tar
này sẽ được chép sang máy đích để khôi phục.
Bạn có thể sao chép file này qua USB hoặc sử dụng SCP để gửi qua storage ngoài:
scp source-fs.tar user@remote-machine:/home/user/
3️⃣ Cấu Hình Máy Đích
🔹 Boot Máy Đích Bằng LiveCD
Trên máy mới, khởi động bằng Ubuntu LiveCD hoặc một bản Linux Live USB để chuẩn bị khôi phục dữ liệu.
🔹 Phân Vùng Ổ Đĩa Mới
Mở terminal và chạy gparted
hoặc fdisk
để tạo phân vùng mới. Tùy vào kiểu boot:
- MBR Mode: Tạo một phân vùng ext4 duy nhất và đánh dấu boot flag.
- EFI Mode:
- Tạo một phân vùng 200MB FAT32 (EFI) và đặt boot, esp flags.
- Tạo một phân vùng ext4 cho hệ điều hành.
Ví dụ, trên dòng lệnh:
sudo mkfs.ext4 /dev/sda2 # Tạo phân vùng ext4
sudo mkfs.vfat -F 32 /dev/sda1 # Tạo phân vùng EFI (nếu dùng UEFI)
🔹 Mount Disk
sudo mount /dev/sda2 /mnt
sudo mkdir -p /mnt/boot/efi
sudo mount /dev/sda1 /mnt/boot/efi
4️⃣ Khôi Phục Hệ Thống
🔹 Giải Nén File Ảnh (.tar
)
Di chuyển file .tar
từ USB hoặc server mạng vào /mnt
, sau đó giải nén:
sudo tar -C /mnt -xvf source-fs.tar
📌 Quá trình này có thể mất vài phút tùy thuộc vào dung lượng dữ liệu.
🔹 Cấu Hình Chroot
Trước khi cài đặt bootloader, ta cần vào chế độ chroot
:
for i in /dev /dev/pts /proc /sys /run; do sudo mount --bind $i /mnt$i; done
sudo chroot /mnt
5️⃣ Cài Đặt Bootloader
🔹 Nếu Dùng MBR Mode
Chạy lệnh sau để cài Grub:
grub-install /dev/sda
update-grub
🔹 Nếu Dùng EFI Mode
Cài đặt GRUB EFI:
apt install grub-efi-amd64-bin
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB
update-grub
📌 Nếu gặp lỗi liên quan đến EFI variables, chạy lệnh sau:
mount -t efivarfs none /sys/firmware/efi/efivars
6️⃣ Khởi Động Máy Đích
Sau khi hoàn tất, thoát chroot
, unmount phân vùng và khởi động lại máy:
exit
sudo umount -R /mnt
sudo reboot
✅ Nếu mọi thứ chính xác, hệ thống sẽ khởi động vào Linux như trên máy cũ. 🎉
📌 Kết Luận
Bạn đã hoàn tất live-cloning Linux từ máy này sang máy khác mà không cần cài đặt lại. 🚀
Tóm Tắt Các Bước:
1️⃣ Tạo file ảnh .tar
của hệ thống trên máy cũ.
2️⃣ Chép file ảnh sang máy mới qua USB hoặc SCP.
3️⃣ Phân vùng ổ đĩa trên máy mới bằng gparted
hoặc fdisk
.
4️⃣ Mount và giải nén file .tar
vào phân vùng mới.
5️⃣ Vào chroot
và cài đặt bootloader (grub
).
6️⃣ Khởi động lại máy và kiểm tra kết quả.
💡 Gợi ý tiếp theo:
Nếu bạn muốn chuyển hệ thống lên Docker container, hãy thử lệnh:
docker import source-fs.tar my-linux-image
Cấu hình đồng bộ dữ liệu giữa hai máy bằng rsync để giữ máy mới luôn cập nhật.