多种ubuntu引导修复方法

article/2025/9/10 15:58:57

引导异常

ubuntu经常由于各种原因导致系统引导异常,不能正常开机,不能进入到grub界面,或者不管选择任何一种内核和模式进入都出现error: attempt to read or write outside of disk 'hd0’错误。针对这个情况,我采取过两种方式。

https://help.ubuntu.com/community/BootPartition

准备工具:
1、具备EFI格式的ubuntu启动盘;
2、一个不能正常引导的系统

测试环境:ubuntu16.04, nvidia 显卡及驱动
tips:引导修复后如果出现循环登陆的问题,可以alt+ctrl+f2进行命令行模式,对nvidia显卡驱动进行卸载,同时记录自己显卡驱动的版本,重启后再安装一次驱动即可。

sudo apt purge nvidia-*  //remove nvidia driver
sudo apt-get install nvidia-驱动型号(nvidia-384)  //install nvidia driver

一 仅使用boot-repair修复(时而失败)

  • Step 1 - Boot on a liveCD or liveUSB

Boot your computer either on:

  • a Linux-Secure-Remix liveCD or liveUSB, then choose “Try Ubuntu”, then go directly to Step 3 below.

  • or a Ubuntu live-CD or live-USB, choose “Try Ubuntu”, then go to Step 2 below.
    使用启动盘或者光盘开机。
    Step 2 - Install Boot-Repair in the live-session
    Once in the Ubuntu live session, install Boot-Repair this way:

Connect internet
Open a terminal (Ctrl+Alt+T) and type :
打开终端输入如下指令,安装boot-repair

sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get updatesudo apt-get install -y boot-repairsudo boot-repair

然后按照提示进行操作并重启。如果正常启动就不用看下一步了,若还是不行,则为系统重装一个引导。

二. 在磁盘头新建一个引导,(也是使用boot-repair修复)

step1 step2安装以上操作仅安装boot-repair工具,但不需要运行。
接下来的工作为将硬盘中的所有资料全部向后移动一定大小,而后在磁盘头新建一个free space,然后通过boot-repair在这个空的分区中新建一个引导。
Step 3 - Run gParted
Launch gParted from either:

  • the Dash (Ubuntu 11.04 and next): click the Ubuntu logo in the top-left corner of the screen, then type gparted and click on the gParted icon that will appear.

  • or System->Administration->gParted menu (Ubuntu 10.04)

  • or by typing gksudo gparted in a terminal
    打开工具gParted
    Step 4 - Create a 1GB partition at the start of the disk
    Via gParted:

  • Reduce one of the first partitions of the disk in order to create 1GB (=1000MiB) of free space at the start of the disk where Ubuntu is installed. This free space must be located inside the first 100GB of the disk (its end must not be located at more than 100GB from the start of the disk). Important: to resize Windows Vista/7/8 partitions, don’t use gParted but Windows tools instead.

http://pix.toile-libre.org/upload/original/1342471488.png

  • In this free space, create a 1GB partition formatted in EXT4.

  • On a paper, note the name of this new 1GB partition. This is generally something like /dev/sdXY (X is a letter, Y is a number).
    通过这个工具在ubuntu系统的磁盘头创建1G的ext4分区,并记住这个分区的名字。
    Step 5 - Run Boot-Repair
    Launch Boot-Repair from either:

  • the Dash (Ubuntu 11.04 and next): click the Ubuntu logo in the top-left corner of the screen, then type boot and click on the Boot-Repair icon that will appear.

  • or System->Administration->Boot-Repair menu (Ubuntu 10.04)

  • or by typing boot-repair in a terminal
    打开boot-repair
    Step 6 - Choose the right option
    In Boot-Repair:

  • Click on Advanced Options

  • Go to the GRUB location tab

  • Tick the “Separate /boot partition: sdXY” option (sdXY must be your 1GB partition)

http://pix.toile-libre.org/upload/original/1342472594.png
选择advanced-options,然后按照上图将Separate /boot partition设置到刚刚新建的分区中。这一步可能需要等待很长时间,因此需要将所有文件剪切到1G的磁盘后。所以可以在之前将不需要用的日志等冗余数据删除或者早点拷贝出来。

  • Click “Apply”

  • Note on a paper the URL (paste.ubuntu.com/XXXXXX/) that will appear.

  • Shutdown the computer

  • Remove the liveCD and/or liveUSB

  • Start the computer. You should now be able to boot into Ubuntu.


http://chatgpt.dhexx.cn/article/LmjAKfnC.shtml

相关文章

Java设计模式之(十二)——观察者模式

1、什么是观察者模式? Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically. 观察者模式(Observer Design Pattern):在对象之间…

李喆:程序员到底怎么了

李喆:程序员到底怎么了 我们是这样的一群人:每天都在“努力”的工作着,每天都和计算机打交道,泡在网上,打游戏,查资料,发微博。可是有一天,突然意识到,我们的未来在哪里&…

Java~设计模式之观察者模式 || 班长大喊老师来啦

文章目录 观察者模式实现 观察者模式 定义: 当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知依赖它的对象。观察者模式属于行为型模式。意图:定义对…

张小飞的Java之路——第九章

写在前面: 视频是什么东西,有看文档精彩吗? 视频是什么东西,有看文档速度快吗? 视频是什么东西,有看文档效率高吗? 诸小亮:“封装说完后,我们接着看面向对象的第二大…

Java设计模式(2 / 23):观察者模式

定义 观察者(Observer)模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。 OO设计原则:为了交互对象之间的松耦合设计而努力。 案例:气…

大聪明教你学Java设计模式 | 第十三篇:观察者模式

前言 🍊作者简介: 不肯过江东丶,一个来自二线城市的程序员,致力于用“猥琐”办法解决繁琐问题,让复杂的问题变得通俗易懂。 🍊支持作者: 点赞👍、关注💖、留言&#x1f4…

Java 设计模式(十三):代理模式

参考链接:代理模式-Proxy Pattern 近年来,代购已逐步成为电子商务的一个重要分支。代购简单来说就是找人帮忙购买所需要的商品,代购网站就是其中一种产物,它为消费者提供在线的代购服务,如果看中某国外购物网站上的商…

Java设计模式:观察者模式

一、什么是观察者模式? 又叫做发布-订阅模式,定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并自动更新。UML结构图如下: 其中涉及到四种角色: 1.抽象目标&a…

初探Java设计模式------观察者模式

前言 最近刚开始学习RxJava,众所周知,Rxjava就是扩展的观察者模式,所以想学习Rxjava,先入手了解一下观察者模式是很有必要的。那么今天就先稍微了解一下什么是观察者模式。 定义 观察者(Observer)模式:是对象的行为模…

java设计模式(3)--观察者模式

(一)观察者模式 观察者模式定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 该模式有以下角色: (1)抽象主题(Subjec…

Java设计模式之行为型:观察者模式

一、什么是观察者模式: 观察者模式又称为 发布-订阅模式,定义了对象之间一对多依赖关系,当目标对象(被观察者)的状态发生改变时,它的所有依赖者(观察者)都会收到通知。一个观察目标可以对应多个观察者,而这些观察者之间…

java监听设计模式(java观察者设计模式)

今天给大家分享一下观察者设计模式(监听设计模式),该模式在很多主流得框架、源码中使用率非常高。在分享之前先给大家讲一个我们使用手机的一个场景,我们都用过手机,当我们手机来电话的时候,会有各种复杂的…

【十一】设计模式~~~结构型模式~~~代理模式(Java)

【学习难度:★★★☆☆,使用频率:★★★★☆】 6.1. 模式动机 在某些情况下,一个客户不想或者不能直接引用一个对 象,此时可以通过一个称之为“代理”的第三者来实现 间接引用。代理对象可以在客户端和目标对象之间起…

JAVA架构之路(设计模式之观察者模式)

设计模式之观察者模式 定义:对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新 核心原理: 1.被观察者中维护一个观察者对象列表 2.观察者可新增可可移除。 需要角色&#…

程序员百宝箱---搭建自己专属的在线工具集

相信各位开发者/程序员在开发过程中都使用过各种在线工具吧。比如 1 校验或格式化 json 字符串 2 使用 base64 的加密解密,url 的编码解码 urlencode、urldecode 等 3 调试正则表达式是否正确 4 时间戳与格式化日期互相转换 5 文本对比,比较两个代码文件…

如何部署JSP应用到阿里云服务器上(一)

今天讲解一下如何部署JSP应用到阿里云服务器上,我使用的后台服务器是 Tomcat服务器,服务器应用的开发语言是 Java Web ,后台的数据库使用的是MySQL 1 打开阿里云官方网站 https://www.aliyun.com/?utm_mediumtext&utm_sourcebdbrand&am…

开源项目精选推荐-杨小杰工具箱(YoungxjTools)

演示 预览地址: https://tools.yum6.cn/ 程序介绍 01、首页底部友情链接 02、网站公告页面功能 03、内置留言管理功能 04、后台网站信息设置 05、内置smtp发信配置 06、支持两主题的切换 07、关于页面支持留言, 08、程序已集成32种小工具 更多功能 介绍 请搭建 自行测试

C++构造函数之初始化列表

C构造函数之初始化列表 构造函数可以说是对于C每个类来说最重要的组成部分,之前也详细介绍过构造函数的相关知识,今天给构造函数进行补充,主要说明一下构造函数的初始值列表 一、初始化列表的写法 仍然以之前介绍构造函数时使用的学生类来…

C++初始化列表详解

目录: 定义 使用初始化列表的原因 必须使用初始化列表的时候 成员变量的顺序 定义 与其他函数不同,构造函数除了有名字,参数列表和函数体之外,还可以有初始化列表,初始化列表以冒号…

C++类的初始化列表

意义 初始化列表是类中构造函数的一部分,用于实例化类中变量时 赋初值。 需要先了解 构造函数的基本知识。CSDN-构造函数https://blog.csdn.net/weixin_44212838/article/details/124901019?spm1001.2014.3001.5501 用法 在函数头与函数体之间,用一…