Linux 系统备份

1.1 新硬盘空间大于旧硬盘空间

1.1.1 dd命令转移方式

  • 插上新硬盘后,执行如下命令,示例中/dev/sdb为新硬盘
# 显示当前系统挂载的硬盘
$ fdisk -l
# 删除备份硬盘的分区
$ gdisk /dev/sdb 
# 从旧硬盘/dev/sda中拷贝所有数据到/dev/sdb
$ dd if=/dev/sda of=/dev/sdb bs=4M
  • dd命令会完整复制之前系统的所有东西(分区UUID跟原来一致),将该硬盘拆下来后,放至其他电脑上都能正常启动。
  • 而由于分区UUID跟原来一致,如果两个硬盘在同一个设备上,则可能会读取任一硬盘上的EFI启动(根据BIOS上顺序),然后用任一 data区域作为根目录。

1.2 新硬盘空间小于旧硬盘空间,实际占用空间小于新硬盘空间

1.2.1 cp命令转移方式

新硬盘空间小于旧硬盘空间,不能直接使用dd命令,但可以使用cp -ax进行拷贝

# 先对/dev/sdb创建两个分区,一个存放efi,一个存放数据
# 先用d将分区删除,再用n添加分区
$ gdisk /dev/sdb
# EFI 分区 格式为 EFI system 编号:ef00
$ mkfs.vfat /dev/sdb1
# Linux分区 编号:8300
$ mkfs.ext4 /dev/sdb2
# 分别挂载新分区
$ mount /dev/sdb1 /tmp/new_efi
$ mount /dev/sdb2 /tmp/new_data
# 挂在旧分区
$ mount /dev/sda1 /tmp/old_efi
$ mount /dev/sda2 /tmp/old_data
# cp 拷贝数据
$ cp -ax /tmp/old_efi/ /tmp/new_efi
$ cp -ax /tmp/old_data /tmp/new_data

由于重新分区,分区会生成新的UUID,此时,需要更新新硬盘的/etc/fstabEFI中的UUID为新的UUID。

# 需要在sudo权限下执行,才能看到全部设备。
$ blkid
# 根据blkid 返回值,修改EFI中grub配置,将下述uuid改为新root目录(/dev/sdb2)的uuid。
# search.fs_uuid 5e1acac3-f1de-4a90-96af-a1c327bbf3c6 root hd0,gpt3
$ vim /tmp/new_efi/EFI/ubuntu/grub.cfg
# 更换根目录到新硬盘
$ chroot /tmp/new_data
# 编辑/etc/fstab,并修改efi分区和主分区的UUID
$ vim /etc/fstab
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值