问题需求 适用于将整个linux系统迁移到一块新的硬盘 或新电脑 上。
原 linux(ubunt20.04)安装在 128G 备用盘上,新硬盘 512G固态硬盘
原硬盘分区情况 :
1 2 3 4 5 6 7 8 9 10 11 Disk /dev/sda:119.25 GiB,128035676160 字节,250069680 个扇区 Disk model: Lenovo SPEED UP- 单元:扇区 / 1 * 512 = 512 字节 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0xdde609a1 设备 启动 起点 末尾 扇区 大小 Id 类型 /dev/sda1 * 2048 97726463 97724416 46.6G 83 Linux /dev/sda2 97726464 250068991 152342528 72.7G 83 Linux
新硬盘分区情况:
1 2 3 4 5 6 7 8 9 10 11 Disk /dev/nvme0n1:476.96 GiB,512110190592 字节,1000215216 个扇区 Disk model: THNSF5512GPUK TOSHIBA 单元:扇区 / 1 * 512 = 512 字节 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:gpt 磁盘标识符:ECCB0DE6-01D8-4C75-9BB9-4FA0441F14D1 设备 起点 末尾 扇区 大小 类型 /dev/nvme0n1p1 2048 209717247 209715200 100G Linux 文件系统 /dev/nvme0n1p2 209717248 1000215182 790497935 377G Linux 文件系统
tar方法 对新盘分区 1 2 3 4 sudo fdisk -l sudo fdisk /dev/nvme0n1 sudo mkfs.ext4 /dev/nvme0n1p1 sudo mkfs.ext4 /dev/nvme0n1p2
选择磁盘,删除原有分区,新建分区,格式化
备份系统 / 分区备份 1 sudo mount /dev/nvme0n1p1 /media/liupei/
推荐使用 pigz多线程提高迁移速度
1 2 3 sudo apt install pigz sudo tar --use-compress-program=pigz -cvpf /media/liupei/u20.tgz --exclude=/cdrom --exclude=/home --exclude=/lost+found --exclude=/media --exclude=/mnt --exclude=/proc --exclude=/run --exclude=/tmp /
/ 分区迁移 将系统解压到目标磁盘
1 sudo tar --use-compress-program=pigz -xvpf u20.tgz -C /media/liupei/
重建exclude的目录
1 sudo mkdir cdrom home lost+found media mnt proc run tmp
/home 分区备份与迁移
1 2 3 4 mkdir tmpsudo mount /dev/nvme0n1p2 tmp ceshi/ sudo tar --use-compress-program=pigz -cvpf ceshi/h.tgz --exclude=/home/ceshi /home/liupei/ sudo tar --use-compress-program=pigz -xvpf ceshi/h.tgz -C ceshi/
配置文件修改 系统启动文件配置 把新硬盘的/boot/grub/grup.cfg里面的uuid替换掉
如果没有把boot单独分区,那么只要将里面的uuid全部改成新硬盘的uuid,(考虑启动过程没有其他挂载的情况)。如果是单独分区的话,注意这个文件下还有boot的uuid的值(我的硬盘没有boot单独分区)。
uuid查询方法:1. sudo blkid ; 2. ls -l /dev/disk/by-uuid
1 2 3 sudo vim /boot/grub/grub.cfg %s /uuid_old/uuid_new/g
分区挂载配置 修改 /etc/fstab 文件,把要启动自动挂载的分区都写上
1 2 3 4 5 6 7 8 sudo vim /etc/fstab %s /uuid_root_old/uuid_root_new/g %s /uuid_home_old/uuid_home_new/g genfstab -U /sda1 >> /mnt/etc/fstab genfstab -U /sda2 >> /mnt/etc/fstab
grub安装与更新 Ubuntu使用BIOS启动时, GPT分区表下安装grub2报错:
1 2 3 4 5 6 iupei@T470:~$ sudo grub-install /dev/nvme0n1 [sudo] liupei 的密码: 正在为 i386-pc 平台进行安装。 grub-install:警告: this GPT partition label contains no BIOS Boot Partition; embedding won't be possible. grub-install:警告: 无法嵌入。在此次安装中 GRUB 只能通过使用块列表安装。但是块列表是不可信赖的,不推荐使用。. grub-install:错误: 停止进行块列表安装.
解决方法0:(仅对于arch) 1 2 3 4 arch-chroot /mnt grub-install /dev/nvme0n1 grub-mkconfig -o boot/grub/grub.cfg reboot
解决方法1:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 liupei@T470:~$ sudo parted /dev/nvme0n1 set 1 bios_grub on 信息: 你可能需要 /etc/fstab liupei@T470:~$ sudo parted /dev/nvme0n1 print 型号:THNSF5512GPUK TOSHIBA (nvme) 磁盘 /dev/nvme0n1: 512GB 扇区大小 (逻辑/物理):512B/512B 分区表:gpt 磁盘标志: 编号 起始点 结束点 大小 文件系统 名称 标志 1 1049kB 107GB 107GB ext4 bios_grub 2 107GB 512GB 405GB ext4 liupei@T470:~$ sudo grub-install /dev/nvme0n1 正在为 i386-pc 平台进行安装。 安装完成。没有报告错误。
解决方法2
1 2 grub-install –force /dev/sda grub-mkconfig -o /boot/grub/grub.cfg
此处参考来源(aapiiz )。重启,选择新盘作为启动盘,感觉不到是换了新盘,但是确实是换了盘
系迁移后磁盘情况
1 2 3 4 5 6 7 8 liupei@T470:~$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 119.2G 0 disk ├─sda1 8:1 0 46.6G 0 part └─sda2 8:2 0 72.7G 0 part nvme0n1 259:0 0 477G 0 disk ├─nvme0n1p1 259:1 0 100G 0 part / └─nvme0n1p2 259:2 0 377G 0 part /home
该方法非常灵活,推荐使用。参考文献:CSDN_544
增量备份 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 a b c d test liupei@T470:~$ tar -cvzf zip test / test /liupei@T470:~$ mv a test / liupei@T470:~$ tar -g note -cvzf zipa test / tar: test :目录是新的 test /test /aliupei@T470:~$ mv b test / liupei@T470:~$ tar -g note -cvzf zipb test / test /test /bliupei@T470:~$ mv c test / liupei@T470:~$ tar -g note -cvzf zipc test / test /test /cliupei@T470:~$ mv d test / liupei@T470:~$ tar -g note -cvzf zipd test / test /test /dliupei@T470:~$ tar tvf zip drwxrwxr-x liupei/liupei 0 2021-08-30 19:35 test / liupei@T470:~$ tar tvf zipa drwxrwxr-x liupei/liupei 4 2021-08-30 19:36 test / -rw-rw-r-- liupei/liupei 380 2021-08-30 18:30 test /a liupei@T470:~$ tar tvf zipb drwxrwxr-x liupei/liupei 7 2021-08-30 19:36 test / -rwxrwxr-x liupei/liupei 39128 2021-08-30 18:30 test /b liupei@T470:~$ tar tvf zipc drwxrwxr-x liupei/liupei 10 2021-08-30 19:36 test / -rw-rw-r-- liupei/liupei 66 2021-08-30 18:36 test /c liupei@T470:~$ tar tvf zipd drwxrwxr-x liupei/liupei 13 2021-08-30 19:37 test / -rwxrwxr-x liupei/liupei 16696 2021-08-30 18:40 test /d liupei@T470:~$ ls test / a b c d liupei@T470:~$ rm -rf test / liupei@T470:~$ ls note zip zipa zipb zipc zipd liupei@T470:~$ tar xzf zipa liupei@T470:~$ tar xzf zipb liupei@T470:~$ tar xzf zipc liupei@T470:~$ tar xzf zipd liupei@T470:~$ ls note test zip zipa zipb zipc zipd liupei@T470:~$ ls test / a b c d
dd方法 直接在 root 模式下执行迁移:
这里要注意的是拷贝的源和目标分别是 /dev/sda1 和 /dev/sdb1 这两个分区,而不是 /dev/sda 和 /dev/sdb 这两个硬盘名称。
最后更新一下硬盘信息(不然显示的大小信息等还是旧硬盘的信息):
参考文献:这里 ,该方法试过一次没成功。
ubuntu deja-dup
手动备份可参考以下链接
参考文献
参考文献
参考文献