Debian分区移动指南
rsync、dd或tar工具备份关键数据(如/home、/etc)。示例:rsync -aAXv /source/ /backup/ --exclude={"/dev/*","/proc/*","/sys/*"}。/、交换分区swap、/home等),明确各分区大小及文件系统类型(如ext4、xfs)。parted、gparted、rsync、grub等工具(命令:sudo apt update && sudo apt install parted gparted rsync grub-common)。使用fdisk或parted命令查看磁盘分区布局,确认目标分区号(如/dev/sda2)及起始位置。示例:
sudo fdisk -l # 查看所有磁盘分区
sudo parted /dev/sda print # 查看/dev/sda的详细分区表
使用parted的move命令改变分区位置(单位:MB),需确保目标位置不覆盖其他分区数据。示例:将/dev/sda2移动到距离起始位置1GB处:
sudo parted /dev/sda
(parted) move 2 1GB # 将分区2移动到1GB处
(parted) print # 确认分区位置变化
(parted) quit
注意:移动分区后需更新分区表(sudo partprobe),并检查文件系统完整性(sudo fsck /dev/sda2)。
若需扩大/缩小分区,可使用resizepart命令(需文件系统支持在线调整,如ext4)。示例:将/dev/sda2调整为5GB:
sudo parted /dev/sda
(parted) resizepart 2 5GB
(parted) print
(parted) quit
调整后需同步文件系统(sudo resize2fs /dev/sda2,仅适用于ext4)。
使用dd命令克隆旧分区到新分区(需相同大小或更大),保留UUID和数据。示例:将/dev/sdb5克隆到/dev/sda1:
sudo dd if=/dev/sdb5 of=/dev/sda1 bs=4M status=progress
注意:克隆后需修改/etc/fstab中的UUID(见后续步骤)。
使用rsync同步旧分区数据到新分区(适用于同一硬盘内迁移或调整后同步),保留文件权限、属性及符号链接。示例:
# 挂载新旧分区
sudo mkdir /mnt/oldroot /mnt/newroot
sudo mount /dev/sdb5 /mnt/oldroot # 旧分区
sudo mount /dev/sda1 /mnt/newroot # 新分区
# 同步数据(排除虚拟文件系统)
sudo rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*"} /mnt/oldroot/ /mnt/newroot/
# 卸载分区
sudo umount /mnt/oldroot /mnt/newroot
获取新分区UUID(sudo blkid /dev/sda1),编辑/mnt/newroot/etc/fstab,替换旧分区UUID为新UUID。示例:
UUID=1234-5678-90AB / ext4 defaults 0 1
挂载必要虚拟文件系统,进入新分区环境,重新安装GRUB并更新引导配置:
sudo mount --bind /dev /mnt/newroot/dev
sudo mount --bind /proc /mnt/newroot/proc
sudo mount --bind /sys /mnt/newroot/sys
sudo chroot /mnt/newroot
grub-install /dev/sda # 安装GRUB到新硬盘
update-grub # 更新引导菜单
exit
卸载所有挂载点,重启系统并选择新硬盘启动:
sudo reboot
重启后检查新分区是否正常挂载(df -h)、系统服务是否运行正常。
pvcreate)、卷组(vgcreate)、逻辑卷(lvcreate),步骤更复杂,建议参考官方文档。