使用tar命令备份、恢复Ubuntu Linux

本文介绍了在不想重新安装系统的情况下,将Ubuntu系统从旧硬盘迁移到新硬盘的方法。尝试了clonezilla、dd、tar三种方式,最终采用tar命令成功迁移,并详细记录了具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    想将ubuntu更换到另外一块硬盘,又不想重装系统,于是尝试了clonezilla、dd、tar三种方式。该ubuntu系统是将根目录、boot目录等所有系统目录都安装在一个分区内。

    clonezilla和dd两种方式都失败了,因为新硬盘的分区大小和老硬盘的根目录分区大小不一致,前两钟方式导致新盘分区的大小被改变。办法应该是有的,我没有研究clonezilla正确使用姿势。而dd命令估计应该使用skip跳过老盘分区表读取数据,再使用seek跳过新盘分区表将数据写入新盘分区(可以使用fdisk -l查看两个分区的开始位置),今后再做实验。

    刚开始想偷懒,直接在运行中的老系统做tar包,使用了“-exclude=/proc/* --exclude=/mnt/* --exclude=/sys/* --exclude=/tmp/* --exclude=/wjbf/* --exclude=/backup.tgz”参数去排除不需要或者不能打包的目录。然额,悲剧的是,/var目录下一堆文件和目录报错不可读取,特别是涉及docker的目录。于是重启系统用安装光盘进入救援模式,挂载老盘根分区到/mnt/old,这样就无需排除任何不能打包的系统目录了,进入挂载目录后就两步搞定:

 

1、将老盘根文件系统打包到一个单独的分区/mnt/wjbf,然后又解包到新盘所在目录/mnt/new下:

/mnt/old# tar cpf /mnt/wjbf/md127backup.tar .
/mnt/old# tar xpf /mnt/wjbf/md127backup.tar -C /mnt/new/
如果没有其他分区可用,只能打包在old目录,则在打包时,排除 md127backup.tar文件:
/mnt/old# tar cpf md127backup.tar --exclude=md127backup.tar .
/mnt/old# tar xpf md127backup.tar -C /mnt/new/
然后修改 /mnt/new/etc/fstab等文件,以符合挂载其他分区的需要。
 
2、在新盘/dev/sda重建grub引导记录:
mount -t proc proc /mnt/new/proc
mount -t sysfs sys /mnt/newsys
mount -o bind /dev /mnt/new/dev
mount -t devpts pts /mnt/new/dev/pts/
chroot /mnt/new/
grub-install /dev/sda
grub-install --recheck /dev/sda
update-grub
 
打完收工。

转载于:https://www.cnblogs.com/bytefish/p/8624090.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值