tar
命令備份個人配置與數據(排除臨時文件、緩存等),例如備份/home
、/etc
、/var
目錄:sudo tar -czvf backup.tar.gz --exclude={'/home/*/.cache','/tmp','/proc','/sys'} /home /etc /var
記錄已安裝軟件包列表(便于新系統恢復):sudo dpkg --get-selections > packagelist.txt
lsblk
查看磁盤容量);sudo systemctl enable --now ssh
)。rsync
命令將原系統文件同步到目標目錄(如/mnt/new_root
),跳過虛擬文件系統(/dev
、/proc
等):sudo rsync -aAXv --exclude={'/dev/*','/proc/*','/sys/*','/tmp/*','/run/*','/mnt/*','/media/*','/lost+found'} / /mnt/new_root/
sudo rsync -aAXv -e ssh user@舊電腦IP:/ /mnt/new_root/
sudo dpkg --set-selections < packagelist.txt
sudo apt-get update && sudo apt-get -u dselect-upgrade
dd
或Clonezilla
將原系統寫入外接硬盤(需外接硬盤容量≥原系統已用空間):sudo dd if=/dev/sda of=/mnt/external_disk/backup.img bs=4M status=progress
(注:dd
會復制所有數據,包括空閑空間,建議優先使用Clonezilla
圖形化操作,更安全。)sudo dd if=/mnt/external_disk/backup.img of=/dev/sda bs=4M status=progress
或使用Clonezilla
的“device-image”模式選擇源鏡像與目標硬盤。sudo mkdir /mnt/old_disk
sudo mount /dev/sdb1 /mnt/old_disk # 假設舊硬盤為/dev/sdb1
修復引導與分區:
sudo update-grub
sudo grub-install /dev/sda # /dev/sda為新硬盤設備名
parted
擴展分區(如/dev/sda1
):sudo parted /dev/sda
(parted) resizepart 1 100% # 將分區擴展至100%
(parted) quit
使用resize2fs
擴展文件系統:sudo resize2fs /dev/sda1
dd
克隆,需修改新分區UUID以避免沖突):sudo blkid
修改/etc/fstab
中的UUID(替換為blkid
獲取的新UUID):sudo nano /mnt/new_root/etc/fstab
保存后退出。驗證系統完整性:
df -h
(確認新分區已正確掛載);systemctl list-units --type=service
(確認關鍵服務如SSH、網絡正常運行)。chroot
修復:sudo mount /dev/sda1 /mnt
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo chroot /mnt
grub-install /dev/sda
update-grub
exit
rsync
時加-A
參數保留ACL權限;若遇文件屬主錯誤,執行:sudo chown -R $USER:$USER /home/$USER