参考链接link.
系统Ubuntu18.04.7LTS(只有一个硬盘,且没有分区)
1.首先用U盘制作一个Ubuntu16.04.7LTS的系统启动盘,我在Windows下用ultariso软件制作的系统盘。
2.备份原理就是将系统文件压缩打包,还原就是解压压缩包。
3.备份系统
sudo tar -cvpzf /media/zx/KINGSTON/ubuntu_backup@`date +%Y-%m+%d`.tar.gz --exclude=/proc --exclude=/tmp --exclude=/lost+found --exclude=/media --exclude=/mnt --exclude=/run /
下面解释一下上面这条命令。tar就是一个打包命令。
打包文件放在的目录及打包文件名字。
- /media/zx/KINGSTON/ubuntu_backup@date+%Y-%m+%d.tar.gz
这里用了一个shell命令date+%Y-%m+%d用于获取当前时间,因为备份嘛,注明时间戳还是有必要的,然后.tar.gz是说明这个文件是用tar进行打包,gzip进行压缩的。所以要根据你自己情况换为你自己的备份文件目录和文件名。
参数:
-c: 新建一个备份文档
-v: 显示详细信息
-p: 保存权限,并应用到所有文件
-z: 用gzip压缩备份文档,减小空间
-f: 指定备份文件的路径
–exclude: 排除指定目录,不进行备份
Note: 注意–exclude参数,接下来谈谈那些目录没有备份,以及为什么不备份。
我的ubuntu系统,共有两个分区,分别是:/、swap。
**请注意,如果没有把/home或者/boot目录单独分一个区,一定不要加–exclude=/home或–exclude=/boot参数!!!所以我就没有加这两个参数**
4.重装系统
重装之前先查看下源电脑的fstab文件(sudo gedit /etc/fstab),查看根目录挂载分区的uuid和swap挂载分区的uuid。
上面的参考链接是在你重装的时候(开机界面显示后按f11或者fn+f11进入,然后点击你自己的安装盘)进入试用的,我没有进入试用,直接开始安装,安装好后将之前备份的压缩包通过U盘拷贝过来,也可直接解压。
在解压之前将/etc/fstab和/boot/grub/grub.cfg这两个文件通过sudo gedit的方式打开,同时再打开一个终端输入sudo blkid查看当前电脑的根目录挂载分区的uuid和efi挂载分区的uuid,此时这两个uuid和/etc/fstab和/boot/grub/grub.cfg文件里相关的UUID值是一样的,这样可以在解压完后仍可以对其内容进行替换,否则就只能使用vi编辑器进行更改,然后开始解压
sudo tar -xvpzf /media/zx/KINGSTON/ubuntu_boot_backup@2021-5-11.tar.gz-C /
解压完后要修改/etc/fstab和/boot/grub/grub.cfg这两个文件里面的uuid,因为刚才解压会将这个文件的内容做了更改,所以刚才用gedit方式打开的两个文件现在需要重新加载,然后就点击重新加载,看一下刚才输入sudo blkid而生成当前电脑真正的根目录挂载分区的uuid和efi挂载分区的uuid,然后分别在/etc/fstab和/boot/grub/grub.cfg这两个文件通过Ctrl+h的方式对根目录挂载分区的uuid和efi挂载分区的uuid进行替换(/boot/grub/grub.cfg只需要替换根目录/的uuid)
修改完就可以重启了,没别的问题的话就更新成功了!
问题
重启之后你会发现直接黑屏,那是因为BIOS引导首选项没有设对,需要按f11进BIOS选择Enter Setup 重新修改,将Boot Option Priorities首选项选为[ubuntu(P3:kimtigo SSD 256G)]。
修改好后重启会发现显示
GNU GRUB version2.02
这时候参考教程link
一,解决方法:临时进入方法
出现这个问题并不是引导丢失,只是出现了错误
先使用ls命令,找到Ubuntu的安装在哪个分区:
grub>ls
会罗列所有的磁盘分区信息,比方说:(hd0,gpt1),(hd0,gpt5),(hd1,gpt3),(hd1,gpt2)
然后依次调用如下命令: X表示各个分区号码
如果/boot没有单独分区,用以下命令:
ls (hd0,gptX)/boot/grub
这里需要一个一个分区的测试,如果出现unknow file 表示这个不是,换下一个,直到出现列出来几百个文件,很多文件的扩展名是.mod和.lst和.img,还有一个文件是grub.cfg。假设找到(hd0,gpt5)时,显示了文件夹中的文件,则表示Linux安装在这个分区.
如果找到了正确的grub目录,则设法临时性将grub的两部分关联起来,方法如下:
grub>set root=(hd0,gpt2)
grub>set prefix=(hd0,gpt2)/boot/grub
然后调用如下命令,就可以显示出丢失的grub菜单了。
grub>normal
然后会出来启动的图形界面,点击进入Linux中,对grub进行修复。
进入ubuntu之后,在终端执行:
sudo update-grub
sudo grub-install /dev/sda #(sda是你的硬盘号码,千万不要指定分区号码,例如sda1,sda5等都不对)
重启电脑测试是否已经恢复了grub的启动菜单。实际上我到这一步就结束了没有测试下面永久修改方法
二、解决方法:永久修复方法
在 《二、解决方法:临时进入方法》 的基础上,进入系统后继续操作,先联网。
打开Terminal,安装boot repair软件。输入:
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install boot-repair
再开一个终端,输入
boot-repair打开它,点击recommanded repair(中文的是推荐修复)按钮。
接下来按照提示修复即可。需要复制一些命令在终端运行,结束后,重启电脑。
这样,在以后进入系统就可以正常了。