Saturday, February 22, 2025

Live-Cloning Linux

-

📌 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ý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.

Tham khảo https://nikvdp.com/post/cloning-a-linux-install/.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories