ubuntu系统的恢复与迁移

系统迁移 vs 系统恢复

  • 系统恢复:它是在本电脑上恢复OS文件,硬盘分区和引导位置都未发生改变
  • 系统迁移:在不同电脑之间进行操作,硬件环境发生变化,因此仅做简单的操作系统文件的替换是不行的,需要进行环境配置
  • 无论是进行系统恢复还是进行系统迁移,都需要首先进行系统备份

系统备份:

  • 首先需要称为root用户并进入移动硬盘所在的文件夹:
su 
cd /xxxx/xxxx
  • 对根目录/进行打包:
tar cvpzf backup.tar.gz --exclude=/proc --exclude=/lost+found --exclude=/backup.tar.gz --exclude=/mnt --exclude=/sys --exclude=/media /

1. 其中--exclude=后面的文件或文件夹表示不进行打包的文件或文件夹,之所以不打包是因为不需要进行打包,tar具体参数详细说明请查看参考文献

2. 执行tar语句时,需要进入移动硬盘挂载的文件夹中,否则需要将backup.tar.gz相应的路径地址,保证压缩文件存放的位置是正确的

3. 出现如下提示是正常现象,不用去管它:

系统恢复:

  • 首先需要称为root用户并进入移动硬盘所在的文件夹:
su 
cd /xxxx/xxxx
  •  将backup.tar.gz文件解压到根目录中完成系统恢复
tar xvpfz backup.tar.gz -C /
  • 若恢复后的系统不存在打包是--exclude=后面的文件夹,则需要创建这些文件夹
mkdir proc
mkdir lost+found
mkdir mnt
mkdir sys
mkdir media
  • 重启电脑即可

系统迁移

  • 首先制作ubuntu启动盘,具体方法请百度,利用U盘启动,并进行ubuntu系统安装,具体过程这里不再赘述
  • 安装ubuntu系统后,依然从u盘启动,并在引导菜单选择Try Ubuntu进入livecd模式
  • 在根目录/下创建文件夹,并将原有系统所在的磁盘分区挂载到该文件夹上
mkdir restore
mount /dev/sda6 /restore  # 假定原有系统在磁盘分区/dev/sda6上
  • 将原系统(新安装的系统或原有系统)中的启动文件和分区文件备份
# 保留分区文件
cp /restore/etc/fstab(若有fstab.d,就一并复制) 移动硬盘挂载的文件地址(如/media/....)
# 保留启动文件
cp /restore/boot/grub/grub.cfg 移动硬盘挂载的文件地址(如/media/....)
  • 将系统备份时打包的backup.tar.gz压缩文件解压,覆盖原有的系统:
rm -rf /restore/*  # 挂载的原有文件全部删除,好像不删除也可以,没试过
tar xvpfz backup.tgz所在的地址 -C /resotre
  • 将备份的fstab文件和grub.cfg文件替换已有的文件
# 保留分区文件
cp  移动硬盘中fastb的地址 /restore/etc/
# 保留启动文件
cp 移动硬盘中grub.cfg的地址  /restore/boot/grub/
  •  此时,并未结束,需要进行引导修复(方法1):
sudo add-apt-repository ppa:yannubuntu/boot-repair        添加源
sudo apt-get update
sudo apt-get install -y boot-repair  安装boot-repair

# 进入boot-repair使用Recommended repair进行修复
sudo boot-repair   # 在打开的图形化界面中选择Recommended repair进行修复
  1. 若已经关机或重启就再次从u盘启动,选择Try Ubuntu,再执行上面的命令
  2. 若出现无法locate boot-repair时,使用ubuntu18.04制作启动盘,再次通过u盘启动,选择Try Ubuntu,然后再执行上述的指令
  • 引导修复(方法2):
  1. 假定在备份的fstab中挂载在/上的磁盘分区所对应的UUID的值为ff0ea35d-e7fc-4bd1-b296-10b6b1c37f85
  2. 假定解压backup.tar.gz后,/restore/etc/fstab文件中挂载在/上的磁盘分区所对应的UUID的值为610895f6-f8df-48ce-a569-c0d7e137ec1f
  3. 将/restore/etc/fstab文件和/restore/boot/grub/grub.cfg文件中所有的610895f6-f8df-48ce-a569-c0d7e137ec1f替换为 ff0ea35d-e7fc-4bd1-b296-10b6b1c37f85即可
  • 引导修复(方法3):
  1. 将之前备份到移动硬盘中的fstab替换系统中的对应文件,暂时不替换grub.cfg文件
  2. 在/restore/boot/grub/grub.cfg文件中找到下列语句,可能并不完全相同,如可能不是‘Ubuntu’等, 用其中的vmlinuz-5.4.0-87-generic和initrd.img-5.4.0-87-generic(你们的可能不是这个,以你们文件中linux 和 initrd语句对应的值为准),来替换备份到移动硬盘的grub.cfg文件中对应的值
  3. 将移动硬盘中修改后的grub.cfg文件,替换掉/restore/boot/grub/grub.cfg文件
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-ff0ea35d-e7fc-4bd1-b296-10b6b1c37f85' {
	recordfail
	load_video
	gfxmode $linux_gfx_mode
	insmod gzio
	if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
	insmod part_msdos
	insmod ext2
	set root='hd0,msdos6'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos6 --hint-efi=hd0,msdos6 --hint-baremetal=ahci0,msdos6  ff0ea35d-e7fc-4bd1-b296-10b6b1c37f85
	else
	  search --no-floppy --fs-uuid --set=root ff0ea35d-e7fc-4bd1-b296-10b6b1c37f85
	fi
        linux	/boot/vmlinuz-5.4.0-87-generic root=UUID=ff0ea35d-e7fc-4bd1-b296-10b6b1c37f85 ro  quiet splash $vt_handoff
	initrd	/boot/initrd.img-5.4.0-87-generic
}
  • 完成引导修复后,关机,拔掉u盘 ,重启 计算机

参考文献:

posted @   m0_46427273  阅读(1783)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示