双系统之重装linux系统并保持原软件和配置不变(亲测好用推荐)

本文最后更新于:4 个月前

前言

我第一次装ubuntu时,只是想学会使用linux操作系统,因此装的双系统,并且只给ubuntu分派了小小的20G硬盘,以至于后面根本不够用,中间又从windows压缩10G挂载到根目录的一个目录下,但后面还是不够用,而且自动挂载的空间用起来不方便。而且现在已经习惯在linux下编程了,但是平时办公又用习惯了windows,而且windows下的office一系列功能确实要强大许多。于是决定继续双系统,在某个周末鼓起勇气要重装ubuntu系统,给它多分配一些空间。
重装ubuntu并完整恢复原来的环境和软件,如编程环境、IDE、其他应用如Chrome、办公文件。来吧,兄弟,我有重装十多遍的教训要告诉你,每个步骤都带图,要是看不懂,你打我。

面临以下问题:

  • 怎么备份ubuntu系统里的数据?
  • 怎么完全卸载ubuntu?
  • 怎么重装?
  • 怎么恢复环境和数据?

开始操作前

我有很多IDE诸如idea,pycharm,webstore等,还有jdk、python、node的环境,还有装得wine+QQ,wine+钉钉,还有chrome等等,还有一些服务的配置如ssh服务等等,我希望我这些东西都能在重装系统后能够一如往常的使用。

我们的思路是先把数据备份,然后卸载ubuntu重装后再把数据恢复,下面马上操作起来。

一、数据备份

准备一个U盘,用tar命令打包归档,保留各文件之间的权限信息。

1. 切换root并来到u盘挂载的目录

root用户进入u盘目录

2. tar命令备份目录

1
tar cvpzf usr.tgz /usr

上面的命令的效果是把/usr打包为usr.tgz并存放在当前的目录下。
除了/usr还有/opt /home,这三个必须打包备份,然后还有自己定义的目录,比如我有个自定义的目录/new,我也打包好。

/etc可以打包也可以不打包,如果你希望新装的系统继续保持现在的各个用户名和密码,就也打包。至于其他目录不用打包了,比如 /boot /bin cdrom dev media mnt 等,打包了也是没用的,因为他们要么在新系统无法使用,要么就算效果和信息系统一样,比如 /bin里面都是命令,新系统并不缺命令, 再如/media 是根本派不上用场的。(下图中我还打包了 /lib,其实不用,而且后面解压这个数据到新系统会引起驱动不适配导致系统崩溃)

备份好的压缩包

二、卸载ubuntu

3. 制作U盘启动盘

关键是找好iso镜像文件,然后用刻录工具来制作启动盘。

ubuntu自带启动盘制作器,windows下也可以制作,可以参考我以前的文章
《如何安装windows和linux双操作系统?》: https://blog.csdn.net/qq_43289711/article/details/110312956.

ubuntu自带启动盘制作器

4. 关机进入windows来卸载干净ubuntu

  • (1).首先进入磁盘管理,然后选择ubuntu所在的分区直接右击然后删除卷使得其成为未分配状态。windows磁盘管理
  • (2).然后win+x,选择(windows PowerShell(管理员))然后按照下面命令操作
    1
    2
    3
    4
    5
    6
    7
    diskpart					# 进入系统dispart组件
    list disk # 查看系统所有磁盘,并找到window系统所安装的磁盘,(会出现列表,比如你有两个硬盘,0和1)
    select disk $ # 选择磁盘 $ 指window所安装的磁盘(列表,磁盘后的数字)(例如select disk 0)
    list partition # 找到类型为系统的分区(列表会显示)
    select partition $ # $为类型为系统的分区 (例如select partition 0)
    assign letter=p # 将分区分配到磁盘P中,p是直接写得,不和c,d,e等盘冲突就可以了
    exit # 退出diskpart
    再搜索记事本,以管理员身份打开,然后如图操作删除ubuntu:

删除开机是ubuntu选择项

然后在回到管理员命令行,移除p盘

1
2
3
4
5
diskpart 					# 再次进入到diskpart
select disk $ # $是之前选择的盘符,如果记不住了,用list disk查看
select partition $ # $是之前选择的分区,如果记不住了,用list partition查看
remove letter=p # 删除P盘,
exit # 退出

至此,ubuntu无论是磁盘上的数据,还是开机时的条目,都被清理掉。

三、安装ubuntu

5. 插U盘重启,进入BIOS选择U盘启动盘。

依旧可以参考我以前的文章
《如何安装windows和linux双操作系统?》: https://blog.csdn.net/qq_43289711/article/details/110312956.

每个不同的机器要按不同的键来进入BIOS,我的华硕是esc,所以我在开机时多按几次,
依次进入下面两个画面:

select boot device

GRUB

选择Install Ubuntu就开始安装。

6. 进入ubuntu安装向导

这里基本都很简单,语言选中文简体,正常安装,在最后的磁盘分区上选择与windows共存,然后开始安装把分区设置写入硬盘。不用多久就可以安装完成。
!!!注意!!注意!!!:在设置你第一个用户名的时候,一定要设置成你上一台机器第一个设置的用户,也就是你的sudo用户,如果你不这样的话,那么在后面,请不要导入/etc,否则覆盖用户后,系统会找不到当前登录的用户,之后关机重启会有各种问题(很有可能循环登录无法进入图形界面),并且家目录也需要自己手动的复原了。

四、恢复数据

7. 切换root并进入保存数据的U盘的数据所在目录

有同学可能就疑惑了,不知到root用户的密码,因为自己只设置了当前的sudo用户的密码。那么我来教你改root的密码。

1
2
3
4
>sudo -i
>可以输入当前用户密码然后就切换root用户了,然后再:
>passwd root
>设置新密码

root用户进入数据备份目录

8.恢复数据

使用tar命令来恢复数据

1
tar xvpfz usr.tgz -C /

这条命令的意思是把usr.tgz解压到/下,并且新系统的/usr就会被替代掉。
对应自己备份的数据来操作所有的包。

==注意!!!!注意!!!!注意
不是任何原来系统的包都可以随意替代新系统的,除了本文讲到的/usr /home opt和新系统没有的自定义目录外,其他包都是要特殊处理的,否则可能系统关机后就等着重装吧。==

我们的配置信息都在系统级配置都在/etc,我们在将其来替代新系统的/etc时注意:

  • 开始说好的,当前第一次注册的用户名要和以前的一样
  • 把新系统的/etc/fstab文件先换个地方保存起来,等到整个/etc被替换后,再把它替换回来,因为它里面保存的是当前系统挂载的硬盘的物理首地址,这个地址每次重装都不一样,如果被修改了,新系统在重启时直接找不到自己的硬盘,你就可以再次重装了。fatab文件内容

大功告成,检查有无异常

一般都每什么问题,我自己现在空间从之前的20G变成现在的74G

在磁盘扩充

然后,我的软件也都可以用,数据也都在,和重装前感觉一样

应用软件正常

再看编程环境:

编程环境测试

都还在,还好还好。