Ubuntu分區數據遷移指南
數據遷移是將Ubuntu系統或數據從一個分區/磁盤復制到另一個分區的過程,適用于升級硬盤、調整分區布局或遷移系統場景。以下是常用方法及詳細步驟,覆蓋不同需求:
tar命令打包/home、/etc、/var等核心目錄(排除緩存文件),避免操作失誤導致數據丟失:sudo tar -czvf backup.tar.gz --exclude={'/home/*/.cache','/tmp/*'} /home /etc /var
/、/home)、文件系統類型(如ext4、btrfs)、UUID(通過sudo blkid獲?。?,便于后續修改配置。GParted(圖形化)或fdisk(命令行)創建與原分區大小一致或更大的分區,格式化為相同文件系統(如ext4)。lsblk查看設備名,如/dev/sdb1)。適用于同系統版本遷移(如Ubuntu 22.04→22.04),保留文件權限、時間戳和符號鏈接,效率高且安全。
/dev/sda1)和目標分區(如/dev/sdb1):sudo mkdir /mnt/old /mnt/new
sudo mount /dev/sda1 /mnt/old
sudo mount /dev/sdb1 /mnt/new
(3)使用rsync同步數據(排除虛擬文件系統):sudo rsync -avz --exclude={'/dev/*','/proc/*','/sys/*','/run/*','/tmp/*'} /mnt/old/ /mnt/new/
(4)同步完成后,卸載分區:sudo umount /mnt/old /mnt/new
(5)調整引導(若更換硬盤):參考“遷移后設置”部分。適用于完整克隆分區/磁盤(如機械硬盤→固態硬盤),生成與原系統完全一致的鏡像,但會覆蓋目標分區所有數據,需謹慎使用。
/dev/sda→/dev/sdb),使用lsblk避免混淆。dd命令(推薦bs=64K提升速度,conv=noerror,sync忽略錯誤):sudo dd if=/dev/sda of=/dev/sdb bs=64K conv=noerror,sync status=progress
(3)等待命令完成(時間取決于數據量),目標分區將包含與原分區完全相同的數據。GParted擴展分區(如sudo parted /dev/sdb resizepart 1 100%),然后調整文件系統大?。?code>sudo resize2fs /dev/sdb1)。適用于新手或復雜場景(如多分區、跨硬件遷移),提供“設備-鏡像”模式,操作直觀且安全。
Rufus或Etcher制作啟動盤。/dev/sda)和目標磁盤(如/dev/sdb),確認分區布局一致。更新UUID與fstab:
dd或Clonezilla會復制原分區的UUID,需修改目標分區的UUID以避免沖突:
(1)獲取新分區UUID:sudo blkid /dev/sdb1。
(2)掛載目標根分區:sudo mount /dev/sdb1 /mnt。
(3)編輯/etc/fstab(位于/mnt/etc/fstab),將舊UUID替換為新UUID:
sudo nano /mnt/etc/fstab
修改示例:
UUID=新UUID / ext4 errors=remount-ro 0 1
(4)保存并退出(Ctrl+X→Y→Enter)。
修復GRUB引導:
若更換硬盤或系統無法啟動,需重新安裝GRUB:
(1)從Live USB啟動,掛載目標根分區(/dev/sdb1)和/boot/efi分區(若有):
sudo mount /dev/sdb1 /mnt
sudo mount /dev/sdb2 /mnt/boot/efi # 若/boot/efi是單獨分區
(2)掛載虛擬文件系統:
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
(3)進入chroot環境:
sudo chroot /mnt
(4)重新安裝GRUB:
grub-install /dev/sdb # 目標磁盤(如/dev/sdb)
update-grub
(5)退出chroot并重啟:
exit
sudo umount -R /mnt
sudo reboot
調整分區大?。蛇x):
若目標分區比原分區大,可使用GParted擴展分區:
(1)打開GParted,選擇目標分區(如/dev/sdb1)。
(2)右鍵選擇“Resize/Move”,拖動滑塊至最大可用空間,點擊“Apply”。
(3)調整文件系統大?。?code>sudo resize2fs /dev/sdb1(適用于ext4文件系統)。
rsync而非dd,避免驅動沖突。dd命令會永久覆蓋目標數據。/etc/fstab中的UUID是否正確,再修復GRUB引導。df -h查看掛載點,ls /home查看用戶文件)。以上方法覆蓋了Ubuntu分區數據遷移的常見場景,選擇時需根據數據量、系統版本、硬件差異靈活調整。操作前做好備份是避免數據丟失的關鍵!